Advertisement

ros下使用kinect2运行orbslam

阅读量:

kinect2驱动与标定

为使用kinect2设备需安装相应的驱动程序,并可通过以下链接获取详细指导:kinect2驱动安装。完成安装后需进行相机标定,请参考官方文档中的相关内容:github)。个人尝试进行标定后发现效果不理想,在此基础上利用ros平台中的iai_kinect2模块下的数据文件进行处理时发现效果显著提升,则需将数据文件中的序列号相应修改为自身体 camera 的序列号

运行slam

调用方式1
在orbslam2的Examples/ros/orbslam2/src下的os_rgbd.cc中修改为

复制代码
    message_filters::Subscriber<sensor_msgs::Image> rgb_sub(nh,"/kinect2/qhd/image_color",1);
    message_filters::Subscriber<sensor_msgs::Image> depth_sub(nh,"/kinect2/qhd/image_depth_rect",1);

启动./build_ros.bash以实现重新构建ROS节点。

复制代码
    export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/nikelee/catkin_ws/src/ORB_SLAM2/Examples/ROS
    source ~/catkin_ws/devel/setup.bash

上面的具体路径根据自己的实际情况进行修改,保存之后 source .bashrc

在新的终端中运行

复制代码
    roslaunch kinect_bridge kinect_bridge.launch

在打开一个终端,在orbslam2下的examples/ros目录下运行

复制代码
    rosrun ORB_SLAM2 RGBD  Vocabulary/ORBvoc.txt Examples/RGB-D/kinect2.yaml

为优化运行效果, 建议在ros环境下安装iai_kinect2/kinect2_bridge包, 并依据该包的数据参数进行Kinect2.yaml的配置. 该配置文件中qhd摄像头的分辨率设置为960x540

调用方案二
参考高博所著的相关博客
slam实战
对kinect2_viewer文件进行修改时,请相应地调整cmakelists文件,并提供一个具体的修改方案作为参考。

复制代码
    execute_process(COMMAND find ${PROJECT_SOURCE_DIR} -type f OUTPUT_VARIABLE FILES_STRING)
    string(REPLACE "\n" ";" FILES_LIST ${FILES_STRING})
    add_custom_target(additional_files_${PROJECT_NAME}
      SOURCES
      ${FILES_LIST}
    )
    find_package(Pangolin REQUIRED)
    set(INC_DIR /home/nikelee/catkin_ws/src/pointSlam/ORB_SLAM2_modified/include)  // 设置slam的头文件目录
    set(LIN_DIR /home/nikelee/catkin_ws/src/pointSlam/ORB_SLAM2_modified/lib)          // 设置slam的库文件目录
    
    include_directories(include
      ${catkin_INCLUDE_DIRS}
      ${OpenCV_INCLUDE_DIRS}
      ${PCL_INCLUDE_DIRS}
      ${kinect2_bridge_INCLUDE_DIRS}
      ${INC_DIR}                                                                          // 加入头文件
      ${Pangolin_INCLUDE_DIRS}
    )
    link_directories(${LIN_DIR})                                       //  链接库文件目录
    add_executable(kinect2_viewer src/slamViewer.cpp)
    target_link_libraries(kinect2_viewer
      ${catkin_LIBRARIES}
      ${OpenCV_LIBRARIES}
      ${PCL_LIBRARIES}
      ${kinect2_bridge_LIBRARIES}
      ORB_SLAM2                                            //  链接库文件
      ${Pangolin_LIBRARIES}
    )

还要根据自己的情况修改词典文件和相机参数文件的路径

复制代码
    //打开终端
    cd ~/catkin_ws/
    #运行kinect2_bridge
    roslaunch kinect2_bridge kinect2_bridge.launch
    #打开一个新终端,查看点云图
    rosrun kinect2_viewer kinect2_viewer qhd cloud

全部评论 (0)

还没有任何评论哟~