Realsense Viewer以及ROS驱动安装
要想通过ROS驱动Realsense系列产品,需要首先安装Realsense Viewer以及对应版本的realsense-ros驱动。
Realsense Viewer安装
Realsense Viewer的安装参考文章Linex Ubuntu环境下 Intel Realsense D435I 驱动+ROS驱动安装配置
- 安装依赖项
bash
sudo apt-get update
sudo apt-get install libudev-dev libgtk-3-dev libusb-1.0-0-dev pkg-config libglfw3-dev libssl-dev
- 前往https://github.com/IntelRealSense/librealsense/releases下载librealsense,需要注意下载的版本,仅2.50.0之前的版本支持L515,所以需要下载2.50.0之前的版本
- 编译及安装
bash
cd librealsense
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && udevadm trigger
mkdir build
cd build
cmake ../ -DBUILD_EXAMPLES=true
make -j8
sudo make install
- 检测是否安装成功
打开终端,通过realsense-viewer
启动,观察是否能查看到相机图像
Realsense-ros驱动安装
推荐通过源码安装
- 创建工作空间
bash
cd
mkdir ros-realsense_ws && cd ros-realsense_ws
mkdir src && cd src
- 克隆源代码
bash
https://github.com/IntelRealSense/realsense-ros.git
根据自己的需求切换ROS1或者ROS2分支
bash
git checkout ros1-legacy
- 编译
bash
catkin_make
Resource not found: rgbd_launch
如果启动rs_rgbd.launch时报错Resource not found: rgbd_launch
,这是因为rs_rgbd.launch中启动了一些ROS中自带的功能包,当你没有安装这些功能包时就会报这个错误,直接安装即可,记得将melodic切换为自己需要的ros版本
bash
sudo apt-get install ros-melodic-rgbd-launch
压缩深度图的Rviz报错与无法读取问题
当使用Realsense-ros对L515进行驱动时,会遇到深度图的压缩图在Rviz无法可视化、无法从其中恢复出可用数据的问题,其原因是L515产生的深度图为16位,但是采用的压缩方式为8位有损JPEG压缩,压缩算法会将16位的图像按照8位图像进行处理,导致压缩算法根本无法"理解"图像中的内容,而JPEG压缩算法本身为有损压缩算法,在压缩算法无法"理解"图像内容的前提下,有损压缩会损坏原始数据,从而导致压缩深度图出错。
解决方法:更改压缩方式为16位无损PNG压缩
bash
<param name="color/image_raw/compressed/format" value="png"/>
<param name="color/image_raw/compressed/png_level" value="1"/>
其中第一个参数为压缩格式,可选项为png和jpeg,第二个参数为压缩级别,0 表示无压缩,处理速度最快,文件最大;9 表示最高压缩级别,处理速度较慢,但文件最小。如果参数修改后无效,请参考下一小节"参数修改"。
参数修改
因为L515的驱动程序rs_rgbd.launch中不仅启动了当前功能包中的节点,还启动了一下ROS中自带的节点,因此在设置参数时记得将参数写在launch文件的最前面,否则ROS自带节点可能会无法读取到该参数。
软件对齐与硬件对齐
官方提供的rs_rgbd.launch中提供了将RGB图像与深度图像对齐到同一坐标系的选项,其中如果将align_depth
置为true,则为在硬件中对齐;如果将其置为false,则为软件对齐