source ~/.bashrc
在最后加入:
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/yh/ORB_SLAM2/Examples/ROS
这样做可以让ROS找到ORB_SLAM2的package。
编译ros节点:
1.
chmod +x build_ros.sh
./build_ros.sh
2.打开一个终端,运行:roslaunch kinect2_bridge kinect2_bridge.launch
3.再打开另一个终端,输入:rostopic list查看此时Kinect2发布的topic,我用的是/kinect2/qhd/image_color_rect和/kinect2/qhd/image_depth_rect
Kinect2的topic一共有三种,含不同的分辨率。其中hd是1920的,qhd是四分之一的960的,而sd是最小的。博主发现sd的效果不理想,而hd的图像又太大了,建议使用qhd的920大小。
4.找到源文件ros_rgbd.cc,按照上面3的topic修改里面的ros订阅的内容
5.在ORB_SLAM2/Example/ROS/下创建一个kinect2.yaml文件用于设定kinect和orb_slam2的参数。创建规则参照ORB_SLAM2/Example/RGB-D
下的TUM1.yaml 。格式是一样的,相机参数根据标定结果设置好,ORB_SLAM的参数不用动。
大概是下面这样:
6 .重新编译工程
chmod +x build_ros.sh
./build_ros.sh
7.打开一个终端输入:roslaunch kinect2_bridge kinect2_bridge.launch
8.重新打开一个终端:
rosrun ORB_SLAM2 RGBD /home/yh/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/yh/ORB_SLAM2/Examples/ROS/kinect2.yaml
9.移动Kinect,显示轨迹。