ROS下安装使用kinect2

使用相机难免少不了标定,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
       检验标定效果.

标定了两天,效果有点差强人意,唉,你还要我怎样,我怎样~~~~~~~~

猜你喜欢

转载自blog.csdn.net/weixin_41038905/article/details/80907580