使用相机难免少不了标定,ros下有标定kinect深度相机和彩色相机的方法,就在ros下趟一遍坑,特此记录:

1. 安装libfreenect2
libfreenect2为Kinect2提供了一个开源驱动程序,这个驱动并不支持xbox one,.同事也提供了深度图像传输以及RGB图像的联合配准.
安装步骤(我选择安装在home目录下):
- git clone https://github.com/OpenKinect/libfreenect2.git - cd libfreenect2
- cd depends; - ./download_debs_trusty.sh
还需安装一些构建工具:
- sudo apt-get install build-essential cmake pkg-config
libusb提供了usb设备的放问权限:
- sudo dpkg -i debs/libusb*deb
安装TurboJPEG
-sudo apt-get install libturbojpeg libjpeg-turbo8-dev
安装OpenGL
-sudo dpkg -i debs/libglfw3*deb -sudo apt-get install -f -sudo apt-get
install libgl1-mesa-dri-lts-vivid
在libfreenect2中新建build的文件夹
cd .. mkdir build && cd build
编译,链接
cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/freenect2 make make install
可能需要个步骤
sudo cp ~/libfreenect2/platform/linux/udev/90-kinect2.rules /etc/udev/rules.d
重新插拔kinect2后运行
./libfreenect2/build/bin/Protonect 在终端窗口可显示四个图像.
2.安装 iai_kinect2
iai_kinect2是一个函数库和工具库,为kinect2 提供了ros接口.
下面开始安装iai_kinect2
- cd ~/<your_catkin_ws>/src/ - git clone
https://github.com/code-iai/iai_kinect2.git - cd iai_kinect2 - rosdep install
-r --from-paths . - cd ~/<your_catkin_ws> - catkin_make
-DCMAKE_BUILD_TYPE="Release"
接下来使用kinect2_bridge启动kinect2进行操作:
- roslaunch kinect2_bridge kinect2_bridge.launch - rosrun kinect2_viewer
kinect2_viewer
3. 使用iai_kinect2标定kinect2相机
一般在使用前
,我们都会矫正所谓的计算相机的内外参数,一般使用的方法都是张正友标定法的理论,理论知识就不在赘述,其实当时看都是能看懂的一旦让自己完全从头推理就懵逼了.
首先呢我们的矫正步骤就是,我们得有标定模板,这如果你之前下载了iai_kinect2在kinect2_calibration文件下是有标定模板的,你可以随意打印一个模板等着后期的标定使用.对于kienct
2的标定并不需要说把红外发射器给遮住 然后使用红外LED去矫正的,这是针对kinect1的,之前我矫正过kinect1
确实是需要把红外发射装置给遮住,然后才能矫正深度信息.
标定过程如下:
mkdir ~/Kinect_cal_data cd Kinect_cal_data roscore rosrun kinect2_bridge
kinect2_bridge _fps_limit:=2 #这个数字可以适当增大
设置帧数完成后继续:
标定彩色相机 rosrun kinect2_calibration kinect2_calibration chess5X7X0.03 record
color rosrun kinect2_calibration kinect2_calibration chess5X7X0.03 calibrate
color 标定IR相机 rosrun kinect2_calibration kinect2_calibration chess5X7X0.03
record ir rosrun kinect2_calibration kinect2_calibration chess5X7X0.03
calibrate ir 标定二者转化矩阵和深度测量 rosrun kinect2_calibration kinect2_calibration
chess5X7X0.03 record sync rosrun kinect2_calibration kinect2_calibration
chess5X7X0.03 calibrate sync rosrun kinect2_calibration kinect2_calibration
chess5X7X0.03 calibrate depth
前面打开kinect2_bridge时候出现过一个序列号0123494562,下面一这个序列号为文件名在
kinect2_bridge/data下面建立一个文件夹用来存放标定数据:
roscd kinect2_bridge/data mkdir 0123494562 将标定文件靠过来放到此文件夹下重新运行: rosrun
kinect2_viewer kinect2_viewer 检验标定效果.
标定了两天,效果有点差强人意,唉,你还要我怎样,我怎样~~~~~~~~

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信