写在前面:一定要注意各个版本之间的匹配问题,否则会报各种错误。例如ROS版本和librealsense SDK版本之间的对应关系,以及realsense-ros(Wrapper)与librealsense SDK之间的对应关系。
系统:ubuntu18.04
ros: melodic
一、安装测试librealsense SDK
附上Intel® RealSense github网站:https://github.com/IntelRealSense
以及安装教程:https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md
1、下载安装包
可以直接下载zip格式解压到home目录下,也可以通过终端命令下载
注意:因为最新的SDK可能有bug,我选择下载以前的版本,通过tags标签选择历史版本,我下载的是v2.50.0版本
git clone https://github.com/IntelRealSense/librealsense.git
cd librealsense
2.更新依赖库
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
这里可以仅执行前两个指令,第三个可能会升级操作系统,可不执行。
3.安装依赖库
安装一些编译所需的依赖,不同版本系统安装依赖不同,以ubuntu18.04为例需要安装的是:
sudo apt-get install libudev-dev pkg-config libgtk-3-dev
sudo apt-get install libusb-1.0-0-dev pkg-config
sudo apt-get install libglfw3-dev
sudo apt-get install libssl-dev
4.运行脚本
进入到librealsense文件夹目录下,运行Intel Realsense 的许可脚本
./scripts/setup_udev_rules.sh
5.下载并编译内核模块
这一步会非常慢,我笔记本1W+,都运行了大概一个小时。
./scripts/patch-realsense-ubuntu-lts.sh
6.编译SDK2.0
cd librealsense
mkdir build
cd build
cmake ../ -DBUILD_EXAMPLES=true
make
sudo make install
make这一步也会非常慢,大概需要半个小时
7.测试
测试SDK2.0是否成功安装,使用usb3.0接口连上相机,进入到build/examples/capture文件夹中,执行
cd examples/capture
./rs-capture
或者直接在终端运行:
realsense-viewer
特别注意:根据上述步骤安装完librealsense SDK后,我兴致勃勃的使用USB连接好realsenseD435i相机,然后打开realsense-viewer。可是一打开Stereo Module模块就卡死,然后右边提示Current SW version: 2.50.0.0 Recommended SW version: 2.54.1.5216。心想刚装好2.50版本的SDK,不是要卸载重新安装吧,安装过程具漫长,简直要崩溃。后来仔细想了想,可能是硬件接触不好,我是把相机插在USB拓展坞上,随后拔了重新插在笔记本USB3.0的接口,瞬间好了,realsense-viewer运行半小时也不会卡死。 总之,淘宝上买的USB3.0拓展坞不靠谱。
二、安装realsense-ros
此时一定要注意版本问题:
官方网址为:https://github.com/IntelRealSense/realsense-ros
官网首页是针对ROS2的,所以我们要选择ROS1的分支,一定仔细阅读README,不然在工作空间的src文件夹下gitclone下载完成realsense-ros后,编译会出错,切记!我这里安装的是realsense-ros的2.3.2版本,在tag分支里。
1、创建工作空间(就三步)
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src/
catkin_init_workspace
cd ..
catkin_make
第一步:创建工作空间及src
第二步:初始化工作空间
第三步:编译工作空间
2、在catkin_ws/src/下载源程序
我喜欢下载官网的zip格式,然后解压到src,但也可以直接git clone命令下载
这时一定选择ros1版本的realsense-ros
再附一遍官网连接:https://github.com/IntelRealSense/realsense-ros
注意:GitHub - IntelRealSense/realsense-ros at ros1-legacy仓库描述说需要安装ddynamic_reconfigure,并提供了仓库地址。但在实际实践中发现,若是在安装ros系统时选择了 ros-melodic-desktop-full 包, 其中就已预装了ros-melodic-dynamic-reconfigure 包,如果再编译安装ddynamic_reconfigure源码,则在后续启动realsense d435i时便会失败。因此这里推荐先搜索下计算机是否已经安装dynamic-reconfigure,如果没有就使用apt安装即可。
此注意事项来自:Linux Ubuntu环境下 Intel Realsense D435I 驱动+ROS驱动安装配置
3、编译工作空间
cd ~/catkin_ws
catkin_make
截至到目前,安装完成,测试一下:
roslaunch realsense2_camera demo_pointcloud.launch
成功!!!
三、librealsense与realsense-ros卸载
1.删除所有实感™有关的程序包,如librealsense SDK
dpkg -l | grep "realsense" | cut -d " " -f 3 | xargs sudo dpkg --purge
2.删除librealsense文件夹
3.删除realsense-ros,直接在src下,delete就可以
吐槽:我知道librealsense与realsense-ros的版本需要一一对应,而且已经安装好了librealsense 2.50版本,因此在安装realsense-ros时,特意看了Readme里的版本支持字眼,LibRealSense2 supported version: v2.**.*(或者是realsense2_camera—CMakeLists里第44行realsense2的版本要求)。。。。但是ros1-legacy里明明写了支持LibRealSense2 supported version: v2.50.0,但是安装完成后,运行roslaunch realsense2_camera demo_pointcloud.launch
,却提示和librealsense版本不一致,如下所示:
API version mismatch: librealsense.so was compiled with API version 2.50.0 but the application was compiled with 2.53.1! Make sure correct version of the library is installed (make install)
只好重新寻找其他版本的realsense-ros,最后选择了2.3.2版本,同样支持 librealsensev2.50.0,最后完美运行!!!
Intel 的realsense相机这么成熟,且这么多人使用,为什么装驱动和对应ros包这么费尽呢,官方就不能完善下,写个详细准确的步骤!!!!
参考文献:
https://blog.csdn.net/qq_38364548/article/details/124784454?spm=1001.2014.3001.5506
https://blog.csdn.net/Lynn_mg/article/details/103149489?spm=1001.2014.3001.5506