Skip to content

Commit 9fa4add

Browse files
authored
Merge pull request #31 from stereolabs/dev_noetic
Dev noetic
2 parents 20beb61 + 9e3b4ce commit 9fa4add

File tree

14 files changed

+1402
-83
lines changed

14 files changed

+1402
-83
lines changed

README.md

+9-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
![](./images/Picto+STEREOLABS_Black.jpg)
22

3-
# Stereolabs ZED Camera - ROS Tutorials and Examples
3+
# Stereolabs ZED Camera - ROS Noetic Ninjemis Tutorials and Examples
44

55
This package is a collection of examples and tutorials to illustrate how to better use the ZED cameras in the ROS framework
66

@@ -14,9 +14,14 @@ This package is a collection of examples and tutorials to illustrate how to bett
1414

1515
### Prerequisites
1616

17-
- Ubuntu 16.04 or newer (Ubuntu 18.04 recommended)
18-
- [ZED SDK **≥ 3.0**](https://www.stereolabs.com/developers/) and its dependency [CUDA](https://developer.nvidia.com/cuda-downloads)
19-
- [ROS Kinetic](http://wiki.ros.org/kinetic/Installation/Ubuntu) or [ROS Melodic](http://wiki.ros.org/melodic/Installation/Ubuntu) (recommended)
17+
- Ubuntu 20.04
18+
- [ZED SDK **≥ 3.5**](https://www.stereolabs.com/developers/) and its dependency [CUDA](https://developer.nvidia.com/cuda-downloads)
19+
- [ROS Noetic](http://wiki.ros.org/noetic/Installation/Ubuntu)
20+
21+
- Ubuntu 18.04
22+
- [ZED SDK **≥ 3.5**](https://www.stereolabs.com/developers/) and its dependency [CUDA](https://developer.nvidia.com/cuda-downloads)
23+
- [ROS Melodic](http://wiki.ros.org/melodic/Installation/Ubuntu)
24+
2025

2126
### Build the program
2227

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
<?xml version="1.0"?>
2+
<!--
3+
Copyright (c) 2020, STEREOLABS.
4+
5+
All rights reserved.
6+
7+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
8+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
9+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
10+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
11+
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
12+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
13+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
14+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
15+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
16+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
17+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
18+
-->
19+
<launch>
20+
<!-- Camera Model and Name -->
21+
<arg name="camera_name" default="zed" /> <!-- The name you want -->
22+
<arg name="camera_model" default="zed" /> <!-- 'zed' or 'zedm' or 'zed2' -->
23+
<arg name="node_name" default="zed_nodelet" />
24+
25+
<!-- Load SVO file -->
26+
<arg name="svo_file" default="" /><!-- <arg name="svo_file" default="path/to/svo/file.svo"> -->
27+
<!-- Remote stream -->
28+
<arg name="stream" default="" /> <!-- <arg name="stream" default="<ip_address>:<port>"> -->
29+
30+
<!-- Base frame -->
31+
<arg name="base_frame" default="base_link" />
32+
33+
<!-- Publish ZED urdf -->
34+
<arg name="publish_urdf" default="true" />
35+
36+
<!-- Publish TF -->
37+
<arg name="publish_tf" default="true" />
38+
39+
<arg name="camera_sn" default="0" />
40+
<arg name="gpu_id" default="-1" />
41+
42+
<!-- Position respect to base frame (i.e. "base_link) -->
43+
<arg name="cam_pos_x" default="0.0" />
44+
<arg name="cam_pos_y" default="0.0" />
45+
<arg name="cam_pos_z" default="0.0" />
46+
47+
<!-- Orientation respect to base frame (i.e. "base_link) -->
48+
<arg name="cam_roll" default="0.0" />
49+
<arg name="cam_pitch" default="0.0" />
50+
<arg name="cam_yaw" default="0.0" />
51+
52+
<!-- NOTE: THE NODELET MANAGER MUST BE STARTED EXTERNALLY. SEE "zed_nodelet_example" -->
53+
54+
<!-- Name of the Nodelet Manager -->
55+
<arg name="nodelet_manager_name" default="zed_nodelet_manager" />
56+
57+
<!-- ROS URDF description of the ZED -->
58+
<group if="$(arg publish_urdf)">
59+
<param name="$(arg camera_name)_description"
60+
command="$(find xacro)/xacro '$(find zed_wrapper)/urdf/zed_descr.urdf.xacro'
61+
camera_name:=$(arg camera_name)
62+
camera_model:=$(arg camera_model)
63+
base_frame:=$(arg base_frame)
64+
cam_pos_x:=$(arg cam_pos_x)
65+
cam_pos_y:=$(arg cam_pos_y)
66+
cam_pos_z:=$(arg cam_pos_z)
67+
cam_roll:=$(arg cam_roll)
68+
cam_pitch:=$(arg cam_pitch)
69+
cam_yaw:=$(arg cam_yaw)"
70+
/>
71+
72+
<node name="$(arg camera_name)_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" output="screen" required="true">
73+
<remap from="robot_description" to="$(arg camera_name)_description" />
74+
</node>
75+
</group>
76+
77+
<node pkg="nodelet" type="nodelet" name="$(arg node_name)" args="load zed_nodelets/ZEDWrapperNodelet $(arg nodelet_manager_name)" output="screen">
78+
<rosparam file="$(find zed_wrapper)/params/common.yaml" command="load" />
79+
<rosparam file="$(find zed_wrapper)/params/$(arg camera_model).yaml" command="load" />
80+
81+
<!-- Camera name -->
82+
<param name="general/camera_name" value="$(arg camera_name)" />
83+
84+
<!-- Base frame -->
85+
<param name="general/base_frame" value="$(arg base_frame)" />
86+
87+
<!-- SVO file path -->
88+
<param name="svo_file" value="$(arg svo_file)" />
89+
90+
<!-- Remote stream -->
91+
<param name="stream" value="$(arg stream)" />
92+
93+
<!-- Camera Serial Number -->
94+
<param name="general/serial_number" value="$(arg camera_sn)" />
95+
96+
<!-- GPU ID -->
97+
<param name="general/gpu_id" value="$(arg gpu_id)" />
98+
99+
<!-- TF -->
100+
<param name="pos_tracking/publish_tf" value="$(arg publish_tf)" />
101+
<param name="pos_tracking/publish_map_tf" value="$(arg publish_tf)" />
102+
</node>
103+
</launch>

examples/zed_multicamera_example/launch/zed_multi_cam.launch

+2-2
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4242
<arg name="cam_yaw_2" default="0.0" /> <!-- Orientation respect to base frame (i.e. "base_link) -->
4343

4444
<group ns="$(arg camera_name_1)">
45-
<include file="$(find zed_multicamera_example)/launch/zed_camera_mod.launch">
45+
<include file="$(find zed_multicamera_example)/launch/include/zed_camera_mod.launch">
4646
<arg name="camera_name" value="$(arg camera_name_1)" />
4747
<arg name="node_name" value="$(arg node_name_1)" />
4848
<arg name="camera_model" value="$(arg camera_model_1)" />
@@ -53,7 +53,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5353
</group>
5454

5555
<group ns="$(arg camera_name_2)">
56-
<include file="$(find zed_multicamera_example)/launch/zed_camera_mod.launch">
56+
<include file="$(find zed_multicamera_example)/launch/include/zed_camera_mod.launch">
5757
<arg name="camera_name" value="$(arg camera_name_2)" />
5858
<arg name="node_name" value="$(arg node_name_2)" />
5959
<arg name="camera_model" value="$(arg camera_model_2)" />
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
<?xml version="1.0"?>
2+
<!--
3+
Copyright (c) 2020, STEREOLABS.
4+
5+
All rights reserved.
6+
7+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
8+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
9+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
10+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
11+
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
12+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
13+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
14+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
15+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
16+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
17+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
18+
-->
19+
<launch>
20+
<!-- System name -->
21+
<arg name="system_name" default="zed_multi" />
22+
23+
<!-- Name of the Nodelet Manager -->
24+
<arg name="nodelet_manager_name" default="$(arg system_name)_nodelet_manager" />
25+
26+
<!-- Start Rviz? -->
27+
<arg name="start_rviz" default="false" />
28+
29+
<!-- FRONT CAMERA -->
30+
<arg name="camera_name_1" default="zed2_front" /> <!-- The name you want -->
31+
<arg name="camera_model_1" default="zed2" /> <!-- 'zed' or 'zedm' or 'zed2' -->
32+
<arg name="zed_nodelet_name_1" default="zed_nodelet_front" />
33+
34+
<!-- Base frame -->
35+
<arg name="base_frame_1" default="base_link" />
36+
37+
<!-- Publish ZED urdf -->
38+
<arg name="publish_urdf_1" default="true" />
39+
40+
<!-- Publish odom TF -->
41+
<arg name="publish_tf_1" default="true" />
42+
43+
<arg name="camera_sn_1" default="25555745" /> <!-- Very important to be able to identify the camera uniquely-->
44+
<arg name="gpu_id_1" default="-1" />
45+
46+
<!-- Position respect to base frame (i.e. "base_link) -->
47+
<arg name="cam_pos_x_1" default="0.175" />
48+
<arg name="cam_pos_y_1" default="0.0" />
49+
<arg name="cam_pos_z_1" default="0.0" />
50+
51+
<!-- Orientation respect to base frame (i.e. "base_link) -->
52+
<arg name="cam_roll_1" default="0.0" />
53+
<arg name="cam_pitch_1" default="0.0" />
54+
<arg name="cam_yaw_1" default="0.0" /> <!-- Looking forward -->
55+
56+
<!-- REAR CAMERA -->
57+
<arg name="camera_name_2" default="zed2_rear" /> <!-- The name you want -->
58+
<arg name="camera_model_2" default="zed2" /> <!-- 'zed' or 'zedm' or 'zed2' -->
59+
<arg name="zed_nodelet_name_2" default="zed_nodelet_rear" />
60+
61+
<!-- Base frame -->
62+
<arg name="base_frame_2" default="base_link" />
63+
64+
<!-- Publish ZED urdf -->
65+
<arg name="publish_urdf_2" default="true" />
66+
67+
<!-- Publish odom TF -->
68+
<arg name="publish_tf_2" default="false" /> <!-- Only one node must pushish TF, unless you use a Kalman filter to fuse odometries -->
69+
70+
<arg name="camera_sn_2" default="23154724" /> <!-- Very important to be able to identify the camera uniquely-->
71+
<arg name="gpu_id_2" default="-1" />
72+
73+
<!-- Position respect to base frame (i.e. "base_link) -->
74+
<arg name="cam_pos_x_2" default="-0.175" />
75+
<arg name="cam_pos_y_2" default="0.0" />
76+
<arg name="cam_pos_z_2" default="0.0" />
77+
78+
<!-- Orientation respect to base frame (i.e. "base_link) -->
79+
<arg name="cam_roll_2" default="0.0" />
80+
<arg name="cam_pitch_2" default="0.0" />
81+
<arg name="cam_yaw_2" default="3.141592654" /> <!-- Looking backward -->
82+
83+
<!-- Start Rviz-->
84+
<group if="$(eval arg('start_rviz')==true)">
85+
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find zed_multicamera_example)/rviz/multi_cam_single_nodelet.rviz" output="screen" />
86+
</group>
87+
88+
<!-- Start nodelet manager and two nodelets in the "system_name" namespace-->
89+
<group ns="$(arg system_name)">
90+
<!-- Common nodelet Manager -->
91+
<node pkg="nodelet" type="nodelet" name="$(arg nodelet_manager_name)" args="manager" output="screen" />
92+
93+
<group ns="$(arg camera_name_1)">
94+
<!-- Load ZED wrapper nodelet for camera 1 -->
95+
<include file="$(find zed_multicamera_example)/launch/include/zed_camera_nodelet_mod.launch">
96+
<arg name="nodelet_manager_name" value="/$(arg system_name)/$(arg nodelet_manager_name)" />
97+
<arg name="camera_name" value="$(arg camera_name_1)" />
98+
<arg name="node_name" value="$(arg zed_nodelet_name_1)" />
99+
<arg name="camera_model" value="$(arg camera_model_1)" />
100+
<arg name="base_frame" value="$(arg base_frame_1)" />
101+
<arg name="publish_urdf" value="$(arg publish_urdf_1)" />
102+
<arg name="publish_tf" value="$(arg publish_tf_1)" />
103+
<arg name="camera_sn" value="$(arg camera_sn_1)" />
104+
<arg name="gpu_id" value="$(arg gpu_id_1)" />
105+
<arg name="cam_pos_x" value="$(arg cam_pos_x_1)" />
106+
<arg name="cam_pos_y" value="$(arg cam_pos_y_1)" />
107+
<arg name="cam_pos_z" value="$(arg cam_pos_z_1)" />
108+
<arg name="cam_roll" value="$(arg cam_roll_1)" />
109+
<arg name="cam_pitch" value="$(arg cam_pitch_1)" />
110+
<arg name="cam_yaw" value="$(arg cam_yaw_1)" />
111+
</include>
112+
</group>
113+
114+
<group ns="$(arg camera_name_2)">
115+
<!-- Load ZED wrapper nodelet for camera 2-->
116+
<include file="$(find zed_multicamera_example)/launch/include/zed_camera_nodelet_mod.launch">
117+
<arg name="nodelet_manager_name" value="/$(arg system_name)/$(arg nodelet_manager_name)" />
118+
<arg name="camera_name" value="$(arg camera_name_2)" />
119+
<arg name="node_name" value="$(arg zed_nodelet_name_2)" />
120+
<arg name="camera_model" value="$(arg camera_model_2)" />
121+
<arg name="base_frame" value="$(arg base_frame_2)" />
122+
<arg name="publish_urdf" value="$(arg publish_urdf_2)" />
123+
<arg name="publish_tf" value="$(arg publish_tf_2)" />
124+
<arg name="camera_sn" value="$(arg camera_sn_2)" />
125+
<arg name="gpu_id" value="$(arg gpu_id_2)" />
126+
<arg name="cam_pos_x" value="$(arg cam_pos_x_2)" />
127+
<arg name="cam_pos_y" value="$(arg cam_pos_y_2)" />
128+
<arg name="cam_pos_z" value="$(arg cam_pos_z_2)" />
129+
<arg name="cam_roll" value="$(arg cam_roll_2)" />
130+
<arg name="cam_pitch" value="$(arg cam_pitch_2)" />
131+
<arg name="cam_yaw" value="$(arg cam_yaw_2)" />
132+
</include>
133+
</group>
134+
</group>
135+
</launch>

0 commit comments

Comments
 (0)