写在前面的话
早上去实验室临时被塞的活,说让标一下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
官网提供了两种安装方式,一种是从源上添加再安装,一种是从源码编译安装,两种方式都可,我采用源码编译安装,步骤如下:
- 从官网: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)
所以这个记录写之前,已经踩过一遍坑了,哼哼哼!希望有缘的你能在第一遍的时候就看见。
- 更新软件源,获取最新的稳定的内核,可以用
uname -r
查看内核,满足4.8及以上就行,有时候会在这里出错,如果内核版本不够高的话。
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
- 安装一些编译所需的依赖,不同版本系统安装依赖不同,以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
- 进入到librealsense文件夹目录下,运行Intel Realsense 的许可脚本
./scripts/setup_udev_rules.sh
- 下载并编译内核模块
./scripts/patch-realsense-ubuntu-lts.sh
另外,执行sudo dmesg | tail -n 50
可以看到新的uvcvideo驱动已经登记了。
- 编译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
- 测试SDK2.0是否成功安装,使用usb3.0接口连上相机,进入到build/examples/capture文件夹中,执行
./rs-capture
出现画面:
这样就表示成功啦,有时候第一次插上相机,没有显示画面,拔了重新再插一次就能出现画面了。
安装ROS Wrapper
官网参考链接: https://github.com/IntelRealSense/realsense-ros
在上一步骤顺利完成之后,如果你需要ROS版本的开发包,那就接着往下做吧,不能只单独安装ROS Wrapper,要先安装librealsense才行哈!
- 创建工作空间
mkdir -p catkin_ws/src
cd catkin_ws/src
- 下载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
- 编译
catkin_make
- 测试安装成功与否,执行如下命令:
roslaunch realsense2_camera rs_camera.launch
再开一个终端,利用rostopic list
即可查看到当前发布的topic有哪些。
标定
标定的内容:相机的内参,包括焦距、光心位置、畸变系数。
标定的方法列举如下两种:
- realsense相机出厂时标定过参数,可以通过以下方法查看:
roslaunch realsense2_camera rs_camera.launch
rostopic echo /camera/color/camera_info
获取结果如下:
2. 利用了ROS的工具包来进行标定
rosdep install camera_calibration
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(使用前将#替换为@)