step1: 安装ROS indigo,并创建工作空间 .
step2 : 将ORB-SLAM2代码拷贝到~/catkin_ws/src/目录下。
step3 : 进入~/catkin_ws/src/ORB-SLAM2目录,运行下面程序:
cd catkin_ws/src/ORB_SLAM2/
chmod +x build.sh
./build.sh
step4: 增加包含 Examples/ROS/ORB_SLAM2 的目录添加到 ROS_PACKAGE_PATH 的环境变量中。
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM2/Examples/ROS
我的是:
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/hm/catkin_ws/src/ORB_SLAM2/Examples/ROS
step5: 在.bashrc中添加环境变量:用gedit打开.bashrc 文件加入下面内容:
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/hm/catkin_ws/src/ORB_SLAM2/Examples/ROS
cd ~
gedit .bashrc
step6:在ros工作空间中执行build_ros.h脚本:
进入catkin_ws工作空间中的ORB_SLAM2,执行下面代码:
cd ~/catkin_ws/src/ORB_SLAM2
chmod +x build_ros.sh
./build_ros.sh
ROS下实时跑ORB_SLAM2
Step1 : 运行内核
roscore
Step2 : 启动相机
cd catkin_ws/src/usb_cam/launch #进入usb_cam驱动的安装目录
roslaunch my_cam.launch #加载相机launch文件
my_cam.launch文件
<launch>
<node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" >
<param name="video_device" value="/dev/video1" />
<param name="image_width" value="640" />
<param name="image_height" value="480" />
<param name="pixel_format" value="yuyv" />
<param name="camera_frame_id" value="usb_cam" />
<param name="io_method" value="mmap"/>
</node>
<node name="image_view" pkg="image_view" type="image_view" respawn="false" output="screen">
<remap from="image" to="/usb_cam/image_raw"/>
<param name="autosize" value="true" />
</node>
</launch>
Step3 : 运行orb_slam2
cd /home/hm/catkin_ws/src/ORB_SLAM2 #进入ORB_SLAM2的主目录
source Examples/ROS/ORB_SLAM2/build/devel/setup.bash
cd Examples/ROS/
rosrun ORB_SLAM2 Mono ../../Vocabulary/ORBvoc.txt ../../my_camera.yaml #自己的相机标定文件
运行结果
注 : 如果出现无法读取相机图像,是因为Mono节点读取图像流的路径错了,修改src/ros_mono.cc 自己发布的主题。双目和RGBD相似
然后进入ORB_SLAM2主目录在运行一下
./build_ros.sh