ubuntu16安装librealsense 以及在ros上使用 [深度相机sr300]

记录ubuntu16安装librealsense 和ros包的过程,还有一些遇到的问题。

[温馨提醒^ _ ^]
如果按照下面步骤每一步完成(都没报错),还是不能显示图像,换个usb3.0口试试或者换一根usb3.0插线
我的笔记本有3个usb3.0,但我试了只有一个能用,而且我的相机的原装线不能用,换了移动硬盘的usb3.0线就能用了。我用了两天时间安装,一直不行,排除万难,确定我安装全部没错之后,我换了根线,然后解决,汗

首先下载源代码librealsense,编译并运行一些脚本,全部安装完librealsense文件夹会涨到776MB
(1)
github下载官方驱动包源代码

git clone https://github.com/IntelRealSense/librealsense librealsense

从github上下载速度有时极慢,几kB/s, 所以把下载好的包上传,方便以后下载
https://download.csdn.net/download/eye998/11130967
(2)
下载好之后在home目录建个文件夹software,把源代码解压到这里,进入librealsense文件夹,右键 “在终端打开”
安装之前要先检查一下系统内核uname -r,我的是4.15, 记住这个内核版本,后面要用到
如果内核太老,更新内核 sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
先安装librealsense依赖的包:

 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

接下来就是编译

mkdir build && cd build

运行cmake:

cmake .. -DBUILD_EXAMPLES:BOOL=true
make -j4
sudo make install

(3)
安装Video4Linux(Linux中关于视频设备的内核驱动) 【⚠️:安装前请确保摄像头拔出】
位于librealsense源代码目录中得dev规则:

    sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d
    sudo udevadm control --reload-rules && udevadm trigger

安装内核模块构建所需得openssl包: sudo apt-get install libssl-dev
为所需机器配置构建修补模块(ubuntu16.04)很重要!!!,过程比较慢,耐心等待)
1、 ./scripts/patch-realsense-ubuntu-lts.sh
2、cd ./scripts/
修补uvc模块:./patch-arch.sh
如果出现404 not found,修改patch-arch.sh脚本,将 SRC_VERSION_ID这一项改为SRC_VERSION_ID=4.15这里就是之前查看的版本内核号

(4)
连接相机,通过检查内核日志中得最新条目来检查安装:sudo dmesg | tail -n 50
出现以下项说明检测到了相机
在这里插入图片描述
7、进入capture文件夹测试例程,验证是否安装成功:

cd build/example/capture

./rs-capture

若连安装接成功,即会出现RealSense拍摄的彩色图像和深度图。或者输入realsense-viewer, 打开intel的sdk也可以查看相机的图像

ubuntu16安装librealsense 以及在ros上使用 [深度相机sr300]_第1张图片 ubuntu16安装librealsense 以及在ros上使用 [深度相机sr300]_第2张图片

使用librealsense库的函数

首先修改cmakelist
1、最顶端## Compile as C++11, supported in ROS Kinetic and newer下面,取消注释
add_compile_options(-std=c++11) #这里要打开,支持c++11,不然编译libsense2/rs.hpp时会出错
2、再加入find_package(realsense2 REQUIRED),单独一行
如果用到OpenCV就加入find_package(OpenCV REQUIRED)
3、链接库加入 ${OpenCV_LIBS}${realsense2_LIBRARY},如果没加入,会出现未定义的引用报错

 target_link_libraries(image_sub
   ${catkin_LIBRARIES} ${OpenCV_LIBS} ${realsense2_LIBRARY}
 )

然后包含头文件
#include ,就可以调用librealsense的代码了
例:rs2::frame depth = data.get_depth_frame();
注意这里安装的是realsense2,网上有些代码是realsense, 命名空间是rs, 而realsense2是rs2,而且有些函数名也不一样

升级Cmake

为了避免编译出错,需要升级到3.5以上版本

cmake --version       #查看cmake版本
wget https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz      #获取源代码
tar zxvf cmake-3.9.2.tar.gz     #解压
cd cmake-3.9.2
./configure
sudo make
sudo make install
source ~/.bashrc
#最后运行cmake --version,出现cmake version 3.9.2则升级成功

安装ros 包realsense

注意: 安装的包是realsense2,一开始装了realsense, roslaunch realsense_camera sr300_nodelet_rgbd.launch 后出现了下面的错误,应该是不支持
ros realsense报错:Error calling rs_wait_for_frames (device : )
Timeout waiting for frames.

ubuntu16安装librealsense 以及在ros上使用 [深度相机sr300]_第3张图片
这是github上的安装说明

https://github.com/intel-ros/realsense/#installation-instruct

按照下面安装就可以了

 cd ~/catkin_ws/src
 git clone https://github.com/intel-ros/realsense.git
 cd ..
 catkin_make
 rospack profile

(这里是我下载好的包,https://download.csdn.net/download/eye998/11136280)
安装完之后

roscore

新终端启动一个rs_camera节点,如果报错,拔下相机再重新插上

roslaunch realsense2_camera rs_camera.launch 

新终端再打开rviz可视化

rviz

点击 add 按钮,选择by topic ,选择相应的话题下的image就可以显示图像了,成功,撒花^ - ^

ubuntu16安装librealsense 以及在ros上使用 [深度相机sr300]_第4张图片 ubuntu16安装librealsense 以及在ros上使用 [深度相机sr300]_第5张图片
ubuntu16安装librealsense 以及在ros上使用 [深度相机sr300]_第6张图片
ubuntu16安装librealsense 以及在ros上使用 [深度相机sr300]_第7张图片

你可能感兴趣的:(学习笔记)