I’m using the zed-ros-wrapper for using zed 2i with ros1 melodic and ubuntu 18 with a RTX 2060 GPU.
I want to use the IMU and magnetometer rostopics from zed.
I had seen in the zed documentation that the IMU can offer 25 or 50 Hz frequency, would anything need to be changed to get this speed?
I don’t think that was changed. This is what I use. Does reducing help?
I have also observed the framerate of
…/left/image_rect_color
is around 3.8 hz. which I dont think was what I have set as default. I had set that as grab_frame_rate: 15.
# params/zed2i.yaml
# Parameters for Stereolabs ZED2 camera
---
general:
camera_model: 'zed2i'
depth:
min_depth: 0.3 # Min: 0.2, Max: 3.0 - Default 0.7 - Note: reducing this value wil require more computational power and GPU memory
max_depth: 5.0 # Max: 40.0
pos_tracking:
imu_fusion: true # enable/disable IMU fusion. When set to false, only the optical odometry will be used.
sensors:
sensors_timestamp_sync: false # Synchronize Sensors messages timestamp with latest received frame
max_pub_rate: 200. # max frequency of publishing of sensors data. MAX: 400. - MIN: grab rate
publish_imu_tf: true # publish `IMU -> <cam_name>_left_camera_frame` TF
object_detection:
od_enabled: false # True to enable Object Detection [not available for ZED]
model: 0 # '0': MULTI_CLASS_BOX - '1': MULTI_CLASS_BOX_ACCURATE - '2': HUMAN_BODY_FAST - '3': HUMAN_BODY_ACCURATE - '4': MULTI_CLASS_BOX_MEDIUM - '5': HUMAN_BODY_MEDIUM - '6': PERSON_HEAD_BOX
confidence_threshold: 50 # Minimum value of the detection confidence of an object [0,100]
max_range: 15. # Maximum detection range
object_tracking_enabled: true # Enable/disable the tracking of the detected objects
body_fitting: false # Enable/disable body fitting for 'HUMAN_BODY_X' models
mc_people: true # Enable/disable the detection of persons for 'MULTI_CLASS_BOX_X' models
mc_vehicle: true # Enable/disable the detection of vehicles for 'MULTI_CLASS_BOX_X' models
mc_bag: true # Enable/disable the detection of bags for 'MULTI_CLASS_BOX_X' models
mc_animal: true # Enable/disable the detection of animals for 'MULTI_CLASS_BOX_X' models
mc_electronics: true # Enable/disable the detection of electronic devices for 'MULTI_CLASS_BOX_X' models
mc_fruit_vegetable: true # Enable/disable the detection of fruits and vegetables for 'MULTI_CLASS_BOX_X' models
mc_sport: true # Enable/disable the detection of sport-related objects for 'MULTI_CLASS_BOX_X' models
it’s an intel i7. I use a docker image to run it, would that interfere? I don’t think the tf broadcast settings was edited in the yaml file. It’s the same file above right?
that is the setting right? I don’t think these are changed
pos_tracking:
pos_tracking_enabled: true # True to enable positional tracking from start
publish_tf: true # publish `odom -> base_link` TF
publish_map_tf: true # publish `map -> odom` TF
map_frame: 'map' # main frame
odometry_frame: 'odom' # odometry frame
area_memory_db_path: 'zed_area_memory.area' # file loaded when the node starts to restore the "known visual features" map.
save_area_memory_db_on_exit: false # save the "known visual features" map when the node is correctly closed to the path indicated by `area_memory_db_path`
area_memory: true # Enable to detect loop closure
floor_alignment: false # Enable to automatically calculate camera/floor offset
initial_base_pose: [0.0,0.0,0.0, 0.0,0.0,0.0] # Initial position of the `base_frame` -> [X, Y, Z, R, P, Y]
init_odom_with_first_valid_pose: true # Enable to initialize the odometry with the first valid pose
path_pub_rate: 2.0 # Camera trajectory publishing frequency
path_max_count: -1 # use '-1' for unlimited path size
two_d_mode: false # Force navigation on a plane. If true the Z value will be fixed to "fixed_z_value", roll and pitch to zero
fixed_z_value: 0.00 # Value to be used for Z coordinate if `two_d_mode` is true
# params/common.yaml
# Common parameters to Stereolabs ZED and ZED mini cameras
---
# Dynamic parameters cannot have a namespace
brightness: 4 # Dynamic
contrast: 4 # Dynamic
hue: 0 # Dynamic
saturation: 4 # Dynamic
sharpness: 4 # Dynamic
gamma: 8 # Dynamic - Requires SDK >=v3.1
auto_exposure_gain: true # Dynamic
gain: 100 # Dynamic - works only if `auto_exposure_gain` is false
exposure: 100 # Dynamic - works only if `auto_exposure_gain` is false
auto_whitebalance: true # Dynamic
whitebalance_temperature: 42 # Dynamic - works only if `auto_whitebalance` is false
depth_confidence: 30 # Dynamic
depth_texture_conf: 100 # Dynamic
pub_frame_rate: 30.0 # Dynamic - frequency of publishing of video and depth data
point_cloud_freq: 3.0 # Dynamic - frequency of the pointcloud publishing (equal or less to `grab_frame_rate` value)
general:
camera_name: zed # A name for the camera (can be different from camera model and node name and can be overwritten by the launch file)
zed_id: 0
serial_number: 0
resolution: 2 # '0': HD2K, '1': HD1080, '2': HD720, '3': VGA
grab_frame_rate: 15 # Frequency of frame grabbing for internal SDK operations
gpu_id: -1
base_frame: 'base_link' # must be equal to the frame_id used in the URDF file
verbose: true # Enable info message by the ZED SDK
svo_compression: 2 # `0`: LOSSLESS, `1`: AVCHD, `2`: HEVC
self_calib: true # enable/disable self calibration at starting
camera_flip: false
video:
img_downsample_factor: 1.0 # Resample factor for images [0.01,1.0] The SDK works with native image sizes, but publishes rescaled image.
extrinsic_in_camera_frame: true # if `false` extrinsic parameter in `camera_info` will use ROS native frame (X FORWARD, Z UP) instead of the camera frame (Z FORWARD, Y DOWN) [`true` use old behavior as for version < v3.1]
depth:
quality: 4 # '0': NONE, '1': PERFORMANCE, '2': QUALITY, '3': ULTRA, '4': NEURAL
sensing_mode: 0 # '0': STANDARD, '1': FILL (not use FILL for robotic applications)
depth_stabilization: 1 # `0`: disabled, `1`: enabled
openni_depth_mode: false # 'false': 32bit float meters, 'true': 16bit uchar millimeters
depth_downsample_factor: 0.1 # Resample factor for depth data matrices [0.01,1.0] The SDK works with native data sizes, but publishes rescaled matrices (depth map, point cloud, ...)
pos_tracking:
pos_tracking_enabled: true # True to enable positional tracking from start
publish_tf: true # publish `odom -> base_link` TF
publish_map_tf: true # publish `map -> odom` TF
map_frame: 'map' # main frame
odometry_frame: 'odom' # odometry frame
area_memory_db_path: 'zed_area_memory.area' # file loaded when the node starts to restore the "known visual features" map.
save_area_memory_db_on_exit: false # save the "known visual features" map when the node is correctly closed to the path indicated by `area_memory_db_path`
area_memory: true # Enable to detect loop closure
floor_alignment: false # Enable to automatically calculate camera/floor offset
initial_base_pose: [0.0,0.0,0.0, 0.0,0.0,0.0] # Initial position of the `base_frame` -> [X, Y, Z, R, P, Y]
init_odom_with_first_valid_pose: true # Enable to initialize the odometry with the first valid pose
path_pub_rate: 2.0 # Camera trajectory publishing frequency
path_max_count: -1 # use '-1' for unlimited path size
two_d_mode: false # Force navigation on a plane. If true the Z value will be fixed to "fixed_z_value", roll and pitch to zero
fixed_z_value: 0.00 # Value to be used for Z coordinate if `two_d_mode` is true
mapping:
mapping_enabled: false # True to enable mapping and fused point cloud publication
resolution: 0.05 # maps resolution in meters [0.01f, 0.2f]
max_mapping_range: -1 # maximum depth range while mapping in meters (-1 for automatic calculation) [2.0, 20.0]
fused_pointcloud_freq: 1.0 # frequency of the publishing of the fused colored point cloud
clicked_point_topic: '/clicked_point' # Topic published by Rviz when a point of the cloud is clicked. Used for plane detection
Okay, will try to change the param and make the docker image.
Sharing an observation from the docker logs
[0m[ INFO] [1673867574.171469982]: Sensors thread is not synchronized with the Sensors ratee[0m
e[0m[ INFO] [1673867574.171518537]: Expected cycle time: 0.005000000 - Real cycle time: 0.603893522e[0m
e[0m[ INFO] [1673867575.378130536]: Sensors thread is not synchronized with the Sensors ratee[0m
e[0m[ INFO] [1673867575.378177267]: Expected cycle time: 0.005000000 - Real cycle time: 0.602604613e[0m
e[0m[ INFO] [1673867576.585563091]: Sensors thread is not synchronized with the Sensors ratee[0m
e[0m[ INFO] [1673867576.585623908]: Expected cycle time: 0.005000000 - Real cycle time: 0.603392070e[0m
e[0m[ INFO] [1673867577.792944510]: Sensors thread is not synchronized with the Sensors ratee[0m
e[0m[ INFO] [1673867577.792998099]: Expected cycle time: 0.005000000 - Real cycle time: 0.602539430e[0m
e[0m[ INFO] [1673867579.002674534]: Sensors thread is not synchronized with the Sensors ratee[0m
e[0m[ INFO] [1673867579.002732404]: Expected cycle time: 0.005000000 - Real cycle time: 0.603781447e[0m
e[0m[ INFO] [1673867580.207671643]: Sensors thread is not synchronized with the Sensors ratee[0m
e[0m[ INFO] [1673867580.207729132]: Expected cycle time: 0.005000000 - Real cycle time: 0.602256746e[0m
e[0m[ INFO] [1673867581.424095618]: Sensors thread is not synchronized with the Sensors ratee[0m
e[0m[ INFO] [1673867581.424155452]: Expected cycle time: 0.005000000 - Real cycle time: 0.613185718e[0m
e[0m[ INFO] [1673867582.632845106]: Sensors thread is not synchronized with the Sensors ratee[0m
e[0m[ INFO] [1673867582.632893111]: Expected cycle time: 0.005000000 - Real cycle time: 0.603786288e[0m
e[0m[ INFO] [1673867583.840120012]: Sensors thread is not synchronized with the Sensors ratee[e[33m[ WARN] [1673867587.461998547]: Sensors data publishing takes longer (0.603190560 sec) than requested by the Sensors rate (0.005000000 sec). Please consider to lower the 'max_pub_rate' setting or to reduce the power requirements reducing the resolutions.e[0m
e[33m[ WARN] [1673867588.766701133]: Elaboration takes longer (0.305413 sec) than requested by the FPS rate (0.066666667 sec). Please consider to lower the 'frame_rate' setting or to reduce the power requirements reducing the resolutions.e[0m
e[33m[ WARN] [1673867597.724399641]: Sensors data publishing takes longer (0.603122047 sec) than requested by the Sensors rate (0.005000000 sec). Please consider to lower the 'max_pub_rate' setting or to reduce the power requirements reducing the resolutions.e[0m
e[33m[ WARN] [1673867598.848223347]: Elaboration takes longer (0.305377 sec) than requested by the FPS rate (0.066666667 sec). Please consider to lower the 'frame_rate' setting or to reduce the power requirements reducing the resolutions.e[0m
0m