ROS 在 ubuntu 的安装步骤:http://wiki.ros.org/groovy/Installation/Ubuntu
在执行到
sudo apt-get update这步时,有可能失败。提示:
W: 无法下载 gzip:/var/lib/apt/lists/partial/packages.ros.org_ros_ubuntu_dists_precise_main_binary-i386_Packages Hash 校验和不符
这种尴尬的局面,可以通过使用goagent代理来解决。
1. 开启goagent代理
安装及配置教程http://code.google.com/p/goagent/
注册开通,配置好后,下载goagent,解压,注意给文件夹增加执行权限。
简单的方法是 chmod 777 goagent-* -R
Ubuntu下 特别需要注意要配置下运行环境:
sudo apt-get install Python
sudo apt-get install python-dev
sudo apt-get install python-appindicator
sudo apt-get install python-vte
2. 运行Goagent
执行命令 如: goagent-goagent-291bebf/local/proxy.py
注: python脚本只要直接输入脚本名就可以运行了(若运行不了,则有可能未设置执行权限,参照上一条)
3. 另外开启一个终端,更新源:
执行命令: sudo apt-get -o Acquire::http::proxy="http://127.0.0.1:8087/" update
执行过程可能还会提示错误,但是只要ros相关的项目更新通过就行。
4.继续安装ROS
sudo apt-get install ros-groovy-desktop-full
sudo apt-get install python-rosinstall python-rosdep
rospack find turtlesim
rosls turtlesim
roscd turtlesim
pwd
echo $ROS_PACKAGE_PATH
cd
mkdir -p dev/rosbook
echo "export ROS_PACKAGE_PATH=~/dev/rosbook:${ROS_PACKAGE_PATH}" >.> ~/ .bashrc
~/ .bashrc
rosrun turtlesim turtlesim_node
rosnode info turtlesim
1、 增加下载源(增加ubuntu版的ros数据仓库,即下载源)(通用指令适合任何版本的ros)
- sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
2、 设置key,实现安全从数据仓库下载未被修改版,故设置key增加可信度
- sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net --recv-key 0xB01FA116
- wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
可以增加本地本国的源,例如再sourcelist里增加163和sohu,这样没必要从外网下载,国内下载速度很快
3 、更新源
- sudo apt-get update
第二步: 安装合适版本的ROS
1、完全安装ros(2d、3d、rviz等)
- sudo apt-get install ros-indigo-desktop-full # ros和desktop间的indigo(靛蓝)为 ros版本号
2、 安装rosdep
- sudo rosdep init
- rosdep update
3 、user的terminal命令行环境配置,即找到可执行命令。
- source /opt/ros/indigo/setup.bash #这句是关键,但只影响当前打开的terminal
下面两条将终身影响,即每次打开terminal都能找到ros的相关命令。
- echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc #修改
- source ~/.bashrc #使能
- 或者:
- source /opt/ros/indigo/setup.bash
- 切换到主目录下。。。。
- source .bashrc #使能
4 、辅助工具rosinstall安装
- sudo apt-get install python-rosinstall
后记:
1、环境
操作系统:Ubuntu 12.04
ROS版本:Hydro
操作系统介绍:ROS 渔龟的首选平台为 Ubuntu 12.04 LTS (Precise)发行版,而ROS 渔龟对其他Linux发行版,Mac OS X,Android以及Windows也有不同程度的支持
ROS版本介绍:ROS Hydro(渔龟)是第七个ROS发行版, 发行时间为2013年9月4日。升级了众多ROS程序包,使其为可支持新的catkin底层系统,并修正并改进了ROS的核心组件。许多工具也得到了升级,如: rviz 和 rqt。与此同时,使用了官方标准的依赖包,而非创建我们自己的专用版本。实现这项改进的函数库有PCL,Stage和Gazebo,以及其它众多曾被ROS社区单独定制过的函数库。另外,ROS 渔龟可以更好的与Gazebo集成
以下所有的教程都是在hydro这个版本上的运行。
2、安装
第一步:配置软件仓库
配置Ubuntu软件仓库以允许系统安装"restricted"、"universe"和"multiverse"这三种组件类型的软件
第二步:添加Sources.list
作用:配置电脑使其能够接收来自packages.ros.org的软件。
目前ROS Hydro软件包只支持Precise、Quantal和Raring这三个版本的ubuntu操作系统。
在命令行下输入:
建议选择国内镜像地址,可以提高下载速度,毕竟full安装模式需要下载将近1GB的文件。
1、 国外镜像
Ubuntu 12.04 (Precise)
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu precise main" > /etc/apt/sources.list.d/ros-latest.list'
Ubuntu 12.10 (Quantal)
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu quantal main" > /etc/apt/sources.list.d/ros-latest.list'
Ubuntu 13.04 (Raring)
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu raring main" > /etc/apt/sources.list.d/ros-latest.list'
2、 国内镜像
Ubuntu 12.04 (Precise)
sudo sh -c 'echo "deb http://www.cosrobotics.org/mirror-cn-sh/ros/ubuntu precise main" > /etc/apt/sources.list.d/ros-latest.list'
Ubuntu 12.10 (Quantal)
sudo sh -c 'echo "deb http://www.cosrobotics.org/mirror-cn-sh/ros/ubuntu quantal main" > /etc/apt/sources.list.d/ros-latest.list'
Ubuntu 13.04 (Raring)
sudo sh -c 'echo "deb http://www.cosrobotics.org/mirror-cn-sh/ros/ubuntu raring main" > /etc/apt/sources.list.d/ros-latest.list'
3、更加详细的镜像源
第三步:添加keys
命令:sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net:80 --recv-key 0xB01FA116
第四步:安装
1、升级你的软件包列表,确保是最新
命令:sudo apt-get update
2、安装版本选择
我们选择的是apt-get的方式安装,而不是从源码安装,因为使用这些安装包比通过编译源码来安装更加高效,所以推荐你在Ubuntu系统下使用这种方式安装。
当然有些人是劝不住的,如果你想自己体验一下源码自己编译的话,给你:传送门。
最后你也会回来用安装包的方式安装的,
ROS_Hydro一共有四种安装方式:
第一种桌面完整版安装:包含ROS核心组件、rqt、rviz、机器人通用库、2D/3D模拟器、导航以及2D/3D感知,这个也是推荐的安装方式。
命令:sudo apt-get install ros-hydro-desktop-full
第二种桌面精简版安装: 包含ROS核心组件、rqt、rviz、机器人通用库
命令:sudo apt-get install ros-hydro-desktop
第三种ROS核心安装: 包含ROS核心组件、 编译工具以及通信相关的函数库,无GUI工具。
命令:sudo apt-get install ros-hydro-ros-base
第四种独立安装: 还有一种单独安装某个ROS程序包的方式,这个比较自由,需要什么装什么。(用需要安装的程序包名称替换破折号后的的“PACKAGE”):
命令:sudo apt-get install ros-hydro-PACKAGE
配合此安装模式可使用
命令:apt-cache search ros-hydro
查看可供安装的ROS程序包
综上所述:建议大家使用桌面完整版安装的方式。
第五步:初始化rosdep
功能:rosdep能够让你在编译程序包源码时轻松地安装编译所依赖的库,并运行一些必要ROS核心组件。
命令:sudo rosdep init
这行命令使用结束后会提示你输入:
命令:rosdep update
记住这行不能使用sudo的形式,会导致权限错误。
第六步:环境配置
功能:每次启动终端的时候自动配置ROS变量,而不需要每次启动终端的时候使用,类似:source /opt/ros/版本/setup.bash的命令配置一次ROS环境。
命令:
echo "source /opt/ros/hydro/setup.bash" >> ~/.bashrc
source ~/.bashrc
备注:如果你的电脑装了多个ROS,几个系统共存,只需要更改:echo "source /opt/ros/版本/setup.bash" >> ~/.bashrc 命令中的版本就行了。
当然你如果只是想切换当前终端环境下的ROS版本,只需要运行。
命令:source /opt/ros/hydro/setup.bash
第七步:安装rosinstall
功能:rosinstall是一个与ROS发行版无关的常用命令行工具。它只需一个命令就可以让你轻松地下载ROS程序包所需的资源树。
命令:sudo apt-get install python-rosinstall
ROS安装结束后
安装结束后
我们需要确认一下是否设置好环境变量
命令:export |grep ROS
出现类似如图3所示,就说明设置正常,否则运行第六步。
3、建立工作空间
我们开始创建一个catkin 工作空间,打开一个新终端,输入。
命令: mkdir -p ~/catkin_ws/src
命令:cd ~/catkin_ws/src
命令:catkin_init_workspace 初始化工作空间
命令:cd ~/catkin_ws/(或者输入cd ..)
命令:catkin_make 编译
输入ls后我们发现在catkin_ws目录下多了两个文件夹build和devel,其中在devel文件夹里面都是类似*.sh文件。我们可以和上面第六步一样使用source命令,将这些文件中的任何一个都可以设置在ROS工作环境的最顶层。
我们source一下当前的工作环境
命令:source devel/setup.bash
此时我们已经安装好ROS—Hydro并且建立好一个工作空间。
录应该能看到'build'和'devel'这两个文件夹。在'devel'文件夹里面你可以看到几个setup.*sh文件。source这些文件中的任何一个都可以将当前工作空间设置在ROS工作环境的最顶层。关于这些想了解更多请阅读catkin文档。接下来首先source一下新生成的setup.*sh文件:
$ source devel/setup.bash
到此你的工作环境已经搭建完成,接下来可以继续学习 《ROS文件系统教程》。


一、ROS系统架构
第一种: 根据ROS系统代码的维护者、分布来区分,也就是一种笼统的分级方式。
(1)main:核心部分。
参与: Willow Garage公司和一些开发者设计、提供以及维护。
功能:提供了一些分布式计算的基本工具、整个ROS的核心部分的程序编写。
(2)universe:全球范围的代码
参与:不同国家的ROS社区组织、个人开发和维护。
功能:各种库代码,如OpenCV、PCL等;库的上一层是从功能角度提供的代码,如人脸识别,他们调用下层的库;最上层的代码是应用级的代码,让机器人完成某一确定的功能。ROS之所以流行离不开各大开源社区的支持,正是因为有了他们ROS才更加完善。
第二种:根据ROS文件系统层级进行分类,分成三个层级,文件系统级,计算图级,开源社区级。
二、ROS系统层级介绍
1、文件系统级:由ROS内部构成,文件结构,核心文件组成。
Packages(包): Package是ROS系统中最底层最基本的组织,里面包包含节点、ROS依赖库、数据套、配置文件、第三方软件、或者任何其他逻辑构成。package包含一个 manifest.xml 文件目录,功能包清单Manifest也就是Manifest.xml提供关于功能包,许可信息和包之间依赖关系,编译标志等信息。
Stacks(堆): Package的集合,比Package这个概念高一级别。Stack包含一个 Stack.xml 文件的目录。功能包集清单Stack manifect也就是Stack.xml提供关于功能包集的清单,包括它的许可信息和Stack之间依赖关系。
Packages和Stacks两者关系:
备注:ROS的编译系统有两种,一种叫做catkin,另外一种叫做rosbuild,rosbuild是ROS传统的编译系统,从最初沿用至今,但面临被抛弃的状态。catkin源于ROS fuerte这个版本,当时只是被一小部分人使用,在后一个版本groovy开始被正式使用,用于取代rosbuild。为什么要用catkin取代rosbuild?当然是因为catkin比rosbuild好很多,在实际应用过程中会感受到的 。基于catkin编写的package叫做wet package,基于rosbuild编写的package叫做dry package,在ROS相关的问答里面会常常看到这种说法的。
以后的教程都将使用:Catkin
2、计算图级:进程与系统之间的通信
计算图是ROS处理数据的一种点对点的网络形式,ROS建立一个连接到所有进程的,系统中的任何节点都可以访问这个网络,通过这个网络与其他节点进行数据交换,同时将自身数据发送到网络上。计算图级有几个很重要的概念:节点(Node)、消息(Message)、话题(Topic)、服务(Service),
节点Nodes:一个节点即为一个可执行文件,它可以通过ROS与其它节点进行通信,节点可以发布或接收一个话题,也可以提供或使用某种服务。
消息Messages:消息是一种ROS数据类型,每一个消息都是一个严格的数据结构,标准的数据类型(整型,浮点型,布尔型等等)都是支持的,同时也支持原始数组类型,消息可以包含任意的嵌套结构和数组,用于订阅或发布到一个话题。
话题Topics:节点可以发布消息到话题,也可以订阅话题以接收消息。
服务Service:ROS的通讯模式是基于话题的发布/订阅模型,服务是在发布主题时,正在发送的数据能够以多对多的方式交互。
节点管理器Master:ROS名称服务 ,用于节点的名称注册和查找可以帮助节点找到彼此。
3、开源社区级:全世界不同国家的ROS社区组织、个人共享的知识算法和代码,正是因为这种分布式的结构,ROS可以迅速发展,软件仓库中包的数量指数级增加。
本文的参考网站是:http://wiki.ros.org/hydro/Installation/Ubuntu,下面是安装的操作步骤。(提供参考,有错误请留言)
1、配置 Ubuntu 软件源
配置你的Ubuntu软件源以允许系统安装"restricted"、"universe"和"multiverse"这三种组件类型的软件。
2、设置source.list
配置你的电脑使其能够接收来自packages.ros.org的软件。目前ROS Hydro中的debian软件包只支持Precise、Quantal和Raring这三个版本的ubuntu操作系统。
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu precise main" > /etc/apt/sources.list.d/ros-latest.list'
3、添加ROS源的keys到本地信任列表
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
4、安装
1)、首先,确保你的软件包列表是最新的。
sudo apt-get update
2)、在ROS中有很多各种不同的函数库和工具。为方便安装,我们提供了四种不同默认配置的安装版本。你也可以单独安装某个程序包。推荐安装Desktop-Full Install: (Recommended)。下载的东西比较多,安装时间有点长。
sudo apt-get install ros-hydro-desktop-full
5、初始化rosdep
在使用ROS之前,你需要先初始化rosdep。rosdep能够让你在编译程序包源码时轻松地安装编译所依赖的库,并运行一些必要的ROS核心组件。
sudo rosdep init
rosdep update
6、环境配置
为方便起见,我们可以在每次打开终端时让系统自动配置好ROS环境变量,方法如下:
echo "source /opt/ros/hydro/setup.bash" >> ~/.bashrc source ~/.bashrc
如果你安装了不止一个ROS版本,那么你应该在~/.bashrc中只source你当前所使用的ROS版本对应的setup.bash文件。如果你只是想切换当前终端环境下的ROS版本,那么你可以运行:
source /opt/ros/hydro/setup.bash
7、安装 rosinstall
rosinstall是一个与ROS发行版无关的常用命令行工具。它只需一个命令就可以让你轻松地下载ROS程序包所需的资源树。你可以使用如下命令安装rosinstall:
sudo apt-get install python-rosinstall
已经安装完成了,现在你就可以测试是否可以使用了。