Ubuntu 14.04+Ros indigo+ORB_SLAM2 的平台搭建

目前,在视觉SLAM所有算法中,ORB_SLAM2是一个极其优秀值得深究的算法,其包含了单目,双目和深度摄像头三种接口。本本记叙了本次Ubuntu 14.04+Ros indigo+ORB_SLAM2 的平台搭建,和遇到的几个问题,以便以后重装和其他使用者参考。


 首先是安装ubuntu,我选择的是Ubuntu 14.04。然后是安装ROS,选择的是对应的indigo版本,其具体安装步骤参考官网。

这些步骤都装好后,首先需要安装Pangolin,用于可视化。目前所能搜索到的网络上的安装步骤中,都安装不成功,这其实是源码问题,使用旧版本的Pangolin即可。

git clone https://github.com/zzx2GH/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
make
sudo make install

最后千万别忘记 sudo make install,如果在后面执行orb算法的时候出现了如下问题:

terminate called after throwing an instance of 'std::runtime_error'
what():  Pangolin X11: Unable to retrieve framebuffer options

请把源码目录Pangolin\src\display\device下的display_x11.cpp文件做如下修改:

staticint visual_attribs[] = { 
    GLX_X_RENDERABLE , True, 
    GLX_DRAWABLE_TYPE , GLX_WINDOW_BIT, 
    GLX_RENDER_TYPE , GLX_RGBA_BIT, 
    GLX_X_VISUAL_TYPE , GLX_TRUE_COLOR, 
    GLX_RED_SIZE , 8, 
    GLX_GREEN_SIZE, 8, 
    GLX_BLUE_SIZE, 8, 
    GLX_ALPHA_SIZE, 8, 
    GLX_DEPTH_SIZE, 24, 
    GLX_STENCIL_SIZE, 8, 
    GLX_DOUBLEBUFFER , glx_doublebuffer ? True : False, 
    //注释这一行GLX_SAMPLE_BUFFERS , glx_sample_buffers, 
    //注释这一行 GLX_SAMPLES , glx_sample_buffers > 0 ? glx_samples : 0, 
    None 
                            };

之后重新编译Pangolin即可。

完成Pangolin安装后,建立工作空间:

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/

之后下载usb_cam并编译:

cd catkin_ws/src/usb_cam
mkdir build
cd build
cmake ..
make

最后下载并编译ORB_SLAM2,同样,该包需要下载到工作空间中:

cd catkin_ws 
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2 
cd ORB_SLAM2 
chmod +x build.sh 
./build.sh 
chmod +x build_ros.sh 
./build_ros.sh

请注意:在下载好ORB_SLAM2包后,不要着急build,首先添加ORB_SLAM2的路径:

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/usrname/catkin_ws/src/ORB_SLAM2/Examples/ROS

我尝试使用 source /home/usrname/catkin_ws/src/ORB_SLAM2/Examples/ROS 添加到~/.bashrc中,但是不能正常工作,使用以上命令则可以识别。如果不添加该路径,在./build_ros.sh编译的时候会出现错误。

最后为了测试安装是否成功,打开usb_cam-test.launch文件:

cd /home/pan/catkin_ws/src/usb_cam/launch
gedit usb_cam-test.launch

修改其中的内容为:

<launch>
    <node name="camera" pkg="usb_cam" type="usb_cam_node" output="screen" > 
        <param name="video_device" value="/dev/video0" /> 
        <param name="image_width" value="640" /> 
        <param name="image_height" value="480" /> 
        <param name="pixel_format" value="yuyv" /> 
        <param name="camera_frame_id" value="camera" /> 
        <param name="io_method" value="mmap"/> 
        <remap from="/usb_cam/image_raw" to="/camera/image_raw" /> 
    </node> 
    <node name="image_view" pkg="image_view" type="image_view" respawn="false" output="screen"> 
        <remap from="image" to="/camera/image_raw"/> 
        <param name="autosize" value="true" /> 
    </node> 
</launch>

以上准备工作完成后,即可测试是否安装成功了,分别打开三个终端分别输入以下命令,即可看到结果。

roscore

roslaunch usb_cam usb_cam-test.launch 

rosrun ORB_SLAM2 Mono /home/usrname/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/usrname/catkin_ws/src/ORB_SLAM2/Examples/Monocular/TUM1.yaml

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值