一、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. window环境下搭建SVN服务器

    <span style="font-family: Arial; rgb(255, 255, 255);">第一步:准备工具:</span> 1.SVN服务 ...

  2. C/C++实现bmp文件读写

    之前知道点bmp图的格式,然后对8位操作过,然后今天弄了一下24位真彩色的. C++读取.旋转和保存bmp图像文件编程实现 主要是理解bmp文件的格式8/24位的区别 8位图有调色板,24位在文件头和 ...

  3. 弄技术要弄通-公司reis的pub/sub怎么使用的呢?

    Pub/Sub in Redis using PHP Posted on November 14, 2011by xmeng I would like to put an example togeth ...

  4. 在学习c++过程中,总结类的三个用户以及使用权限,感觉非常实用

    首先我们需要知道类的三个用户分别是:类的实现者,类的普通用户和类的继承者(派生类),接下来分别讲解这几种用户的区别. 1 .类的实现者:顾明思议,就是类的设计者,拥有最大的权限,可以访问类中任何权限的 ...

  5. 在调试C++程序是出现这个问题的解决方案illegal pure syntax, must be '= 0'

    笔者在调试c++的时候遇见了这个问题 E:\Data Struct\SqString\新建 文本文档.cpp(5) : error C2258: illegal pure syntax, must b ...

  6. JS表格分页组件:fupage的设计思路和详细使用方法(未来考虑开源,争取在2015年)

    一.背景         之前在秒针工作的时候,某js高级project师写了非常多自己的组件.当中一套是分页组件.叫做st-grid. 只是在我看来,bug太多.我常常给他反馈bug,我也不清楚为啥 ...

  7. JavaScript-创建第一个自己的类库

    通过上一节面向对象和原型的学习. 我们知道了怎样创建一个类,包含类的私有化属性和方法.公有化属性和方法.静态属性和方法.在这里略微回想一下.首先要创建一个类能够通过1.new object().2.利 ...

  8. 2016/4/26 sublime text 2 版本 遇到的问题及解决方法

    1.汉化:下载汉化包 .打开程序Preference下的浏览包文件夹.将解压的程序包粘贴进包文件夹2.破解:标题栏上面有带(unregistered)表示还没有注册: 打开HELP→Enter lic ...

  9. 在myeclipse下面创建多层包

    比如animal.cat.dog包 先创建animal包 然后创建animal.cat包 最后创建animal.cat.dog包 最后你发现这三个文件夹是分层的,层层嵌套的三个文件夹,而不是一个文件夹 ...

  10. Hibernate 之 Locking

    在我们业务实现的过程中,往往会有这样的需求:保证数据访问的排他性,也就是我正在访问的数据,别人不能够访问,或者不能对我的数据进行操作.面对这样的需求,就需要通过一种机制来保证这些数据在一定的操作过程中 ...