您的位置:首页 > 其它

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

2019-04-22 17:08 2711 查看

记录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也可以查看相机的图像

使用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 <librealsense2/rs.hpp>
,就可以调用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.

这是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就可以显示图像了,成功,撒花^ - ^

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: