Skip to content

Commit a2e5b52

Browse files
szepilotnorbertmarkohorvernoumiklos
committed
Zed driver SDK update 5.2
Co-authored-by: norbertmarko <norbertmarko92@gmail.com> Co-authored-by: horverno <horverno@gmail.com> Co-authored-by: umiklos <ungermiklos1992@gmail.com>
1 parent 3f821df commit a2e5b52

4 files changed

Lines changed: 117 additions & 67 deletions

File tree

config/camera/zed_default_common.yaml

Lines changed: 49 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,20 @@
55
---
66
/**:
77
ros__parameters:
8+
use_sim_time: false # Set to `true` only if there is a publisher for the simulated clock to the `/clock` topic. Normally used in simulation mode.
9+
svo:
10+
use_svo_timestamps: true # Use the SVO timestamps to publish data. If false, data will be published at the system time.
11+
publish_svo_clock: false # [overwritten by launch file options] When use_svo_timestamps is true allows to publish the SVO clock to the `/clock` topic. This is useful for synchronous rosbag playback.
12+
svo_loop: false # Enable loop mode when using an SVO as input source. NOTE: ignored if SVO timestamping is used
13+
svo_realtime: false # if true the 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
14+
play_from_frame: 0 # Start playing the SVO from a specific frame
15+
replay_rate: 1.0 # Replay rate for the SVO when not used in realtime mode (between [0.10-5.0])
16+
817
general:
9-
svo_file: "" # usually overwritten by launch file
10-
svo_loop: false # Enable loop mode when using an SVO as input source
11-
svo_realtime: true # if true 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
1218
camera_timeout_sec: 5
1319
camera_max_reconnect: 5
1420
camera_flip: false
15-
zed_id: 0 # usually overwritten by launch file
16-
serial_number: 0 # usually overwritten by launch file
21+
serial_number: 30565892 # usually overwritten by launch file
1722
grab_resolution: 'HD720' # The native camera grab resolution. 'HD2K', 'HD1080', 'HD720', 'VGA'
1823
pub_resolution: 'HD720' # The resolution used for output. 'HD2K', 'HD1080', 'HD720', 'MEDIUM', 'VGA', 'LOW'
1924
sdk_verbose: 1
@@ -44,18 +49,23 @@
4449
qos_durability: 2 # '1': TRANSIENT_LOCAL - '2': VOLATILE
4550

4651
depth:
47-
quality: 1 # '0': NONE, '1': PERFORMANCE, '2': QUALITY, '3': ULTRA - '4': NEURAL - Note: if '0' all the modules that requires depth extraction are disabled by default (Pos. Tracking, Obj. Detection, Mapping, ...)
48-
sensing_mode: 0 # '0': STANDARD, '1': FILL
49-
depth_stabilization: 0 #
52+
depth_mode: 'NEURAL_LIGHT' # Matches the ZED SDK setting: 'NONE', 'NEURAL_LIGHT', 'NEURAL', 'NEURAL_PLUS' - Note: if 'NONE' all the modules that requires depth extraction are disabled by default (Pos. Tracking, Obj. Detection, Mapping, ...)
53+
depth_stabilization: 30 # Forces positional tracking to start if major than 0 - Range: [0,100]
5054
openni_depth_mode: false # 'false': 32bit float [meters], 'true': 16bit unsigned int [millimeters]
51-
point_cloud_freq: 15.0 # [DYNAMIC] - frequency of the pointcloud publishing (equal or less to `grab_frame_rate` value)
52-
depth_confidence: 50 # [DYNAMIC]
55+
point_cloud_freq: 10.0 # [DYNAMIC] Frequency of the pointcloud publishing. This value must be equal or less than the camera framerate.
56+
point_cloud_res: 'COMPACT' # The resolution used for point cloud publishing - 'COMPACT'-Standard resolution. Optimizes processing and bandwidth, 'REDUCED'-Half resolution. Low processing and bandwidth requirements
57+
depth_confidence: 95 # [DYNAMIC]
5358
depth_texture_conf: 100 # [DYNAMIC]
5459
remove_saturated_areas: true # [DYNAMIC]
55-
qos_history: 1 # '1': KEEP_LAST - '2': KEEP_ALL
56-
qos_depth: 1 # Queue size if using KEEP_LAST
57-
qos_reliability: 1 # '1': RELIABLE - '2': BEST_EFFORT -
58-
qos_durability: 2 # '1': TRANSIENT_LOCAL - '2': VOLATILE
60+
publish_depth_map: true # Advertise the depth map topics that are published only if a node subscribes to them
61+
publish_depth_info: false # Advertise the depth info topic that is published only if a node subscribes to it
62+
publish_point_cloud: true # Advertise the point cloud topic that is published only if a node subscribes to it
63+
publish_depth_confidence: false # Advertise the depth confidence topic that is published only if a node subscribes to it
64+
publish_disparity: false # Advertise the disparity topic that is published only if a node subscribes to it
65+
# Other parameters are defined, according to the camera model, in the 'zed.yaml', 'zedm.yaml', 'zed2.yaml', 'zed2i.yaml'
66+
# 'zedx.yaml', 'zedxmini.yaml', 'virtual.yaml' files
67+
68+
5969

6070
pos_tracking:
6171
pos_tracking_enabled: true # True to enable positional tracking from start
@@ -96,12 +106,18 @@
96106
qos_durability: 2 # '1': TRANSIENT_LOCAL - '2': VOLATILE
97107

98108
sensors:
109+
publish_imu_tf: false # [overwritten by launch file options] enable/disable the IMU TF broadcasting
110+
publish_imu: false # Advertise the IMU topic that is published only if a node subscribes to it
111+
publish_imu_raw: false # Advertise the raw IMU topic that is published only if a node subscribes to it
99112
sensors_image_sync: false # Synchronize Sensors messages with latest published video/depth message
100113
sensors_pub_rate: 200. # frequency of publishing of sensors data. MAX: 400. - MIN: grab rate
101114
qos_history: 1 # '1': KEEP_LAST - '2': KEEP_ALL
102115
qos_depth: 1 # Queue size if using KEEP_LAST
103116
qos_reliability: 1 # '1': RELIABLE - '2': BEST_EFFORT -
104117
qos_durability: 2 # '1': TRANSIENT_LOCAL - '2': VOLATILE
118+
publish_mag: false # Advertise the magnetometer topic that is published only if a node subscribes to it
119+
publish_baro: false # Advertise the barometer topic that is published only if a node subscribes to it
120+
publish_temp: false # Advertise the temperature topics that are published only if a node subscribes to them
105121

106122
object_detection:
107123
od_enabled: false # True to enable Object Detection [only ZED 2]
@@ -135,3 +151,22 @@
135151
debug:
136152
debug_mode: false
137153
debug_sensors: false
154+
155+
stream_server:
156+
stream_enabled: false # enable the streaming server when the camera is open
157+
158+
159+
gnss_fusion:
160+
gnss_fusion_enabled: false # fuse 'sensor_msg/NavSatFix' message information into pose data
161+
gnss_fix_topic: '/lexus3/nova/fix' # TODO: Name of the GNSS topic of type NavSatFix to subscribe [Default: '/gps/fix']
162+
gnss_zero_altitude: false # Set to `true` to ignore GNSS altitude information
163+
h_covariance_mul: 1.0 # Multiplier factor to be applied to horizontal covariance of the received fix (plane X/Y)
164+
v_covariance_mul: 1.0 # Multiplier factor to be applied to vertical covariance of the received fix (Z axis)
165+
publish_utm_tf: false # Publish `utm` -> `map` TF
166+
broadcast_utm_transform_as_parent_frame: false # if 'true' publish `utm` -> `map` TF, otherwise `map` -> `utm`
167+
enable_reinitialization: false # determines whether reinitialization should be performed between GNSS and VIO fusion when a significant disparity is detected between GNSS data and the current fusion data. It becomes particularly crucial during prolonged GNSS signal loss scenarios.
168+
enable_rolling_calibration: true # If this parameter is set to true, the fusion algorithm will used a rough VIO / GNSS calibration at first and then refine it. This allow you to quickly get a fused position.
169+
enable_translation_uncertainty_target: false # When this parameter is enabled (set to true), the calibration process between GNSS and VIO accounts for the uncertainty in the determined translation, thereby facilitating the calibration termination. The maximum allowable uncertainty is controlled by the 'target_translation_uncertainty' parameter.
170+
gnss_vio_reinit_threshold: 5.0 # determines the threshold for GNSS/VIO reinitialization. If the fused position deviates beyond out of the region defined by the product of the GNSS covariance and the gnss_vio_reinit_threshold, a reinitialization will be triggered.
171+
target_translation_uncertainty: 0.1 # defines the target translation uncertainty at which the calibration process between GNSS and VIO concludes. By default, the threshold is set at 10 centimeters.
172+
target_yaw_uncertainty: 0.1 # defines the target yaw uncertainty at which the calibration process between GNSS and VIO concludes. The unit of this parameter is in radian. By default, the threshold is set at 0.1 radians.

launch/drivers/cam_zed_zed2.launch.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def generate_launch_description():
1616

1717
zed_camera_name_arg = DeclareLaunchArgument(
1818
'zed_camera_name',
19-
default_value='zed',
19+
default_value='lexus3_zed',
2020
description='Logical camera name for ZED parameters'
2121
)
2222

launch/drivers/gps_nova.launch.py

Lines changed: 41 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -36,61 +36,56 @@ def arg(name, default_value, description):
3636

3737

3838
def generate_launch_description():
39-
nova_namespace_arg = DeclareLaunchArgument(
40-
'novatel_ns',
41-
default_value='lexus3/gps/nova',
42-
description='Namespace for the novatel gps node')
43-
44-
nova_ip_arg = arg('novatel_ip_addr', '192.168.10.12', 'IP Address of Oem7 Receiver, e.g. 192.168.1.2')
45-
nova_port_arg = arg('novatel_port', '3001', 'TCP or UDP port, e.g. 3002')
46-
nova_if_arg = arg('novatel_interface', 'Oem7ReceiverUdp', 'Interface Type: Oem7ReceiverTcp or Oem7ReceiverUdp')
47-
4839

49-
nova_node = Node(
40+
node = Node(
5041
package=PKG,
51-
namespace=LaunchConfiguration('novatel_ns'),
42+
namespace='/lexus3/nova',
5243
name='main',
5344
executable='novatel_oem7_driver_exe',
5445

5546
parameters=[
56-
get_params("std_msg_handlers.yaml" ),
57-
get_params("std_oem7_raw_msgs.yaml" ),
58-
get_params("std_msg_topics.yaml" ),
59-
get_params("oem7_supported_imus.yaml" ),
60-
get_params("std_init_commands.yaml" ),
61-
{
62-
# Refer to README for more information on the configuration parameters
63-
# Receiver IO Parameters
64-
'oem7_max_io_errors' : 10,
65-
'oem7_msg_decoder': 'Oem7MessageDecoder',
66-
'novatel_interface' : LaunchConfiguration('novatel_interface'),
67-
'novatel_ip_addr' : LaunchConfiguration('novatel_ip_addr'),
68-
'novatel_port' : LaunchConfiguration('novatel_port'),
69-
70-
# Topic Parameters
71-
'oem7_position_source' : '', # If not set, then uses INSPVA or BESTPOS based on quality
72-
'oem7_imu_rate' : 0,
73-
'oem7_odometry_zero_origin' : False,
74-
'oem7_odometry_transform' : False,
47+
get_params("std_msg_handlers.yaml" ),
48+
get_params("std_oem7_raw_msgs.yaml" ),
49+
get_params("std_msg_topics.yaml" ),
50+
get_params("oem7_supported_imus.yaml" ),
51+
get_params("std_init_commands.yaml" ),
52+
{
53+
# Refer to README for more information on the configuration parameters
54+
# Receiver IO Parameters
55+
'oem7_max_io_errors' : 10,
56+
'oem7_msg_decoder': 'Oem7MessageDecoder',
57+
'oem7_if' : LaunchConfiguration('oem7_if'),
58+
'oem7_ip_addr' : LaunchConfiguration('oem7_ip_addr'),
59+
'oem7_port' : LaunchConfiguration('oem7_port'),
60+
61+
# Topic Parameters
62+
'oem7_position_source' : '', # If not set, then uses INSPVA or BESTPOS based on quality
63+
'oem7_imu_rate' : 0,
64+
'oem7_odometry_zero_origin' : False,
65+
'oem7_odometry_transform' : False,
7566

76-
# Debug/Other Parameters
77-
'oem7_receiver_log_file' : '',
78-
'oem7_decoder_log_file' : '',
79-
'oem7_strict_receiver_init' : True,
80-
'oem7_publish_unknown_oem7raw' : False,
81-
'oem7_publish_delay' : 0.0
82-
},
83-
get_override_params() # Must be last to override
84-
],
67+
# Debug/Other Parameters
68+
'oem7_receiver_log_file' : '',
69+
'oem7_decoder_log_file' : '',
70+
'oem7_strict_receiver_init' : True,
71+
'oem7_publish_unknown_oem7raw' : False,
72+
'oem7_publish_delay' : 0.0
73+
74+
},
75+
get_override_params() # Must be last to override
76+
],
8577

8678
output='screen',
8779
)
8880

89-
return LaunchDescription([
90-
nova_namespace_arg,
91-
nova_ip_arg,
92-
nova_port_arg,
93-
nova_if_arg,
81+
ip_arg = arg('oem7_ip_addr', '192.168.10.12', 'IP Address of Oem7 Receiver, e.g. 192.168.1.2')
82+
port_arg = arg('oem7_port', '3001', 'TCP or UDP port, e.g. 3002')
83+
if_arg = arg('oem7_if', 'Oem7ReceiverUdp', 'Interface Type: Oem7ReceiverTcp or Oem7ReceiverUdp')
84+
85+
return LaunchDescription([ip_arg, port_arg, if_arg,
86+
node])
87+
88+
89+
9490

95-
nova_node
96-
])
91+

launch/tf_static.launch.py

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from launch_ros.actions import Node
33
from launch.actions import DeclareLaunchArgument
44
from launch.substitutions import LaunchConfiguration
5+
from math import pi
56

67

78
def generate_launch_description():
@@ -103,6 +104,25 @@ def generate_launch_description():
103104
'--child-frame-id', [LaunchConfiguration('tf_static_ns'), '/zed_camera_link']
104105
],
105106
),
107+
Node(
108+
package='tf2_ros',
109+
executable='static_transform_publisher',
110+
name='zed_camera_temporary', # TODO:
111+
output='screen',
112+
arguments=[
113+
'--x', '0.0',
114+
'--y', '0.0',
115+
'--z', '0.0',
116+
'--qx', '0.0',
117+
'--qy', '0.0',
118+
'--qz', '0.0',
119+
'--qw', '1.0',
120+
121+
'--frame-id', [LaunchConfiguration('tf_static_ns'), '/zed_camera_link'],
122+
'--child-frame-id', [LaunchConfiguration('tf_static_ns'), '_zed_camera_link']
123+
],
124+
),
125+
106126
Node(
107127
package='tf2_ros',
108128
executable='static_transform_publisher',
@@ -148,7 +168,7 @@ def generate_launch_description():
148168
'--x', '0.75',
149169
'--y', '0.5',
150170
'--z', '1.3',
151-
'--yaw', '0.0',
171+
'--yaw', '-3.1415926535',
152172
'--pitch', '0.0',
153173
'--roll', '0.0',
154174

@@ -165,7 +185,7 @@ def generate_launch_description():
165185
'--x', '1.53',
166186
'--y', '-0.5',
167187
'--z', '1.41',
168-
'--yaw', '0.0',
188+
'--yaw', '-3.1415926535',
169189
'--pitch', '0.0',
170190
'--roll', '0.0',
171191

@@ -182,7 +202,7 @@ def generate_launch_description():
182202
'--x', '0.75',
183203
'--y', '0.0',
184204
'--z', '1.91',
185-
'--yaw', '0.0',
205+
'--yaw', '-3.1415926535',
186206
'--pitch', '0.0',
187207
'--roll', '0.0',
188208

@@ -217,7 +237,7 @@ def generate_launch_description():
217237
'--z', '0.0',
218238
'--yaw', '1.04719755',
219239
'--pitch', '0.0',
220-
'--roll', '3.141592654',
240+
'--roll', '0.0',
221241

222242
'--frame-id', [LaunchConfiguration('tf_static_ns'), '/base_link'],
223243
'--child-frame-id', [LaunchConfiguration('tf_static_ns'), '/radar_front_left']
@@ -283,9 +303,9 @@ def generate_launch_description():
283303
'--x', '1.43',
284304
'--y', '-0.3',
285305
'--z', '1.41',
286-
'--yaw', '0.0',
306+
'--yaw', '-0.0174533',
287307
'--pitch', '0.0',
288-
'--roll', '-0.0174533',
308+
'--roll', '0.0',
289309

290310
'--frame-id', [LaunchConfiguration('tf_static_ns'), '/base_link'],
291311
'--child-frame-id', [LaunchConfiguration('tf_static_ns'), '/luminar_lidar_0']

0 commit comments

Comments
 (0)