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

2023-05-16

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

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

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

  • Layui上传系列之二(多文件分块上传优化实现)

    接下来 xff0c 就要实现layui的uploader分块上传了 xff0c 在官网上没有提到分块上传 xff0c 倒是有一个多文件选择后 xff0c 显示文件列表的例子 目录 现状分析 我的做法 功能优化 上代码了 现状分析 对于我们能

随机推荐

  • tigervnc+noVNC远程使用RViz

    写在前面 遇到了远程桌面访问ubuntu系统并使用RViz的需要 xff0c 试了常用的vnc4server xff0c 在没有外接显示器的情况下 xff0c vnc4server需要虚拟一个显示器出来 xff0c 虚拟显示器可以使用Xvf
  • VINS-Mono融合轮式编码器和GPS(三):后端优化

    VINS Mono融合轮式编码器和GPS xff08 三 xff09 xff1a 后端优化 开篇介绍理论目标函数IMU约束1 残差2 优化变量3 Jacobian4 协方差 实践配合代码查看 开篇 项目地址VINS GPS Wheel xf
  • ROS-Gazebo (一):关于Gazebo无法加载模型,长时间卡在开始界面的问题解决方法

    在使用ROS Gazebo的过程中首先遇到的问题就是长时间加载不出模型 来 通常的解决方法是 从官方模型库下载号所有的基本模型 然后解压到 gazebo models文件夹里面就可以了 具体的下载地址和详细的操作方式可以 百度或者谷歌 34
  • 用SST89E516RD自制51单片机仿真器

    原文网址 xff1a http www1 eccn com tech06 te074653 asp 用SST89E516RD自制51单片机仿真器 文 xff0f 吴汉清 单片机实验和开发中最重要的一个环节就是程序的调试 xff0c 在业余条
  • Latex (一) 安装和环境变量的设置

    一 安装 Tex有很多不同的版本 xff0c 很多人喜欢用ctex xff0c 但是最推荐是官方版本Texlive 搜了很多资料 xff0c 一般windows的话 xff0c 可以将Tex live 43 Tex studio作为标配 x
  • KITTI 数据集 参数—— tracking devkit中的rotation_y和alpha角

    根据devkit中的readme txt和cs overview pdf的描述以及根据通过对数据集做的小实验总结的 xff0c 如果过有错误的地方欢迎指正 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • 拯救者Y7000P 安装Ubuntu16.04问题解决

    先列一下问题 xff1a 1 wifi开不来了 xff1b 2 触摸板没法用 3 休眠后打不开 目前1 3 xff0c 解决了 xff0c 但是2依然没法解决 xff0c 不过问题不大 xff0c 大不了用鼠标 首先 xff0c 问题的原因
  • VSCode python调试库代码以及添加相关扩展支持opencv

    调试python 代码的时候可以再launch json 文件中添加 justMycode 34 false 来调试安装的包的代码 由于opencv 底层调用的C xff0c 所以如果要在代码提示中正确提示可能要安装额外插件 xff1a 比
  • vscode python包的引用一些问题

    个人使用vscode碰到的一些python包的引用问题以及尝试解决的一些办法 xff0c 可能只适用我自己的情况 项目目录大概如下 xff1a lib是根目录下的一个文件夹 xff0c 里面每个文件夹都是一个python 包 xff0c 都
  • MATLAB 矩阵的化简rref()函数

    在用MATLAB求解线性方程组的时候 xff0c 可以使用 rref 函数对矩阵进行化简 xff0c 从而很方便直观的得到原方程的解 xff0c 举一个简单的例子 xff1a 解下列线性方程组 则用MATLAB的rref函数解上述方程组的代
  • MATLAB求符号函数的函数值的方法

    在MATLAB中定义函数的方法有许多种 xff0c 比较常用的一种是定义符号变量 x 和 y 举一个简单的例子 xff1a 对函数 y 61 x 2 用上述方法的MATLAB语言如下 xff1a syms x y y 61 x 2 要想画出
  • C++寻找数组最大值和最小值

    寻找数组中的最大最小值 include lt iostream gt using namespace std include lt algorithm gt int main int n cin gt gt n int p 61 new i
  • Excel如何同时查找多个数据

    在使用多个excel表的时候 xff0c 有时需要在一个表中查找另一个表中的某些信息 xff0c 怎样能一步到位 xff0c 将所有要查找的信息一次找出来而不是一个个的Ctrl 43 F xff1f 这是前几天帮辅导员老师统计新生的数据时遇
  • python tkinter 全部组件(widget)及事件类型(event)一览

    对于一个简单的GUI程序设计来说 xff0c 我觉得无非就是三个要素 xff0c widget xff08 部件 xff09 xff0c layout xff08 布局 xff09 xff0c event xff08 事件的响应 xff09
  • DS18B20 1-WIRE ROM搜索算法详解

    转自 xff1a http blog sina com cn s blog 57ad1bd20102uxxw html 1 WIRE 搜索算法详解 xff08 1 xff09 0 前言 美信公司 xff08 http www maximin
  • 关于python tkinter 多线程依然无响应问题

    今天解决了一个GUI程序的多线程问题 因为GUI程序在执行高IO操作的时候容易出现假死和无响应的状态 xff0c 所以需要用到多线程 但我的程序开了线程之后依然是无响应状态 几次尝试 xff0c 终于找到问题所在 1 首先 xff0c 我的
  • Ubuntu内核的查看、更新、卸载、取消及启用自动更新

    1 查看当前内核版本 xff1a uname r 2 升级内核 xff1a sudo apt get update sudo apt cache search linux image 查看可用内核 在选择合适的内核后 xff0c sudo
  • 孤立森林(Isolation Forest)

    背景 现有的异常检测方法主要是通过对正常样本的描述 xff0c 给出一个正常样本在特征空间中的区域 xff0c 对于不在这个区域中的样本 xff0c 视为异常 这些方法的主要缺点是 xff0c 异常检测器只会对正常样本的描述做优化 xff0
  • FreeRTOS三种数据结构区别(StreamBuffer,MessageBuffer,Queue)

    Queue队列是最基本的数据结构 xff0c 在FreeRTOS v10 0后提供了另外两种高级数据结构为Streambuffer和MessageBuffer xff0c 称为流式缓冲区和消息缓冲区 FreeRTOS 嵌入式系统开源 Fre
  • ubuntu16安装librealsense 以及在ros上使用 [深度相机sr300]

    记录ubuntu16安装librealsense 和ros包的过程 xff0c 还有一些遇到的问题 温馨提醒 如果按照下面步骤每一步完成 xff08 都没报错 xff09 xff0c 还是不能显示图像 xff0c 换个usb3 0口试试或者