一、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维基百科 - Indigo安装

ROS学习笔记一:ROS安装与测试的更多相关文章

  1. ROS学习笔记七:在ROS中使用USB摄像头

    下面是一些USB摄像头的驱动(大多数摄像头都支持uvc标准): 1 使用软件库里的uvc-camera功能包 1.1 检查摄像头 lsusb ----------------------------- ...

  2. ROS学习笔记1-引言

    该学习笔记参考ROS官方wiki的内容,见:http://wiki.ros.org/ROS/Introduction 什么是ROSROS的全称是Robot Operating System,即机器人操 ...

  3. PHP学习笔记----IIS7下安装配置php环境

    原文:PHP学习笔记----IIS7下安装配置php环境 Php如何安装 Php版本的选择 Php在windows下的(php5.4.7)有两种版本: VC9 x86 Non Thread Safe ...

  4. openresty 学习笔记一:环境安装

    openresty 学习笔记一:环境安装 openresty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭 ...

  5. ROS学习笔记(三)——ROS安装

    安装指南: indigo安装 http://wiki.ros.org/indigo/Installation/Ubuntu 中文参考教程: http://wiki.ros.org/cn 1.配置Uba ...

  6. ROS学习笔记八:基于Qt搭建ROS开发环境

    1 前言 本文介绍一种Qt下进行ROS开发的完美方案,使用的是ros-industrial的Levi-Armstrong在2015年12月开发的一个Qt插件ros_qtc_plugin,这个插件使得Q ...

  7. ROS学习笔记十二:使用gazebo在ROS中仿真

    想要在ROS系统中对我们的机器人进行仿真,需要使用gazebo. gazebo是一种适用于复杂室内多机器人和室外环境的仿真环境.它能够在三维环境中对多个机器人.传感器及物体进行仿真,产生实际传感器反馈 ...

  8. ROS学习笔记五:创建和使用ROS msg和srv

    1 msg和srv简介 1.1 msg文件 msg文件就是一个简单的text文件,其中每行有一个类型和名称,可用的类型如下: int8, int16, int32, int64 (plus uint* ...

  9. ROS学习笔记二:ROS系统架构及概念

    本文主要是了解ROS的系统架构.文件夹结构以及工作所需的核心文件. ROS系统架构主要被设计和划分为三部分,每一部分代表一个层级的概念:文件系统级(The filesystem level).计算图级 ...

  10. ROS学习笔记一(ROS的catkin工作空间)

    在安装完成ROS indigo之后,需要查看环境变量是否设置正确,并通过创建一个简单的实例来验证ROS能否正常运行. 1 查看环境变量 在ROS的安装过程中,我们执行了如下命令:(此命令就是向当前用户 ...

随机推荐

  1. hotswapagent——热更新代码而无需重启生产环境

    http://blog.csdn.net/littleschemer/article/details/51645722

  2. 【python】super()

    转自: http://www.cnblogs.com/lovemo1314/archive/2011/05/03/2035005.html

  3. AngularJS - $index, $event, $log

    原文: https://thinkster.io/egghead/index-event-log --------------------------------------------------- ...

  4. VS自己定义project向导开发(Custom Wizard)

     在vs2010中定制VC++project向导有例如以下两种方式: 改动现有向导.以满足自己的须要: 使用"自己定义向导"来产生一个向导骨架,并设计自己的向导. 本文档仅仅讨 ...

  5. IEnumerator<TItem>和IEnumerator Java 抽象类和普通类、接口的区别——看完你就顿悟了

    IEnumerable 其原型至少可以说有15年历史,或者更长,它是通过 IEnumerator 来定义的,而后者中使用装箱的 object 方式来定义,也就是弱类型的.弱类型不但会有性能问题,最主要 ...

  6. 一起talk C栗子吧(第一百二十一回:C语言实例--线程知识体系图)

    各位看官们.大家好,上一回中咱们说的线程属性的样例.这一回咱们说的样例是:线程知识体系图.闲话休提.言归正转. 让我们一起talk C栗子吧! 我们在前面的章回中介绍了与线程相关的知识,在今天的章回中 ...

  7. 2016/3/26 连接数据库 网页中数据的增删改 add delete update addchuli updateChuLi test8 DBDA

    主页面 test8.php <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  8. myecplise、ecplise项目空间优化

    1.代码自动提示补全 Window->preferences->Java->Editor->Content Assist 再右下角Auto activation trigger ...

  9. solr入门之多线程操作solr中索引字段的解决

    涉及的问题: 建索引时有一个字段是该词语出现的次数,这个字段是放在solr里的  而我用的是多线程来进行全量导入的,这里就涉及到了多线程问题 多个线程操作同一个变量时怎样处理? 我是这样子做的 : 首 ...

  10. bzoj1560: [JSOI2009]火星藏宝图

    考虑到一个性质,A到B的距离一定不小于A到C再到B的距离,因为能够到达这三个点不可能构成锐角三角形 对于当前点的更新只需要找那些无法经过其它点再到当前点的点,相当于是一个y坐标单调减的上凸包,随便维护 ...