realsense-ros环境配置

项目场景:

相机型号RealsenseD435i
环境:ubuntu1604,内核4.15.0-126-generic (uname -r可查看内核)


参考链接:
https://github.com/IntelRealSense/realsense-ros
https://github.com/IntelRealSense/librealsense/blob/master/doc/installation.md
https://blog.csdn.net/ahelloyou/article/details/108406473

一、librealsense安装:

整个过程请不要插相机

1. 安装方式一:正经方法(成功)

用apt装:

sudo apt-get install ros-kinetic-librealsense2

装完这个就可以在代码里用realsense的SDK了,使用方法及debug见另一篇博客
但是realsense-viewer没得用,参考下面的链接进行安装
{

https://blog.csdn.net/ahelloyou/article/details/108406473
https://blog.csdn.net/qq_44465763/article/details/108618749

添加RealSense的二进制仓库

echo 'deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial main' | sudo tee /etc/apt/sources.list.d/realsense-public.list

添加公钥

sudo apt-key adv --keyserver keys.gnupg.net --recv-key 6F3EFCDE

更新软件列表

sudo apt-get update

安装相机驱动、udev规则、运行库等依赖。

sudo apt-get install librealsense2-dkms
sudo apt-get install librealsense2-utils

这一步安装完成过后可以运行realsense-viewer打开相机

验证一下内核是否更新

modinfo uvcvideo | grep "version:"

如果结果出现realsense就表明OK。
}
--------------------------------分割线------------------------------------------------

2. 安装方式二:源码编译(失败)

https://github.com/IntelRealSense/realsense-ros
https://github.com/IntelRealSense/librealsense/blob/master/doc/installation.md

2.1 过程1 - 第一种,没成功:

1)更新系统

sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

2)源码下载

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

3)安装依赖

sudo apt-get install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev

4)运行Intel Realsense权限脚本

##在下载好的librealsense目录下
./scripts/setup_udev_rules.sh

5)构建内核模块

##在下载好的librealsense目录下
./scripts/patch-realsense-ubuntu-lts.sh

记录: 卡在这一步无法进行;提示fatal: You need to specify a tag name.,如下;正常的信息见2.2。可知这里的tag是与内核源码(kernel) 相关的

Package required libusb-1.0-0-dev: - found
Package required libssl-dev: - found
Create patches workspace in ubuntu-xenial-master folder

Fetching Ubuntu LTS tag 【这里少了内核版本】 to the local kernel sources folder
fatal: You need to specify a tag name

针对这个问题,我的憨批操作记录:
{
由于./scripts/patch-realsense-ubuntu-lts.sh无法确定系统对应的内核版本及其tag,那就决定自己改:**1、**上git下载内核速度太慢了,直接参考链接,下载源码。**2、**然后github上找到内核源码的Mirror,clone下来(源码放在librealsense/ubuntu-xenial-hwe/目录下); 创建新tag(git tag Ubuntu-hwe-4.15.0-126.129_16.04.1),切换到新tag(git checkout Ubuntu-hwe-4.15.0-126.129_16.04.1); 将第1步下载的内核源码解压覆盖clone下来的源码;git add . git commit -m "abaaba" git push origin Ubuntu-hwe-4.15.0-126.129_16.04.1。**3、**将文件/scripts/patch-realsense-ubuntu-lts.sh打开,里面确定kernel_git_tag的一行给他直接赋值我们想要的tag:

原:kernel_git_tag=$(git ls-remote --tags origin | grep "${kernel_full_num}\." | grep '[^^{}]$' | tail -n 1 | awk -F/ '{print $NF}')
改:kernel_git_tag="Ubuntu-hwe-4.15.0-126.129_16.04.1"

然后再运行./scripts/patch-realsense-ubuntu-lts.sh,这时候这个文件可以完美执行完成啦
但是系统崩了…usb口彻底不能用,鼠标插上都没反应了,电脑关机也关不上了…
      Alienware——卒。。阿巴阿巴
}

6)编译安装

##在下载好的librealsense目录下
mkdir build && cd build
cmake ../ -DBUILD_EXAMPLES=true
sudo make uninstall && make clean && make && sudo make install

PS:如果想要删除librealsense,则运行:sudo make uninstall && make clean

7)测试
  完成后,插上Realsense,执行下面代码,无失败信息则安装驱动成功

sudo dmesg | tail -n 50

8)运行例程测试
进入librealsense/build/examples/capture文件夹,执行

./rs-capture

看到彩图和深度图即安装成功

2.2 过程2 - 第二种,换了台电脑,中途放弃:

1) 下载source

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

2) 安装依赖项

sudo apt-get install libudev-dev 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

3) Install Intel Realsense permission scripts located in librealsense source directory:

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

4) 这边需要注意把realsense拔下来
Build and apply patched kernel modules for:
根据不同的ubuntu版本安装:对于Ubuntu 14/16/18 LTS

./scripts/patch-realsense-ubuntu-lts.sh

正确的话会显示如下:

Package required libusb-1.0-0-dev:  - found
Package required libssl-dev:  - found
Create patches workspace in ubuntu-xenial-hwe folder

Fetching Ubuntu LTS tag Ubuntu-hwe-4.15.0-126.129_16.04.1   to the local kernel sources folder
remote: Counting objects: 5929982, done.
remote: Compressing objects: 100% (867960/867960), done.
接收对象中:   0% (8836/5929982), 6.19 MiB | 46.00 KiB/s 

这一步下载内核源码特别特别慢,其实是从https://kernel.ubuntu.com/git/ubuntu/ubuntu-xenial.git/下载内核源码,然后确定你的系统对应的内核版本并选择对应的tag(例如我这里的tag就是:Ubuntu-hwe-4.15.0-126.129_16.04.1)

如果./scripts/patch-realsense-ubuntu-lts.sh运行成功,插入realsense然后运行命令sudo dmesg | tail -n 50,应该能看到无报错的信息 (注:下面的成功的图片都不是这里成功的,只是放这里作参考)
命令执行结果

或者可以参考这个链接https://github.com/IntelRealSense/librealsense/issues/1300,使用命令dmesg -wT,会实时打印日志,然后拔拔插插相机,会看到新的日志出现。没错的话应该如下图所示。
在这里插入图片描述
5) 后面的不重要,跟2.1中的6)7)8)步一样的


二、realsense-ros编译及使用

1.安装方式:源码编译

这是个ros包,下载源码,放在工作空间的src里,编译。

2.过程

下载源码编译

git clone https://github.com/IntelRealSense/realsense-ros.git

catkin_make编译工作空间就完事,如果报错,缺啥装啥


或者直接apt装

sudo apt-get install ros-kinetic-realsense2-*

3.使用

roslaunch realsense2_camera rs_camera.launch

三、注意事项:

注意 安装的librealsense版本(例如v2.40.0),有时运行roslaunch realsense2_camera rs_camera.launch 会报librealsense v2.××.× 找不到的问题。此时可以重新编译realsense-ros或者删干净重装librealsense
注意 不要重复安装(librealsense/build/中进行了make && make install,又用apt安装),尤其是重复安装了不同的版本,后面使用中会出问题。尝试一种方法不成功后记得删干净在进行另一种方法。使用中真出现多个版本冲突问题,删掉其中一个就行:

sudo apt-get remove ros-kinetic-librealsense2

cd librealsense/build
sudo make uninstall && make clean
  • 4
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值