注意
realsense-ros 要和 librealsense 版本匹配,realsense-ros 2.2.11 对应的 Realsense SDK 为 librealsense 2.31 .0,否则后面会出现让人崩溃的问题。
- 其中 realsense-ros 的下载如下:
https://download.csdn.net/download/hltt3838/36063617
删除之前安装的RealSense库文件,使用下列的命令:
dpkg -l // 查看所有安装的软件;
sudo apt-get remove ros-melodic-librealsense2 // 相信对于重复安装会有用的;
一、安装环境说明
- LInux系统
- 系统版本:Ubuntu 18.04
- ROS版本:Melodic
- 摄像头: Intel Realsense D435i
二、RealSense SDK安装
2.0 更新系统
// 打开终端 0 sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
2.1 下载SDK
新打开一个终端1,输入以下命令:
1、git 下载
- mkdir -p librealsense_install
- cd librealsense_install/
git clone -b v2.31.0 https://github.com/IntelRealSense/librealsense.git2、手动下载
3、cd librealsense_install
说明:
个人用的是手动安装,最好开个手机流量
2.2 安装相关依赖(拔掉相机)
打开新的端口,分别输入以下命令完成相关依赖的安装:
- sudo apt-get install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev
- sudo apt-get install libglfw3-dev
2.3 进行编译与安装
在执行以下命令实现编译与安装
- cd librealsense_install/librealsense
- mkdir build
- cd build
- cmake ../ -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=true // 开流量
- sudo make uninstall
- make clean && make -j8
- sudo make install
三、测试安装是否成功
在终端中输入以下命令验证相机驱动是否安装成功
- cd librealsense_install/librealsense/build/examples/capture
- ./rs-capture
或者,新打开终端
realsense-viewer
// realsense-viewer 后看到SDK的版本不是2.31 .0;
注意:
可能会没有下面图像,出现错误的原因是,由于RealSense D435i是RGBD相机,也就是颜色与深度相机,其数据量大,需要使用USB3.0的接口才能承受大数据流的传输,如果您使用的是USB2.0接口,则会出现上述问题。
安装成功则可以看到输入命令后打开一个窗口,窗口中显示相机拍摄到的画面如下图所示。
四、RealSense-ROS安装
我已经新建了ROS工作空间,可以直接在工作空间的src目录下克隆相关功能包,然后进行编译,具体命令参考下方:
1、已建好工作空间
- cd Realsense_D435i/src
- git clone -b 2.2.11 https://github.com/IntelRealSense/realsense-ros.git
- git clone https://github.com/pal-robotics/ddynamic_reconfigure.git
/快速下载链接:https://download.csdn.net/download/AnChenliang_1002/13085304
完成上述步骤后,使用以下命令进行测试:
- cd Realsense_D435i
- catkin_make
- source devel/setup.bash
- roslaunch realsense2_camera mytest.launch // mytest.launch 是自己写的,原因是用配套的程序发现IMU频率很高,运行VINS-mono有问题
打开新的终端:
(1)查看节点
rostopic list
hltt3838@hltt3838-G3-3579:~$ rostopic list
- /camera/accel/imu_info
- /camera/accel/sample
- /camera/color/camera_info
- /camera/color/image_raw
- /camera/depth/camera_info
- /camera/depth/image_rect_raw
- /camera/extrinsics/depth_to_color
- /camera/extrinsics/depth_to_infra1
- /camera/extrinsics/depth_to_infra2
- /camera/gyro/imu_info
- /camera/gyro/sample
- /camera/infra1/camera_info
- /camera/infra1/image_rect_raw
- /camera/infra2/camera_info
- /camera/infra2/image_rect_raw
- /camera/motion_module/parameter_descriptions
- /camera/motion_module/parameter_updates
- /camera/realsense2_camera_manager/bond
- /camera/rgb_camera/parameter_descriptions
- /camera/rgb_camera/parameter_updates
- /camera/stereo_module/parameter_descriptions
- /camera/stereo_module/parameter_updates
- /diagnostics
- /rosout
- /rosout_agg
- /tf_static
// 比如记录IMU的数据bag
rosbag record /camera/accel/imu_info -O imu.bag
(2)rviz查看結果
rviz
此时并不能看到什么结果.
左上角 Displays 中 Fixed Frame 选项中,下拉菜单选择 camera_link
这是主要到Global Status变成了绿色
点击该框中的Add -> 上方点击 By topic -> /depth_registered 下的 /points 下的/PointCloud2
点击该框中的 Add -> 上方点击 By topic -> /color 下的 /image_raw 下的image
五、数据记录与播放
说明:运行上面的 roslaunch realsense2_camera demo_pointcloud.launch 指令时,便可以进行下面bag的录制
- rosbag record -a #录制所有topic到bag文件,注意-终端的地址就是bag包存放的地址,bag的名字是时间;
比如记录IMU的数据bag
rosbag record /camera/accel/imu_info -O imu.bag
变成了 rosbag record /camera/imu -O imu.bag // 因为修改了realsense2_camera的程序
- rosbag record /camera/imu /camera/color/image_raw -o Cam-imu.bag // 录制两个话题的bag包
- rosbag play xxx.bag #播放bag文件
- rosbag info xxx.bag #查看bag文件
注意:rosbag play bag 的同时,也可以提取bag包发布的特定topic,保存成txt或者csv文件,如下所示:
- rostopic echo /camera/imu > imu.txt
六、出现的问题和解决的办法
问题1,运行下面命令时出现问题:
- cmake ../ -DBUILD_EXAMPLES=true
解决办法:
访问以下链接(该链接在终端中提及),下载L5XX_FW_Image-1.4.1.2.bin, 并将其更新至librealsense/build/commom/fw目录中
realsense-hw-public.s3.amazonaws.com/Releases/L5xx/FW/L5XX_FW_Image-1.4.1.2.bin
更新文件后再次执行以下命令,问题解决,最终显示如图所示的结果
- cmake ../ -DBUILD_EXAMPLES=true
问题2,运行 roslaunch realsense2_camera rs_camera.launch 命令时出现问题:
解决办法- 不要看别人的,别人的特别的麻烦,而且误导你
在 Realsense_D435i/realsense-ros/realsense2_camera文件下的CMakelists 中添加:
find_package(OpenCV 3 REQUIRED opencv_core opencv_imgcodecs opencv_imgproc opencv_highgui)
或添加上opencv_calib3d opencv_videoio
参考博客
版本对应的博客
Ubuntu 16.04 + Realsense D435i + ROS 环境配置 - Hongkai_Ding - 博客园
OpenCV 程序编译出错 '_ZN2cv6imreadERKNS_6StringEi'_suzhou7915的博客-CSDN博客在ROS下Intel RealSense D435i 驱动的安装,避免踩坑,避免缺少imu话题等各种问题(适用于D400系列、SR300和T265跟踪模块等)_AnChenliang_1002的博客-CSDN博客