ROS学习笔记一:ROS安装与测试
一、Ubuntu和ROS版本的对应关系
Ubuntu 和 ROS 都存在不同的版本,其对应关系如下:

注:如果Ubuntu版本和ROS版本不对应的话,安装就不会成功了~
笔者安装的是Ubuntu14.04 LTS(双系统,非虚拟机),所以安装的是Indigo版本,以下安装步骤均是基于Indigo版本的。
二、配置Ubuntu的软件源
由于ROS属于社区支持,还有很多其他的库并不是官方支持的,所以需要修改ubuntu的仓库属性,让其允许获得属性为“main”、“restricted”、“universe”和“multiverse”的源,可以根据这个进行配置。
配置成如下图所示即可,一般情况下,这些配置都是默认的。

下面就可以正式准备安装了!可以参考本篇文章安装,也可参考:ROS维基百科 - Indigo安装
三、设置源地址文件sources.list
设置源地址文件使电脑系统可以接受来自packages.ros.org的软件包,ROS Indigo只支持debian安装包的Saucy(13.10)和Trusty(14.04)版本,执行如下命令把ROS的源地址添加进源地址文件列表。
这里笔者选择了中国科技技术大学的镜像源:
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
一旦添加了正确的源地址文件,操作系统就知道去哪里下载程序,并根据命令自动安装软件。
四、验证你的密钥
需要在你的系统中对ROS软件包的相关密钥进行验证,要不然在安装的时候会通不过系统的安全认证而无法安装。
$ wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
五、安装
首先,确认你的ubuntu系统的源列表是最新的:
$ sudo apt-get update && sudo apt-get install dpkg
然后开始正式安装!按照安装包的大小和功能,有三个安装包可以选择:
桌面版完全安装(推荐):包括ROS、rqt环境、rviz三维仿真环境、通用机器人库、2D/3D仿真器、导航和2D/3D感知功能。
$ sudo apt-get install ros-indigo-desktop-full
桌面版普通安装:包括包括ROS、rqt环境、rviz三维仿真环境、通用机器人库功能。
$ sudo apt-get install ros-indigo-desktop
基础ROS安装:仅包括ROS、编译和通信函数库,没有GUI工具。
$ sudo apt-get install ros-indigo-ros-base
六、始化rosdep
在使用ROS之前,还需要初始化rosdep,即ROS的软件包依赖项。rosdep使我们能够非常轻松地为我们想要编译和想在ROS上运行的一些核心部件安装系统依赖项。
$ sudo rosdep init
$ rosdep update
七、设置环境变量
如果ROS的环境变量能够在每个新的终端(shell)建立的时候自动地添加进我们的bash进程,那将是非常方便的。
$ echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
//为了使环境变量设置立即生效,在终端中输入:
$ source ~/.bashrc
如果你安装不止一个ROS的版本,~/.bashrc必须只更新你目前所使用的版本的setup.bash。
八、获得rosinstall
rosinstall是一个单独发行的在ROS经常用到的命令行工具。它使你能够轻易地使用一个命令就下载很多ROS的源文件包。在ubuntu上执行如下命令安装此工具:
$ sudo apt-get install python-rosinstall
至此,ROS的安装正式宣告结束,下面运行一个鼠标控制海龟移动的demo来验证ROS是否成功安装好了。
九、ROS测试
第一步,打开一个终端测试roscore是否能正常启动,使用ROS必须保证roscore运行:
$ roscore
第二步,新开启一个终端,执行以下命令:
$ rosrun turtlesim turtlesim_node
第三步,再开启一个终端,执行以下命令:
$ rosrun turtlesim turtle_teleop_key
如下图所示:

十、卸载ROS
步骤方法:
1、首先卸载包
sudo apt-get purge ros-*
2、然后卸载依赖包
sudo apt-get autoremove
参考:
ROS学习笔记一:ROS安装与测试的更多相关文章
- ROS学习笔记七:在ROS中使用USB摄像头
下面是一些USB摄像头的驱动(大多数摄像头都支持uvc标准): 1 使用软件库里的uvc-camera功能包 1.1 检查摄像头 lsusb ----------------------------- ...
- ROS学习笔记1-引言
该学习笔记参考ROS官方wiki的内容,见:http://wiki.ros.org/ROS/Introduction 什么是ROSROS的全称是Robot Operating System,即机器人操 ...
- PHP学习笔记----IIS7下安装配置php环境
原文:PHP学习笔记----IIS7下安装配置php环境 Php如何安装 Php版本的选择 Php在windows下的(php5.4.7)有两种版本: VC9 x86 Non Thread Safe ...
- openresty 学习笔记一:环境安装
openresty 学习笔记一:环境安装 openresty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭 ...
- ROS学习笔记(三)——ROS安装
安装指南: indigo安装 http://wiki.ros.org/indigo/Installation/Ubuntu 中文参考教程: http://wiki.ros.org/cn 1.配置Uba ...
- ROS学习笔记八:基于Qt搭建ROS开发环境
1 前言 本文介绍一种Qt下进行ROS开发的完美方案,使用的是ros-industrial的Levi-Armstrong在2015年12月开发的一个Qt插件ros_qtc_plugin,这个插件使得Q ...
- ROS学习笔记十二:使用gazebo在ROS中仿真
想要在ROS系统中对我们的机器人进行仿真,需要使用gazebo. gazebo是一种适用于复杂室内多机器人和室外环境的仿真环境.它能够在三维环境中对多个机器人.传感器及物体进行仿真,产生实际传感器反馈 ...
- ROS学习笔记五:创建和使用ROS msg和srv
1 msg和srv简介 1.1 msg文件 msg文件就是一个简单的text文件,其中每行有一个类型和名称,可用的类型如下: int8, int16, int32, int64 (plus uint* ...
- ROS学习笔记二:ROS系统架构及概念
本文主要是了解ROS的系统架构.文件夹结构以及工作所需的核心文件. ROS系统架构主要被设计和划分为三部分,每一部分代表一个层级的概念:文件系统级(The filesystem level).计算图级 ...
- ROS学习笔记一(ROS的catkin工作空间)
在安装完成ROS indigo之后,需要查看环境变量是否设置正确,并通过创建一个简单的实例来验证ROS能否正常运行. 1 查看环境变量 在ROS的安装过程中,我们执行了如下命令:(此命令就是向当前用户 ...
随机推荐
- hotswapagent——热更新代码而无需重启生产环境
http://blog.csdn.net/littleschemer/article/details/51645722
- 【python】super()
转自: http://www.cnblogs.com/lovemo1314/archive/2011/05/03/2035005.html
- AngularJS - $index, $event, $log
原文: https://thinkster.io/egghead/index-event-log --------------------------------------------------- ...
- VS自己定义project向导开发(Custom Wizard)
在vs2010中定制VC++project向导有例如以下两种方式: 改动现有向导.以满足自己的须要: 使用"自己定义向导"来产生一个向导骨架,并设计自己的向导. 本文档仅仅讨 ...
- IEnumerator<TItem>和IEnumerator Java 抽象类和普通类、接口的区别——看完你就顿悟了
IEnumerable 其原型至少可以说有15年历史,或者更长,它是通过 IEnumerator 来定义的,而后者中使用装箱的 object 方式来定义,也就是弱类型的.弱类型不但会有性能问题,最主要 ...
- 一起talk C栗子吧(第一百二十一回:C语言实例--线程知识体系图)
各位看官们.大家好,上一回中咱们说的线程属性的样例.这一回咱们说的样例是:线程知识体系图.闲话休提.言归正转. 让我们一起talk C栗子吧! 我们在前面的章回中介绍了与线程相关的知识,在今天的章回中 ...
- 2016/3/26 连接数据库 网页中数据的增删改 add delete update addchuli updateChuLi test8 DBDA
主页面 test8.php <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- myecplise、ecplise项目空间优化
1.代码自动提示补全 Window->preferences->Java->Editor->Content Assist 再右下角Auto activation trigger ...
- solr入门之多线程操作solr中索引字段的解决
涉及的问题: 建索引时有一个字段是该词语出现的次数,这个字段是放在solr里的 而我用的是多线程来进行全量导入的,这里就涉及到了多线程问题 多个线程操作同一个变量时怎样处理? 我是这样子做的 : 首 ...
- bzoj1560: [JSOI2009]火星藏宝图
考虑到一个性质,A到B的距离一定不小于A到C再到B的距离,因为能够到达这三个点不可能构成锐角三角形 对于当前点的更新只需要找那些无法经过其它点再到当前点的点,相当于是一个y坐标单调减的上凸包,随便维护 ...