ORB_SLAM2包中不仅包含原生算法,还包含ROS的功能包,需要单独编译。在终端中设置ORB_SLAM2包的路径,最好将设置放入终端配置文件中
$ export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:ORB_SLAM_PATH/ORB_SLAM2/Examples/ROS
以上命令中的ORB_SLAM_PATH代表计算机上放置ORB_SLAM2功能包的路径。
再执行如下编译命令:

$ chmod +x build_ros.sh
$ ./build_ros.sh
编译成功后,在ORB_SLAM2/Examples/ROS路径下会出现build文件夹,需要单独设置环境变量:

$ source ORB_SLAM2/Examples/ROS/ORB_SLAM2/build/devel/setup.bash
2.使用数据包实现单目SLAM
为了测试ORB_SLAM2功能包是否安装成功,并且了解该功能包的使用方法,首先使用数据包进行测试。
使用roscore命令启动ROS系统,然后通过以下命令运行ORB_SLAM2中的单目SLAM节点:

$ rosrun ORB_SLAM2 Mono Vocabulary/ORBvoc.txt Examples/ROS/ORB_SLAM2/Asus.yaml
启动Mono节点时,还应输入两个必需的参数。
1)PATH_TO_VOCABULARY:算法参数文件。在ORB_SLAM2/Vocabulary中,将其中的压缩包解压即可。
2)PATH_TO_SETTINGS_FILE:相机参数设置文件,需要对camera进行标定,或者使用ORB_SLAM2/ Examples/ROS/ORB_SLAM2中已有的设置文件Asus.yaml。启动成功后就可以看到如图9-48所示的界面,暂时还没有数据产生,所以界面中没有任何显示。
现在播放数据包:

$ rosbag play rgbd_dataset_freiburg1_desk.bag /camera/rgb/image_color:=/camera/image_raw
一会就可以在界面中看到如图9-49所示的SLAM过程。