## ROS Package QuickStarts ### Introduction This section provides a quick start to using the Orbbec ROS 2 wrapper. You will learn how to: * Launch a camera node. * Visualize depth/color streams in **RViz2**. * Interact with topics and services using **ROS 2 CLI tools**. --- ### Build your First Camera Application #### Step 1: Source ROS 2 and Workspace Make sure ROS 2 and your workspace environment are sourced: ```bash source /opt/ros/$ROS_DISTRO/setup.bash ``` Source code build requirements ```bash source ~/ros2_ws/install/setup.bash ``` #### Step 2: Launch the Camera Node - On terminal 1 ```bash . ./install/setup.bash ros2 run orbbec_camera list_devices_node #Check if the camera is connected ros2 launch orbbec_camera gemini_330_series.launch.py # Or other launch file, see below table ``` If you have multiple cameras connected, you can specify the **serial number**: ```bash ros2 launch orbbec_camera gemini_330_series.launch.py serial_number:= ``` #### Step 3: Visualize in RViz2 Launch RViz2 and load the default config: - On terminal 2 ```bash rviz2 ``` * Add an **Image** display, set topic to `/camera/color/image_raw`. * Add another **Image** display for `/camera/depth/image_raw`. * Optionally, add a **PointCloud2** display for `/camera/depth/points`. You should now see the color stream, depth stream, and 3D point cloud in RViz2. --- ### Sample Features After the node is running, try some ROS 2 CLI commands: #### List available topics / services/ parameters ```bash ros2 topic list ros2 service list ros2 param list ``` #### Echo a topic View depth camera data: ```bash ros2 topic echo /camera/depth/camera_info ``` #### Call a service For example, get device Information: ```bash ros2 service call /camera/get_device_info orbbec_camera_msgs/srv/GetDeviceInfo '{}' ``` #### Record with rosbag2 ```bash ros2 bag record /camera/color/image_raw /camera/depth/image_raw ``` #### Record and play back with SDK bag SDK bag recording uses the Orbbec SDK to record device data. It is useful when you want to restart the wrapper later with the recording as a playback device. Record when launching: ```bash ros2 launch orbbec_camera gemini_330_series.launch.py bag_record_filename:=/tmp/orbbec_record.bag ``` You can also start or stop recording while the node is running: ```bash ros2 service call /camera/set_bag_recording orbbec_camera_msgs/srv/SetBagRecording "{enable: true, file_path: '/tmp/orbbec_record.bag'}" ``` ```bash ros2 service call /camera/set_bag_recording orbbec_camera_msgs/srv/SetBagRecording "{enable: false, file_path: ''}" ``` Play back an SDK bag: ```bash ros2 launch orbbec_camera gemini_330_series.launch.py bag_filename:=/tmp/orbbec_record.bag ``` Loop playback: ```bash ros2 launch orbbec_camera gemini_330_series.launch.py bag_filename:=/tmp/orbbec_record.bag bag_loop:=true ```