Intel Realsense D435i
Description
The Intel RealSense D435i is an RGB-D depth camera with an integrated inertial measurement unit (IMU). These cameras provide robots with a 3 dimensional view of the world allowing you to create algorithms that reason about 3D structures. The addition of an IMU helps the system orient itself when moving.
Setup
Installation
There are two components required to use the RealSense from ROS: the library (librealsense) and the ROS wrapper (realsense-ros). Below are the installation instructions
- librealsense was installed as part of the Computer Setup
realsense-ros
can be installed withapt install ros-iron-realsense2-*
Testing
- Plug in the RealSense
- Run
realsense-viewer
. If prompted to update the firmware, do it.- Be patient, it can take a while.
- Dismiss the "Software Update" if prompted, but do the recommended firmware update.
- Confirm that the RealSense works in the viewer by turning on the stereo module and RGB camera.
Using
- There are 3 ways of using the realsense in ROS: the ROS driver, the C++ SDK, or the python SDK
- The ROS driver provides the most flexibility for several reasons:
- By exposing the data from realsense as topics, multiple nodes can easily access the information
- There is a common interface for Point cloud producing devices in ROS, so the sensor could be swapped out for another one if it does not meet your needs
ROS Driver
- Instructions for use and an explanation of the topics that are published are posted here
- There is also Developer Documentation
- The most common way to launch the realsense in ROS is with it's launchfile:
ros2 launch realsense2_camera rs_launch.py depth_module.profile:=1280x720x30 pointcloud.enable:=true
- There are many options and parameters and topics, so you can explore further
- To interpret the depth image values see This example
- Basically each pixel is a 16 bit integer that is the distance in
mm
- Basically each pixel is a 16 bit integer that is the distance in
SDK
- Official documentation is here for using SDK 2.0: https://dev.intelrealsense.com/docs/docs-get-started
- Use
librealsense
python wrappers: wrappers around librealsense for more advanced usage in python - Use
librealsense
from C++- This is for advanced and fast point cloud processing