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的安装过程中,我们执行了如下命令:(此命令就是向当前用户 ...
随机推荐
- window环境下搭建SVN服务器
<span style="font-family: Arial; rgb(255, 255, 255);">第一步:准备工具:</span> 1.SVN服务 ...
- C/C++实现bmp文件读写
之前知道点bmp图的格式,然后对8位操作过,然后今天弄了一下24位真彩色的. C++读取.旋转和保存bmp图像文件编程实现 主要是理解bmp文件的格式8/24位的区别 8位图有调色板,24位在文件头和 ...
- 弄技术要弄通-公司reis的pub/sub怎么使用的呢?
Pub/Sub in Redis using PHP Posted on November 14, 2011by xmeng I would like to put an example togeth ...
- 在学习c++过程中,总结类的三个用户以及使用权限,感觉非常实用
首先我们需要知道类的三个用户分别是:类的实现者,类的普通用户和类的继承者(派生类),接下来分别讲解这几种用户的区别. 1 .类的实现者:顾明思议,就是类的设计者,拥有最大的权限,可以访问类中任何权限的 ...
- 在调试C++程序是出现这个问题的解决方案illegal pure syntax, must be '= 0'
笔者在调试c++的时候遇见了这个问题 E:\Data Struct\SqString\新建 文本文档.cpp(5) : error C2258: illegal pure syntax, must b ...
- JS表格分页组件:fupage的设计思路和详细使用方法(未来考虑开源,争取在2015年)
一.背景 之前在秒针工作的时候,某js高级project师写了非常多自己的组件.当中一套是分页组件.叫做st-grid. 只是在我看来,bug太多.我常常给他反馈bug,我也不清楚为啥 ...
- JavaScript-创建第一个自己的类库
通过上一节面向对象和原型的学习. 我们知道了怎样创建一个类,包含类的私有化属性和方法.公有化属性和方法.静态属性和方法.在这里略微回想一下.首先要创建一个类能够通过1.new object().2.利 ...
- 2016/4/26 sublime text 2 版本 遇到的问题及解决方法
1.汉化:下载汉化包 .打开程序Preference下的浏览包文件夹.将解压的程序包粘贴进包文件夹2.破解:标题栏上面有带(unregistered)表示还没有注册: 打开HELP→Enter lic ...
- 在myeclipse下面创建多层包
比如animal.cat.dog包 先创建animal包 然后创建animal.cat包 最后创建animal.cat.dog包 最后你发现这三个文件夹是分层的,层层嵌套的三个文件夹,而不是一个文件夹 ...
- Hibernate 之 Locking
在我们业务实现的过程中,往往会有这样的需求:保证数据访问的排他性,也就是我正在访问的数据,别人不能够访问,或者不能对我的数据进行操作.面对这样的需求,就需要通过一种机制来保证这些数据在一定的操作过程中 ...