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

写在前面的话

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

相机认识

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

安装SDK2.0

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

  1. 从官网:https://github.com/IntelRealSense/librealsense/tree/master 下载安装包,
git clone [email protected]: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

出现画面:
ubuntu18.04安装IntelRealsense D435的SDK及相机标定记录_第2张图片这样就表示成功啦,有时候第一次插上相机,没有显示画面,拔了重新再插一次就能出现画面了。

安装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有哪些。
ubuntu18.04安装IntelRealsense D435的SDK及相机标定记录_第3张图片

标定

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

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

获取结果如下:
ubuntu18.04安装IntelRealsense D435的SDK及相机标定记录_第4张图片
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

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

你可能感兴趣的:(ubuntu18.04安装IntelRealsense D435的SDK及相机标定记录)