ubuntu18.04安装IntelRealsense D435的SDK及相机标定记录

2023-05-16

写在前面的话

早上去实验室临时被塞的活,说让标一下D435这个相机,那就做呗!

相机认识

Intel RealSense深度摄像头: D435,设备采用USB供电形式,usb3.0的口哦哦!! 并且搭载D400系列深度模块,具备完整光学深度解决方案。RealSense D435提供全局快门感应器和更大的镜头,以获得比便宜的D415相机更好的低光照性能。D435还具有更强大的RealSense模块D430。
摄像机的捕捉最远距离可以达到10米,而且新款在户外阳光下也可以使用,均支持输出1280x720分辨率的深度画面,更普通的视频传输方面可以达到90fps。
手中的实物图:
在这里插入图片描述
D435相机正面有四个圆孔,从左向右,第一和第三个是红外传感器(IR Stereo Cameral);第二个是红外激光发射器(IR Projector),第四个是彩色相机(色彩传感器)。

安装SDK2.0

官网提供了两种安装方式,一种是从源上添加再安装,一种是从源码编译安装,两种方式都可,我采用源码编译安装,步骤如下:

  1. 从官网:https://github.com/IntelRealSense/librealsense/tree/master 下载安装包,
git clone git@github.com:IntelRealSense/librealsense.git

这里会有一个坑,你下载的版本要和你的应用被编译的版本对应起来,不然在最后一步就会出现这样的错误

[ERROR] [1573455168.366623402]: Failed to load nodelet [/camera/realsense2_camera] of type [realsense2_camera/RealSenseNodeFactory] even after refreshing the cache: API version mismatch: librealsense.so was compiled with API version 2.30.0 but the application was compiled with 2.28.0! Make sure correct version of the library is installed (make install)
[ERROR] [1573455168.366670881]: The error before refreshing the cache was: API version mismatch: librealsense.so was compiled with API version 2.30.0 but the application was compiled with 2.28.0! Make sure correct version of the library is installed (make install)

所以这个记录写之前,已经踩过一遍坑了,哼哼哼!希望有缘的你能在第一遍的时候就看见。

  1. 更新软件源,获取最新的稳定的内核,可以用uname -r查看内核,满足4.8及以上就行,有时候会在这里出错,如果内核版本不够高的话。
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
  1. 安装一些编译所需的依赖,不同版本系统安装依赖不同,以ubuntu18.04为例需要安装的是:
sudo apt-get install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev
sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev
  1. 进入到librealsense文件夹目录下,运行Intel Realsense 的许可脚本
./scripts/setup_udev_rules.sh

在这里插入图片描述

  1. 下载并编译内核模块
./scripts/patch-realsense-ubuntu-lts.sh

另外,执行sudo dmesg | tail -n 50可以看到新的uvcvideo驱动已经登记了。

  1. 编译SDK2.0
mkdir build
cd build
cmake ../ -DBUILD_EXAMPLES=true - Builds librealsense along with the demos and tutorials
make
sudo make install

上述cmake ..这一步骤所带的参数表示也编译demo和tutorials

  1. 测试SDK2.0是否成功安装,使用usb3.0接口连上相机,进入到build/examples/capture文件夹中,执行
./rs-capture

出现画面:
在这里插入图片描述这样就表示成功啦,有时候第一次插上相机,没有显示画面,拔了重新再插一次就能出现画面了。

安装ROS Wrapper

官网参考链接: https://github.com/IntelRealSense/realsense-ros
在上一步骤顺利完成之后,如果你需要ROS版本的开发包,那就接着往下做吧,不能只单独安装ROS Wrapper,要先安装librealsense才行哈!

  1. 创建工作空间
mkdir -p catkin_ws/src
cd catkin_ws/src
  1. 下载realsense-ros安装包和ddynamic_reconfigure包放在src文件夹下,这个realsense-ros安装包要和前面的librealsense包对应哦,不然还是会出错的。。。
git clone https://github.com/IntelRealSense/realsense-ros.git
git clone https://github.com/pal-robotics/ddynamic_reconfigure.git
  1. 编译
catkin_make
  1. 测试安装成功与否,执行如下命令:
roslaunch realsense2_camera rs_camera.launch

再开一个终端,利用rostopic list即可查看到当前发布的topic有哪些。
在这里插入图片描述

标定

标定的内容:相机的内参,包括焦距、光心位置、畸变系数。
标定的方法列举如下两种:

  1. realsense相机出厂时标定过参数,可以通过以下方法查看:
  • 打开相机
roslaunch realsense2_camera rs_camera.launch
  • 查看相应相机的信息
rostopic echo /camera/color/camera_info

获取结果如下:
在这里插入图片描述
2. 利用了ROS的工具包来进行标定

  • 安装标定工具包
rosdep install camera_calibration
  • 启动相机,再打开一个终端并查看topic
roslaunch realsense2_camera rs_camera.launch
rostopic list

发现图像和相机的topic名称为:

/camera/color/camera_info
/camera/color/image_raw

这个名称要用在下面的命令行里。

  • 打印棋盘格 链接为:http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration?action=AttachFile&do=view&target=check-108.pdf

要理解其中的8×6指的是横纵的角点哦!

  • 执行命令,开始标定
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.108 image:=/camera/color/image_raw camera:=/camera/color

如果你出现这样的错误:

('Waiting for service', '/camera/color/set_camera_info', '...')
Service not found

不要慌,把刚才那条命令修改为:

rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.108 image:=/camera/color/image_raw camera:=/camera/color --no-service-check

就可以开始标定啦,当执行上述命令,会出现一个窗口, 在标定过程中,各个方向不断移动棋盘格,使得calibration按钮变绿,再点击一下此按钮,就可以看到终端输出的结果啦,我的结果如下:

[image]

width
640

height
480

[narrow_stereo]

camera matrix
749.346342 0.000000 280.535508
0.000000 747.449080 216.543370
0.000000 0.000000 1.000000

distortion
0.186227 -0.345482 0.010282 -0.019478 0.000000

rectification
1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000

projection
767.705444 0.000000 271.534130 0.000000
0.000000 777.145020 219.785311 0.000000
0.000000 0.000000 1.000000 0.000000

这个标的还是和厂家给的数据有一定差距,可以思考一波为什么???

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

ubuntu18.04安装IntelRealsense D435的SDK及相机标定记录 的相关文章

  • dubbo+springMVC消费端报错classNotFound

    首先 xff0c 说明一下我的错误原因 xff1a 是因为provider端打jar包方式的错误 导致的 xff0c 如果你已经将这种错误可能排除了 xff0c 就不用浪费时间看我啰嗦了 maven基础比较弱 xff0c 之后系统学一下吧
  • kubernetes HPA-超详细中文官方文档

    HPA全称是Horizontal Pod Autoscaler xff0c 翻译成中文是POD水平自动伸缩 xff0c 以下都会用HPA代替Horizontal Pod Autoscaler xff0c HPA可以基于CPU利用率对repl
  • openstack安装和使用

    前言 本篇文章会介绍openstack的安装 openstack各组件的配置和功能 还会演示openstack云主机的创建流程 xff0c 整篇文章花费一天时间完成 xff0c 万字长文 xff0c 需要的可以关注 xff0c 相互学习 x
  • IMU预积分及残差雅克比计算

    前段时间推了泡泡机器人邱笑晨博士的IMU预积分公式 收获很大 再看到VIORB的时候 大都用的这一套公式 后再看VINS的时候 VINS用的是连续时间的预积分 看一些大佬的博客 说代码里写的是离散时间的 这里将所看到的做一下整理 要求的是
  • PyUIC报错Error: one input ui-file must be specified

    利用PyUIC将 ui转为 py报错 xff1a Error one input ui file must be specified 解决办法 xff1a 找到file gt setting gt tools gt Extenal Tool
  • 提取指定字符串后面的值----Python正则表达式

    例如 xff1a 从log文件中解析出shippingSn的值 span class token keyword import span re str1 span class token operator 61 span span clas
  • Python3离线安装requests模块

    requests模块的依赖包检查 在可以上网且已安装python的机器上检查requests模块需要哪些依赖包 xff0c 要是没有依赖包 xff0c 直接下载一个直接安装最好 在CMD命令窗口中输入 pip show requests 发
  • 树莓派zero w 安装python3.6

    在树莓派Raspbian系统上安装 conda 环境 但是 xff0c 在安装使用了一段时间后 xff0c 发现使用 Miniconda 的 armv7l 版本 xff0c python 只有 3 4 的版本 xff0c 而且比如安装 ip
  • 树莓派编译安装opencv出错:fatal error:boostdesc_bgm.i: No such file or directory

    opencv contrib modules xfeatures2d src boostdesc cpp 673 20 fatal error boostdesc bgm i No such file or directory 解决方式 x
  • 【PTC Thingworx(一)】申请30天免费试用

    1 进入Thingworx网站https developer thingworx com 2 选择Free Trials 3 完善信息申请30天试用 4 申请成功界面 5 点击Start Server开始服务 xff0c 并点击Launch
  • 树莓派Buster系统快速安装opencv(二)

    完成上一篇树莓派Buster系统编译安装opencv 一 xff09 中的配置wifi 换源 修改树莓默认Python版本 安装工具包等内容后 xff0c 开始本教程内容 1 下载opencv安装包 从https www piwheels
  • monkeyDev使用及初次使用问题的解决方法

    安装 1 下载monkeyDev git clone https github com AloneMonkey MonkeyDev git 2 进入bin文件夹执行安装命令 cd MonkeyDev bin sudo md install
  • node-red mysql节点报错“Pool is Closed”

    进入nodejs安装目录 执行以下命令 npm install mysql 重启node red pm2 restart all 问题解决
  • Windows搭建TensorFlow GPU环境

    一 CUDA安装 CUDA xff08 Compute Unified Device Architecture xff09 xff0c 是显卡厂商NVIDIA推出的运算平台 CUDA 是一种由NVIDIA推出的通用并行计算架构 xff0c
  • FTP下载报错:550 Failed to open file

    Filezilla报错 xff1a 550 Failed to open file xff0c 如下图 原因 xff1a 上传文件权限问题 解决办法 xff1a 修改vsftpd conf的虚拟用户权限配置 cd span class to
  • kubeadm flannel 网络问题

    环境 xff1a 节点 1 xff1a 192 168 60 100 节点 2 xff1a 192 168 60 101 节点 3 xff1a 192 168 60 102 虚拟机自建了一套kubeadm集群 xff0c 刚开始好好的 xf
  • Win10下安装opendr

    踩坑过程 xff1a 正常pip install opendr 报错 xff1a 下载Cython失败 解决 xff1a 去PYPI上找轮子 xff0c 离线安装Cython 问题 xff1a 这次库都下载好了 xff0c 但是安装时报错
  • Ubuntu18.04安装OpenCV4.2.0(不包含Python)

    之前写的项目安装教程节选Opencv部分 当时用的英文 有时间我再转中文 Install dependant envs span class token function sudo span span class token functio
  • Ubuntu18.04设置开机自启脚本

    网上参考Ubuntu18 04 开机自启动脚本之后并没成功 xff0c 各种搜索后发现博文内容都一样 xff0c 说什么亲测可行 xff0c 但根本没解决下面这个问题 span class token function sudo span
  • Linux 网卡VLAN、BOND配置

    此篇是在转载博文上做修订 原文内容有些地方不妥当 Redhat Linux的网络配置 xff0c 基本上是通过修改几个配置文件来实现的 xff0c 虽然也可以用ifconfig来设置IP xff0c 用route来配置默认网关 xff0c

随机推荐

  • WinSCP之Windows与Windows之间传输文件

    WinSCP之Windows与Windows之间传输文件 方法 xff1a WinSCP 43 OpenSSH xff08 1 xff09 在需要远程访问的windows电脑上安装OpenSSH的server xff1a 具体步骤如下 xf
  • C++类和对象——继承

    目录 1 继承的基本语法 2 继承方式 3 继承中的对象模型 4 继承中构造和析构顺序 5 继承同名成员处理方式 6 继承同名静态成员处理方式 7 多继承语法 8 菱形继承 继承是面向对象三大特性之一 有些类与类之间存在特殊的关系 xff0
  • Guava-Collections2源码解析

    构造器 private Collections2 私有构造器 xff0c 也没有静态构造器 xff0c 所以可以很明确它是一个纯工具类了 功能方法 filter过滤方法 传入一个带过滤的容器 xff0c 和一个实现过滤规则的函数类 xff0
  • QGC 汉化

    效果如下 一 xff0c pro文件修改 不添加 lupdate xff0c qml文件中的 qstr 无法识别 二 xff0c 生成 ts 文件 三 xff0c 利用 Qt 自带的 linguist软件 加载ts文件 翻译后 生成 qm
  • QGC android版 ubuntu编译

    一 xff0c 环境搭建 参照 xff1a https blog csdn net foxbryant article details 51813685 1 软件安装 Ubuntu 版本 xff1a 14 04 Qt xff1a 5 7 1
  • QGC 增加禁飞区显示功能

    效果 xff1a 本功能客只实现地面站上禁飞区静态展示 xff0c 具体限制需飞控端实现 步骤 xff1a 下载禁飞区数据 处理禁飞区数据 禁飞区数据 导入sqlite数据库 初始化读取禁飞区数据 绘制 打包 1 xff0c 下载禁飞区数据
  • Tx2 通过内核编译来获取ttyUSB* 以及ttyACM*的设备名

    最近由于学校实验室准备参加ICRA的DJI AI Challenge xff0c 所以我在使用TX2跑ROS 我用的是ubuntu 16 04 ros kinetic版本 然后遇到了一些问题 再插上通信串口之后usb并没有反应 通过lsus
  • Tx2上运行rplidar A2

    首先 xff0c 有一个比较坑的地方 xff0c Tx2默认情况下是没有rplidar A2的这个驱动的 xff0c 需要我们自己进行内核编译安装 具体安装方法可以看我的Tx2 通过内核编译来获取ttyUSB 以及ttyACM 的设备名 的
  • TX2安装caffe(从头开始,最全教程)

    xff08 大二时记录在有道云笔记的记录 xff0c 现在开始搬运 xff09 准备工作 xff1a 1 刷机 第一次使用TX2 xff0c 那是需要刷机的 由于TX2自带的ubuntu系统比较老 xff0c 不适合我们接下来的工作 xff
  • Ubuntu下C/C++网络编程基本:socket实现tcp的例子

    1 说明 待编辑 2 代码 test server h ifndef INCLUDE TEST SERVER H define INCLUDE TEST SERVER H include lt unistd h gt include lt
  • mavros常用消息类型表

    mavros订阅消息 xff1a global position 订阅GPS数据 消息名称 xff1a mavros global position global 类型名称 xff1a sensor msgs NavSatFix h 类型所
  • 记一次美团校招内推笔试经历

    2019年4月23日星期二晚上七点 这天刚好项目上生产我负责留守做远程技术支持 留下的还有个重要的原因就是今晚我有一个美团的笔试 七点笔试准时开始 信心满满打开网页地址 美团用的是赛码网来做的笔试题库 xff0c 再次之前收到了邀请码输入进
  • git 推送出现 "fatal: The remote end hung up unexpectedly" 解决方案

    在使用git更新或提交 项目时候出现 34 fatal The remote end hung up unexpectedly 34 原因是推送的文件太大 那就简单了 xff0c 要么是缓存不够 xff0c 要么是网络不行 xff0c 要么
  • 双色球规则及c++实现代码

    双色球规则 xff1a 第一章 总 则 第一条 本规则依据财政部 彩票发行与销售管理暂行规定 和 中国福利彩票 xff08 电脑型 xff09 联合发行与销售管理暂行办法 xff08 以下简称 管理办法 xff09 制定 第二条 中国福利彩
  • 卡尔曼滤波以及Matlab实现_参考书籍_核心剖析_经验分享_EKF(1)

    版权声明 xff1a 本文为博主原创文章 xff0c 未经博主允许不得转载 https mp csdn net mdeditor 1 前言 首先 xff0c 关于卡尔曼滤波理论的定义 种类 算法实现过程步骤以及相关例子方面 xff0c 博主
  • 用JAVA实现MapReduce

    这里的MapReduce实现的是分词计数 pom xml文件 版本号需要跟你自己安装的hadoop版本号一样 hadoop commonhadoop hdfshadoop authhadoop clienthadoop mapreduce
  • 高通导航器软件开发包使用指南(10)

    高通导航器软件开发包使用指南 xff08 10 xff09 8 9位置控制参数8 10状态 机器 进程8 11高度 估算器 图8 12最大加速度偏差8 13电压监控图8 14 att control params xff08 附件控制参数
  • VTK 多平面重建(MPR)及三维切片显示

    在此之前翻阅很多资料 爬过很多的坑 花费不少时间 xff0c 终于还是完成了 xff01 虽然实现地很简单 xff0c 但是大体功能是实现了 后面需要完善功能的话 xff0c 可以用qt与vtk结合开发 MPR MPR multi plan
  • 【实战】从零搭建SSO单点登录服务器 - CAS认证流程

    前言 因系统逐渐增多 xff0c 各个业务系统间无法共享用户状态 xff0c 每个系统都需要用户登录 这对于用户来说很不友好 xff0c 于是需要搭建一个SSO单点登录服务器 xff0c 来做统一的登录 注销 写这个系列的文章有两个目的 x
  • ubuntu18.04安装IntelRealsense D435的SDK及相机标定记录

    写在前面的话 早上去实验室临时被塞的活 xff0c 说让标一下D435这个相机 xff0c 那就做呗 xff01 相机认识 Intel RealSense深度摄像头 D435 xff0c 设备采用USB供电形式 xff0c usb3 0的口