**Click on the content table for direct access to the different sections
CONTENTS
- Prerequisites
- ROS/ROS2 Installation
- Getting started with ROS wrapper and D400e
- Debugging and troubleshooting initial Tipps
Prerequisites
Before start, perform the installation of the Framos Software Package (CameraSuite and Librealsense2). Please follow the instructions in the Readme file included.
To validate that the camera is recognized properly please check using the ConfigureIP tool from CameraSuite:
Or the realsense-viewer:
Note: If camera does not appear connected, please review the network settings on host PC and Camera. Refer to the troubleshooting section of this knowledge base as well.
ROS/ROS2 Installation
Inside the ROS/ROS2 wrappers folder from librealsense2 installation a guidance will be included. Please make sure to follow the instructions in the “readme_d400e.md” file included in each ROS folder.
As example for this article the installation for ROS2 under Ubuntu 20.04 will be presented.
Installation Process
The “readme_d400e.md” will include steps for the different Ubuntu distros as well as the versions that apply for the selected Ubuntu. Make sure to follow part of steps that correspond to the selected ROS and Ubuntu.
Checking Installation
Use in parallel the guidance from ROS website itself (in the picture from the previous section the link is highlighted with a red line). That guidance refers to additional steps that help to check the installation and propose links for further documentation about ROS.
Below a simple example (talker and listener) to check if C++ and Python APIs are working properly for ROS after the installation:
In one terminal
source /opt/ros/foxy/setup.bash ros2 run demo_nodes_cpp talker
In another terminal
source /opt/ros/foxy/setup.bash ros2 run demo_nodes_py listener
Another thing that can be checked is if the environmental variables are active using following command in terminal:
printenv | grep ROS
Getting started with ROS wrapper and D400e
Resume the “readme_d400e.md” following the instructions to build the wrapper from sources by creating a working directory and installing the dependencies as stated in the steps listed.
Once the building process is done proceed to launch the node. To do so open a terminal:
cd ~/ros2_ws/ . install/local_setup.bash (perform this in each terminal that you open) ros2 launch realsense2_camera d400e_rs_launch.py
Resulted output after lunching the node:
Use applications like rviz to quickly check the camera streaming. The image below shows an example of the camera added:
Note: make sure to change in the `Fixed Frame` from `map` to `camera_depth_frame`
After the first trial is done successfully, start adding the different things you would like to set or enable for the camera using the yaml file inside the working directly. Following the example from the guidance would be:
cd ~/ros2_ws/src/realsense2_camera/config gedit d400e.yaml
Things like “Serial_no” or “ip_address” can be added (the example would grab the first camera found if nothing is given) then set or enable the different things like resolution, channels active or the packet size. Below a small preview of the contents in the yaml file:
The guidance also explains how to configure or create files in case more than one camera is used, like in the example file called “d400e_multi_camera.yaml”. Or in case external events the file will be called “d400e_external_event_mode.yaml”.
Debugging and troubleshooting initial Tips
The prompted output after using the launch files is the best initial point to start debugging whenever a problem appears. The output will show if something was not enabled, any errors or ,in worst case, will prompt that cannot start because the camera is not found.
To start, here an example of a successful output:
Here another example when camera is not detected in the system:
Here an example of functionalities listed that aren’t active but could be enabled if required:
Similar messages will be prompt that highlight something whenever a problem rises. Many of these messages will depend on the settings listed in the yaml file as well as the launch file. Therefore, is fundamental to keep a track of the messages being outputted while stating the node.
Note: in case the yaml is not used, node will launch anyway with a default configuration
Check the Publisher QoS policies, they provide information about the topics. Launch in another terminal:
ros2 topic list
ros2 topic info /camera/depth/image_rect_raw
Note: the refence command is ros2 topic info <topic>
In case verbose output is desired
ros2 topic info -v /camera/depth/image_rect_raw
Also a way to see an output of the streaming without any live streaming is by echoing the output in the terminal
ros2 topic echo /camera/depth/image_rect_raw