Advertisement

ROS实例学习之kinect驱动安装与rtabmap建图

阅读量:

基于kinect深度相机的rtabmap建图

  • SDK安装配置

    • 下载libfreenect2源码

    • 安装依赖

    • 编译构建

        • 问题记录
    • 设置udev规则

    • 测试

    • 驱动卸载

  • iai-kinect2源码安装与测试

    • 下载
    • 安装
    • 测试
  • rtapmap建图

    • 安装
    • 使用

SDK安装配置

下载libfreenect2源码

复制代码
    $ git clone git@github.com:OpenKinect/libfreenect2.git

安装依赖

复制代码
    $ cd libfreenect2
    #安装编译工具
    $ sudo apt-get install build-essential cmake pkg-config
    #安装linusb
    $ sudo apt-get install libusb-1.0-0-dev
    #安装turboJPEG
    $ sudo apt-get install libturbojpeg libjpeg-turbo8-dev
    #安装OPENNI2
    $ sudo apt-get install libglfw3-dev
    #安装OPENCL
    $ sudo apt-get install libopenni2-dev

编译构建

复制代码
    $ mkdir build && cd build
    # 自动生成makefile
    $ cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/ #(编译位置可以选择)\
    #(建议:新建~/workspace/libray放驱动,~/workspace/build放编译的东西)
    # 批量编译
    $ make
    # 将 make 生成的文件安装到系统的对应目录中
    $ sudo make install
问题记录
复制代码
    ubuntu@ubuntu:~/Desktop/libfree/libfreenect2/build$ cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/freenect2
    -- using tinythread as threading library
    -- Checking for modules 'libva;libva-drm'
    --   No package 'libva' found
    --   No package 'libva-drm' found
    -- Could NOT find TegraJPEG (missing: TegraJPEG_LIBRARIES TegraJPEG_INCLUDE_DIRS TegraJPEG_L4T_OK TegraJPEG_DRIVER_OK TegraJPEG_WORKS) 
    CMake Error at /usr/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
      Could NOT find TurboJPEG (missing: TurboJPEG_INCLUDE_DIRS TURBOJPEG_WORKS)
    Call Stack (most recent call first):
      /usr/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:377 (_FPHSA_FAILURE_MESSAGE)
      cmake_modules/FindTurboJPEG.cmake:66 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
      CMakeLists.txt:237 (FIND_PACKAGE)
      
    -- Configuring incomplete, errors occurred!
    See also "/home/ubuntu/Desktop/libfree/libfreenect2/build/CMakeFiles/CMakeOutpu
复制代码
    sudo apt-get install libturbojpeg0-dev

make 命令时 *** No targets specified and no makefile found. stop,应该是执行 cmake 时已经报错了

设置udev规则

复制代码
    # 复制rules文件
    $ sudo cp ../platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/
    # 重启rules
    $ sudo service udev reload
    $ sudo service udev restart
    $ sudo udevadm trigger

测试

重新拔插进行测试,可能拔插不会生效,断电即可,再不行重启大法

复制代码
    $ ./bin/Protonect  #重新接入之后运行测试
    $ sudo apt-get install openni2-utils && sudo make install-openni2 && NiViewer2 #可选测试

then…
在这里插入图片描述

驱动卸载

复制代码
    sudo rm -r /usr/local/lib/cmake/freenect2
    sudo rm -r  /usr/local/lib/OpenNI2
    sudo rm /usr/local/lib/pkgconfig/freenect2.pc
    sudo rm /usr/local/lib/libfreenect2.*
    sudo rm -r /usr/local/include/libfreenect2

iai-kinect2源码安装与测试

下载

复制代码
    $ git clone https://github.com/code-iai/iai_kinect2.git

安装

复制代码
    $ cd iai_kinect2
    $ rosdep install -r --from-paths .
    $ cd ~/catkin_ws
    $ catkin_make -DCMAKE_BUILD_TYPE="Release"
    $ rospack profile

测试

复制代码
    $ roslaunch kinect2_bridge kinect2_bridge.launch
    $ rosrun kinect2_viewer kinect2_viewer

rtapmap建图

安装

复制代码
    $ sudo apt-get install ros-kinetic-rtabmap-ros

使用

  • 建立连接:
复制代码
    $ roslaunch kinect2_bridge kinect2_bridge.launch publish_tf:=true
  • 静态tf:
复制代码
    $ rosrun tf static_transform_publisher

     0 0 0 -1.5707963267948966 0 -1.5707963267948966 camera_link kinect2_link 100

参数为 坐标关系,link,发布频率(发布静态tf关系联系节点)

  • 启动文件:
复制代码
    $ roslaunch rtabmap_ros rtabmap.launch rtabmap_args:="--delete_db_on_start" rgb_topic:=/kinect2/qhd/image_color_rect depth_topic:=/kinect2/qhd/image_depth_rect camera_info_topic:=/kinect2/qhd/camera_info rviz:=true
  • 创建活动tf树的图,可以观察各节点关系
复制代码
    $ rosrun rqt_tf_tree rqt_tf_tree

kinect只能有一个输入,其余无法建立关系

全部评论 (0)

还没有任何评论哟~