realsense-ros环境配置

2023-05-16

项目场景:

相机型号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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

realsense-ros环境配置 的相关文章

随机推荐

  • Docker安装Ubuntu

    local footstep 64 ubuntu ifconfig docker0 flags 61 4163 lt UP BROADCAST RUNNING MULTICAST gt mtu 1500 inet 172 17 0 1 ne
  • MSCKF学习记录

    MSCKF相关资料 1 github参考实现 xff1a daniilidis group msckf mono https github com daniilidis group msckf mono 2 CSND参考博客 xff1a m
  • ARM linux 串口接收

    C语言read函数的使用以及串口初始化的调用 废话不多说 xff0c 直接上代码 xff0c 有疑问可以看我之前的文章 https blog csdn net m0 38053897 article details 108816643 ht
  • 设计模式--状态模式(C语言实现)

    原创 亚索老哥 embed linux share 模式动机 状态模式 状态机 是嵌入式开发中最重要 最核心的设计模式之一 xff0c 毫不夸张的说 xff0c 是否熟练掌握状态模式 xff0c 很大程度上直接决定了嵌入式工程师的代码掌控能
  • 张正友相机标定 及 一文讲透鱼眼相机畸变矫正,及目标检测项目应用

    参考链接 xff1a 相机标定 张正友标定法 一文讲透鱼眼相机畸变矫正 xff0c 及目标检测项目应用
  • select在ios中选项空白

    出现这个问题是因为粗心吧 解决了好久 最后发现是个笑话 lt select name 61 span class hljs string 34 34 span id 61 span class hljs string 34 34 span
  • RTOS中消息、信号量、互斥量、事件使用区别(类比理解)

    RTOS中消息 信号量 互斥量 事件使用区别 xff08 类比理解 xff09 注 xff1a 本文仅代表本人学习中的理解 xff0c 未必正确 xff0c 欢迎指正 xff01 1 消息 1 1 对FreeRTOS 就像往火车上装货卸货
  • PuTTY/Xshell连接远程服务器提示connection time out的解决方案

    刚注册一台云服务器时 xff0c 想使用PuTTY Xshell来在本地远程连接服务器 xff0c 发现会出现以下错误提示 xff1a Network error Connection time out 对于新注册的云服务器 xff0c 什
  • Ubuntu编译环境配置

    1 升级gcc sudo apt get update sudo apt get install software properties common sudo apt get install gcc 5 g 43 5 sudo apt g
  • 多传感器融合的四种经典结构

    人一生的成长过程中 xff0c 也不总是只有一种必然性 xff0c 很多时候 xff0c 人生需要选择 请选择有尊严的活着 xff0c 告别卑微 xff01 转一篇信息融合的结构概述 xff1a 多传感器信息融合的结构模型一般有四种基本形式
  • 认识Make、Makefile、CMake和CMakeLists

    一 Make 在 认识编译器和C C 43 43 编译 一文中介绍过 xff0c 一个 c cpp 文件从源文件到目标文件的过程叫做编译 xff0c 但是一个项目中不可能只存在一个文件 xff0c 这就涉及到多个文件的编译问题 xff0c
  • 卡尔曼滤波基础---MATLAB

    Karl Gauss xff08 1795年 xff09 行星轨道测量 最小二乘估计法 Norbert Wiener xff08 1942年 xff09 火力控制系统精确跟踪 Wiener Kolmogorov滤波 Rudolf Kalma
  • 位姿估计 -- PPF算法的OpenCV实现

    给出cpp代码 xff0c 复制粘贴改一下文件路径记得 1 pose cpp span class token comment span span class token comment Created by yaohua on 2020
  • 针对ROS配置VScode开发环境(catkin_make 或 catkin build)

    针对ROS配置VScode开发环境 xff08 catkin make 或 catkin build xff09 使用catkin make ubuntu 18的vscode配置ros开发环境 xff1a catkin make span
  • 电脑双系统即在windows系统与Linux系统中如何设置默认启动系统

    来源 xff08 https www bilibili com read cv5277001 xff09
  • Ubuntu添加/删除PPA源

    一 PPA介绍 PPA xff08 Personal Package Archives xff0c 个人软件包文档 xff09 xff0c 是Ubuntu Launchpad网站提供的一项源服务 xff0c 允许个人用户上传软件源代码 xf
  • 操作系统之进程概念及其组成

    一 进程 在多道程序环境下 xff0c 允许多个程序并发执行 xff0c 此时它们将失去封闭性 xff0c 并具有间断性及不可 再现性的特征 为此引入了进程 Prnccss 的概念 xff0c 以便更好地描述和控制程序的并发执行 xff0c
  • GTSAM中imu预积分及其因子图优化过程

    前言 使用IMU和llidar或者相机进行多传感器融合的slam方案中 xff0c 主要分为紧耦合和松耦合方案 目前 xff0c 主流的方案都是紧耦合的 而紧耦合方案中主要分为基于滤波 xff08 比如 xff0c ESKF xff09 和
  • Python 学习笔记 模块 & 目录遍历 & 包

    一 模块 xff1a 1 概述 xff1a 为了解决维护问题 xff0c 一般情况下 xff0c 在一个完整的项目中 xff0c 会将特定的功能分组 xff0c 分别放到不同的文件中 xff0c 在使用的过程中 xff0c 可以单独维护 x
  • realsense-ros环境配置

    项目场景 xff1a 相机型号RealsenseD435i 环境 xff1a ubuntu1604 xff0c 内核4 15 0 126 generic uname r可查看内核 参考链接 xff1a https github com In