您的位置:首页 > 编程语言 > Go语言

在ROS indigo下运行ORB-SLAM2

2017-03-09 09:37 627 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: