My feeling is that there needs to be a match between the firmware of the D455I (I used 5.12.15.50) and librealsense2 (I used 2.51) and the ROS
wrapper.
Step1. removed any previous install related to ‘realsense’:
dpkg -l | grep "realsense" | cut -d " " -f 3 | xargs sudo dpkg --purge
Step2. installed librealsense2 according to
https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md >Installing the packages
Make sure to unplug the sensor at the end, wait 10 seconds, then plug it
back again. Test
realsense-viewer
and saw the depth camera is operational.
Step3. Check version of librealsense that was just installed:
dpkg -l|grep realsense
where I got 2.51
Step4. Firmware upgrade/downgrade of the D455 to match the librealsense 2.51
Now my interpretation is that we need to check the column ‘SDK ver’ on https://dev.intelrealsense.com/docs/firmware-releases and match that to, in my case, librealsense 2.51
Save the bin file and flash it to the D455 using https://www.intelrealsense.com/developers/ > Firmware update guide >'Firmware Update Tool (rs-fw-update)'
Make sure to unplug the sensor, wait 10 seconds, then plug it back again.
Step5. Install RealSense Wrapper
https://github.com/IntelRealSense/realsense-ros > Method 2
Step6. Test in ROS:
roslaunch realsense2_camera rs_camera.launch
Troubleshooting: in case of errors, unplug the sensor, wait 10 seconds, then plug it back again. I tested this approach on a D435 and was successfull too. It worked on Ubuntu 20.04 native as well as a virtual image on VMWare Player 17.