You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue is not a duplicate. Before opening a new issue, please search existing issues.
This issue is not a question, feature request, or anything other than a bug report directly related to this project.
Description
Hi guys
I am using Jeston Xvaier with SDK4.2
all the function is normal, but the FPS is very low. like we set HD720 resolution @ 60FPS, but acutally when we record get 6hz for the raw_image/color in the recorded rosbag. for HD1080@30FPS, we only get 2-3hz
Even in our PC computer with AMD Ryzen 9 7900X 12-Core Processor, Nvidia 4070Ti, CUDA 12.8, SDK4.2, we have same configuration. We only could achieve 46 FPS at maximum, sometimes will down to 35FPS in HD720@60FPS configuration, as you can see in the uploaded picture.
we also test a cpu-version sdk, which is https://github.com/stereolabs/zed-open-capture. in here, we could reach 60FPS in HD720@60FPS configuration. So we could confirm, zed camera could work normal.
do you guy have any similar situation? or whether we make some mistakes on configuration file.
we can't upload the .yaml file, so I just plaste in here, sorry for that.
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: 50 # Dynamic
depth_texture_conf: 100 # Dynamic
point_cloud_freq: 10.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
gpu_id: -1
base_frame: 'base_link' # must be equal to the frame_id used in the URDF file
sdk_verbose: 1 # Set verbose level of the ZED SDK
svo_compression: 2 # 0: LOSSLESS, 1: AVCHD, 2: HEVC
self_calib: true # enable/disable self calibration at starting
camera_flip: 'OFF' # camera flip mode: 'OFF', 'ON', 'AUTO'
pub_resolution: 'NATIVE' # The resolution used for output. 'NATIVE' to use the same general.grab_resolution - CUSTOM to apply the general.pub_downscale_factor downscale factory to reduce bandwidth in transmission
pub_downscale_factor: 2.0 # rescale factor used to rescale image before publishing when 'pub_resolution' is 'CUSTOM'
pub_frame_rate: 60.0 # frequency of publishing of video and depth data (see SDK API "InitParameters::grab_compute_capping_fps")
svo_realtime: false # if true the input SVO will be played trying to respect the original framerate eventually skipping frames, otherwise every frame will be processed respecting the pub_frame_rate setting
region_of_interest: '[]' # A polygon defining the ROI where the ZED SDK perform the processing ignoring the rest. Coordinates must be normalized to '1.0' to be resolution independent.
#region_of_interest: '[[0.25,0.33],[0.75,0.33],[0.75,0.5],[0.5,0.75],[0.25,0.5]]' # A polygon defining the ROI where the ZED SDK perform the processing ignoring the rest. Coordinates must be normalized to '1.0' to be resolution independent.
#region_of_interest: '[[0.25,0.25],[0.75,0.25],[0.75,0.75],[0.25,0.75]]' # A polygon defining the ROI where the ZED SDK perform the processing ignoring the rest. Coordinates must be normalized to '1.0' to be resolution independent.
#region_of_interest: '[[0.5,0.25],[0.75,0.5],[0.5,0.75],[0.25,0.5]]' # A polygon defining the ROI where the ZED SDK perform the processing ignoring the rest. Coordinates must be normalized to '1.0' to be resolution independent.
pos_tracking:
pos_tracking_enabled: true # True to enable positional tracking from start
pos_tracking_mode: 'GEN_2' # Matches the ZED SDK setting: 'GEN_1', 'GEN_2'
set_gravity_as_origin: true # If 'true' align the positional tracking world to imu gravity measurement. Keep the yaw from the user initial pose.
imu_fusion: true # enable/disable IMU fusion. When set to false, only the optical odometry will be used.
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: '' # 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
depth_min_range: 0.0 # Set this value for removing fixed zones of the robot in the FoV of the camerafrom the visual odometry evaluation
set_as_static: false # If 'true' the camera will be static and not move in the environment
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
sensors:
sensors_timestamp_sync: false # Synchronize Sensors messages timestamp with latest received frame
max_pub_rate: 400. # 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: 'MULTI_CLASS_BOX_ACCURATE' # 'MULTI_CLASS_BOX_FAST', 'MULTI_CLASS_BOX_MEDIUM', 'MULTI_CLASS_BOX_ACCURATE', 'PERSON_HEAD_BOX_FAST', 'PERSON_HEAD_BOX_ACCURATE'
max_range: 15. # Maximum detection range
allow_reduced_precision_inference: true # Allow inference to run at a lower precision to improve runtime and memory usage
prediction_timeout: 0.5 # During this time [sec], the object will have OK state even if it is not detected. Set this parameter to 0 to disable SDK predictions
object_tracking_enabled: true # Enable/disable the tracking of the detected objects
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
params/sync.yaml
Parameters for the nodelet zed_nodelets/RgbdSensorsSyncNodelet
zed_nodelet_name: 'zed_node' # Default name of the ZEDWrapperNodelet publishing topics (normally overwritten in launch file)
approx_sync: true # Use approximate synchronization for the input topics. If false all the message must have the same timestamp, this is almost impossible if subscribing also to IMU and Magnetometer topics and the parameter sensors_timestamp_sync is false in the ZED nodelet
queue_size: 600 # Size of message queue for each synchronized topic (more than 1 second of buffer for IMU data)
sub_imu: true # Synchronize IMU messages
sub_mag: true # Synchronize Magnetometer messages
params/zed2i.yaml
Parameters for Stereolabs ZED 2i camera
general:
camera_model: 'zed2i'
grab_resolution: 'HD720' # 'HD2K', 'HD1080', 'HD720', 'VGA', 'AUTO'
grab_frame_rate: 60 # Frequency of frame grabbing for internal SDK operations
depth:
min_depth: 0.3 # Min: 0.3, Max: 3.0 - Default 0.7 - Note: reducing this value wil require more computational power and GPU memory
max_depth: 40.0 # Max: 40.0
Steps to Reproduce
...
Expected Result
I hope get a solution for the low FPS problem.
Actual Result
I hope get a solution for the low FPS problem.
ZED Camera model
ZED2i
Environment
Jeston Xavier NX
Zed2i
Anything else?
No response
The text was updated successfully, but these errors were encountered:
Preliminary Checks
Description
Hi guys
I am using Jeston Xvaier with SDK4.2
all the function is normal, but the FPS is very low. like we set HD720 resolution @ 60FPS, but acutally when we record get 6hz for the raw_image/color in the recorded rosbag. for HD1080@30FPS, we only get 2-3hz
Even in our PC computer with AMD Ryzen 9 7900X 12-Core Processor, Nvidia 4070Ti, CUDA 12.8, SDK4.2, we have same configuration. We only could achieve 46 FPS at maximum, sometimes will down to 35FPS in HD720@60FPS configuration, as you can see in the uploaded picture.
we also test a cpu-version sdk, which is https://github.com/stereolabs/zed-open-capture. in here, we could reach 60FPS in HD720@60FPS configuration. So we could confirm, zed camera could work normal.
do you guy have any similar situation? or whether we make some mistakes on configuration file.
we can't upload the .yaml file, so I just plaste in here, sorry for that.
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 falseexposure: 100 # Dynamic - works only if
auto_exposure_gain
is falseauto_whitebalance: true # Dynamic
whitebalance_temperature: 42 # Dynamic - works only if
auto_whitebalance
is falsedepth_confidence: 50 # Dynamic
depth_texture_conf: 100 # Dynamic
point_cloud_freq: 10.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
gpu_id: -1
base_frame: 'base_link' # must be equal to the frame_id used in the URDF file
sdk_verbose: 1 # Set verbose level of the ZED SDK
svo_compression: 2 #
0
: LOSSLESS,1
: AVCHD,2
: HEVCself_calib: true # enable/disable self calibration at starting
camera_flip: 'OFF' # camera flip mode: 'OFF', 'ON', 'AUTO'
pub_resolution: 'NATIVE' # The resolution used for output. 'NATIVE' to use the same
general.grab_resolution
-CUSTOM
to apply thegeneral.pub_downscale_factor
downscale factory to reduce bandwidth in transmissionpub_downscale_factor: 2.0 # rescale factor used to rescale image before publishing when 'pub_resolution' is 'CUSTOM'
pub_frame_rate: 60.0 # frequency of publishing of video and depth data (see SDK API "InitParameters::grab_compute_capping_fps")
svo_realtime: false # if true the input SVO will be played trying to respect the original framerate eventually skipping frames, otherwise every frame will be processed respecting the
pub_frame_rate
settingregion_of_interest: '[]' # A polygon defining the ROI where the ZED SDK perform the processing ignoring the rest. Coordinates must be normalized to '1.0' to be resolution independent.
#region_of_interest: '[[0.25,0.33],[0.75,0.33],[0.75,0.5],[0.5,0.75],[0.25,0.5]]' # A polygon defining the ROI where the ZED SDK perform the processing ignoring the rest. Coordinates must be normalized to '1.0' to be resolution independent.
#region_of_interest: '[[0.25,0.25],[0.75,0.25],[0.75,0.75],[0.25,0.75]]' # A polygon defining the ROI where the ZED SDK perform the processing ignoring the rest. Coordinates must be normalized to '1.0' to be resolution independent.
#region_of_interest: '[[0.5,0.25],[0.75,0.5],[0.5,0.75],[0.25,0.5]]' # A polygon defining the ROI where the ZED SDK perform the processing ignoring the rest. Coordinates must be normalized to '1.0' to be resolution independent.
#video:
depth:
depth_mode: 'ULTRA' # 'NONE', 'PERFORMANCE', 'QUALITY', 'ULTRA', 'NEURAL',
NEURAL_PLUS
depth_stabilization: 1 # [0-100] - 0: Disabled
openni_depth_mode: false # 'false': 32bit float meter units, 'true': 16bit uchar millimeter units
pos_tracking:
pos_tracking_enabled: true # True to enable positional tracking from start
pos_tracking_mode: 'GEN_2' # Matches the ZED SDK setting: 'GEN_1', 'GEN_2'
set_gravity_as_origin: true # If 'true' align the positional tracking world to imu gravity measurement. Keep the yaw from the user initial pose.
imu_fusion: true # enable/disable IMU fusion. When set to false, only the optical odometry will be used.
publish_tf: true # publish
odom -> base_link
TFpublish_map_tf: true # publish
map -> odom
TFmap_frame: 'map' # main frame
odometry_frame: 'odom' # odometry frame
area_memory_db_path: '' # 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 truedepth_min_range: 0.0 # Set this value for removing fixed zones of the robot in the FoV of the camerafrom the visual odometry evaluation
set_as_static: false # If 'true' the camera will be static and not move in the environment
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
sensors:
sensors_timestamp_sync: false # Synchronize Sensors messages timestamp with latest received frame
max_pub_rate: 400. # max frequency of publishing of sensors data. MAX: 400. - MIN: grab rate
publish_imu_tf: true # publish
IMU -> <cam_name>_left_camera_frame
TFobject_detection:
od_enabled: false # True to enable Object Detection [not available for ZED]
model: 'MULTI_CLASS_BOX_ACCURATE' # 'MULTI_CLASS_BOX_FAST', 'MULTI_CLASS_BOX_MEDIUM', 'MULTI_CLASS_BOX_ACCURATE', 'PERSON_HEAD_BOX_FAST', 'PERSON_HEAD_BOX_ACCURATE'
max_range: 15. # Maximum detection range
allow_reduced_precision_inference: true # Allow inference to run at a lower precision to improve runtime and memory usage
prediction_timeout: 0.5 # During this time [sec], the object will have OK state even if it is not detected. Set this parameter to 0 to disable SDK predictions
object_tracking_enabled: true # Enable/disable the tracking of the detected objects
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
params/sync.yaml
Parameters for the nodelet zed_nodelets/RgbdSensorsSyncNodelet
zed_nodelet_name: 'zed_node' # Default name of the ZEDWrapperNodelet publishing topics (normally overwritten in launch file)
approx_sync: true # Use approximate synchronization for the input topics. If
false
all the message must have the same timestamp, this is almost impossible if subscribing also to IMU and Magnetometer topics and the parametersensors_timestamp_sync
is false in the ZED nodeletqueue_size: 600 # Size of message queue for each synchronized topic (more than 1 second of buffer for IMU data)
sub_imu: true # Synchronize IMU messages
sub_mag: true # Synchronize Magnetometer messages
params/zed2i.yaml
Parameters for Stereolabs ZED 2i camera
general:
camera_model: 'zed2i'
grab_resolution: 'HD720' # 'HD2K', 'HD1080', 'HD720', 'VGA', 'AUTO'
grab_frame_rate: 60 # Frequency of frame grabbing for internal SDK operations
depth:
min_depth: 0.3 # Min: 0.3, Max: 3.0 - Default 0.7 - Note: reducing this value wil require more computational power and GPU memory
max_depth: 40.0 # Max: 40.0
Steps to Reproduce
...
Expected Result
I hope get a solution for the low FPS problem.
Actual Result
I hope get a solution for the low FPS problem.
ZED Camera model
ZED2i
Environment
Anything else?
No response
The text was updated successfully, but these errors were encountered: