(一)ubuntu 14.04+ORB_SLAM2+ROS indigo中实现摄像头实时定位以及踩过的若干个坑&解决方案

  • 前言
  • 实现方案

前言

  我大概真的真的好久没写博客,最近实在太忙了。今天晚上终于实现了在ubuntu 14.04 + ROS indigo环境下,基于ORB_SLAM2开源代码的单目实时定位,踩了很多坑,查了很多资料,将一些心得和解决方案分享给大家。

(一)ubuntu 14.04+ORB_SLAM2+ROS indigo中实现摄像头实时定位以及踩过的若干个坑&解决方案_第1张图片

实现方案

  实现单目定位过程中,我最大的感触是——磨刀不误砍柴工。为什么这么说?我打算直接按照网上的方法去实现定位,尤其我要在ROS下实现的时候,只是依葫芦画瓢,ROS的知识一点没有看,对在terminal敲的代码也一知半解。我极力推荐没有ROS基础的童鞋先了解一下ROS,推荐资料主要是ROS wiki和《ROS机器人编程》一书,书应该在网上可以找到pdf。我大概花了一个早上看了一百多页,对整个ROS有了新的认识,后面在实现实时定位的时候事半功倍。SLAM具体原理和技术细节,在此篇博文中不会展开,如有条件,我会在之后的博文展开一些细节。下面我会开始叙述整个实现过程,这个过程中也参考了很多博客,感谢这些博客的作者
  首先需要使用Ubuntu 14.04环境,我是在VM虚拟机中搭建的,这边我就不再详细叙述。默认到这一步,已经安装好Ubuntu 14.04,下面需要搭建ROS indigo环境。需要打开终端(Ctrl+Alt+t)输入如下命令:

安装ROS源列表

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu$(lsb_release -sc) main" >/etc/apt/sources.list.d/ros-latest.list'  

安装用户密钥

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net --recv-key0xB01FA116  

安装软件
第一个命令用于更新指令等,第二个指令用于安装ROS包(这里选择的是Desktop-full版本,属于比较全的版本)

sudo apt-get update
sudo apt-get install ros-indigo-desktop-full

下面初始化依赖项,我在这边曾经踩到坑,后来解决了,但是我忘记我踩的什么坑了(尴尬),后面在这步遇到问题可以在评论里留下问题,我来看下怎么解决。

apt-cache search ros-indigo  
sudo rosdep init  
rosdep update

环境安装

source /opt/ros/indigo/setup.bash  

或者可以直接写进路径里,指令如下:

cd ~
gedit /.bashrc

然后在bashrc文件的最后一行加上下面这句

source /opt/ros/indigo/setup.bash  

安装工具

sudo apt-get install python-rosinstall  

到目前为止,ROS indigo应该就安装配置完成了,下面可以测试一下自己有没有安装成功。
打开一个新的terminal,输入如下指令启动ROS(或者叫启动主节点)

roscore

重新打开一个新的terminal,如果在上述步骤中已经将“source /opt/ros/indigo/setup.bash”写入bashrc文件,不再要在terminal输入该命令,如果未在bashrc文件配置,此步需要在新的terminal输入

source /opt/ros/indigo/setup.bash  

下面输入这个指令运行turtlesim功能包的turtlesim_node节点,会出现一个有小乌龟的窗口。

rosrun turtlesim turtlesim_node

(一)ubuntu 14.04+ORB_SLAM2+ROS indigo中实现摄像头实时定位以及踩过的若干个坑&解决方案_第2张图片

重新打开一个terminal,输入如下指令,输入该指令的时候不能关闭之前开的roscore和turtlesim_node终端。

rosrun turtlesim turtle_teleop_key

这时候按键盘的方向键就会发现上图那只可爱的小乌龟会跟随你按的方向运动,至此说明ROS indigo已经一切就绪了。

(一)ubuntu 14.04+ORB_SLAM2+ROS indigo中实现摄像头实时定位以及踩过的若干个坑&解决方案_第3张图片

你可能感兴趣的:(解决方案)