前言
本系列作为ROS笔记,所以内容来自http://wiki.ros.org网站。
14年工作时接触到FANUC工业机器人,从外观上来看,它应该准确的称作机器人类别里面的机械手臂(arm),它美中不足的是体型巨大(接触多了才知道相对欧美系列算单薄的),但拥有不可比拟的精度、速度、力量。后来又陆续接触到例如机器视觉(machine vision)、无人搬运车AGC(Automatic Guided Vehicle)等智能化的东西。再加上一些工作需求接触到了ROS,准备系统的来看一遍,几本国内的书内容都过于简单,所以决定从官网上开始吧,毕竟老外比较认真。
首先进入http://wiki.ros.org/是来自wiki.ros的对ROS的介绍:
ROS (Robot Operating System) provides libraries and tools to help software developers create robot applications. It provides hardware abstraction, device drivers, libraries, visualizers, message-passing, package management, and more. ROS is licensed under an open source, BSD license.
简单的说ROS是一个开源的机器人开发工具。之所以它能称为操作系统 (Operating System) 是因为它提供了非常全面的机器人开发功能,为开发机器人应用提供了服务,从而形成了一个类似操作系统的次级操作系统即机器人开发专用系统。
接着进入Install(http://wiki.ros.org/ROS/Installation)链接,这里介绍了如何将ROS安装到本地计算机。ROS有众多发行版,这里我们选择进入jada的安装(http://wiki.ros.org/jade/Installation)。如图,可以进一步的选择安装平台或者选择不同的机器人:
我们选择Ubuntu版本(http://wiki.ros.org/jade/Installation/Ubuntu)进入Ubuntu安装ROS Jade的安装教程。
1. 安装
1.1 配置Ubuntu
需要配置Ubuntu使其能够从软件仓库中下载“restricted”、“universe”、“multiverse”级别的软件。
1.2 设置source.list
设置Ubuntu电脑能够从ROS官方下载软件,因此要将ROS源添加到系统的源列表中(source.list)。使用以下命令:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latese.list '
解释一下:
sudo :使用root权限,大家都知道;
sh -c ‘xxx’ :sh是命令解释器,-c意思是执行xxx字符串的命令;这里的sh要区别./,sh没有权限问题,./要考虑文件的权限。
echo “xxx”:将xxx送到标准输出;>重定向,大家都知道的;
$:取变量的值,大家都知道;
leb_release -sc :取得当前发行版的别名,15.04是vivid;
因此以上shell就会将一条新源添加到 /etc/apt/sources.list.d/ros-latese.list中,为了区别其他软,ROS的源放在源目录(sources.list.d)中的源文件(ros-latese.list)中;
这里再深入一点,源的格式如下:
deb http://packages.ros.org/ros/ubuntu vivid main
//deb 或deb-src:代表了要下载的类型,是deb包还是deb源代码;
//http://packages.ros.org/ros/ubuntu:代表了ftp文件的位置;
//vivid :代表了运行平台代号;
//main:代表了软件类型限定,还可以是restricted、universe、multiverse等等;
1.3 设置用于验证安装包的key
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116
这是用于验证下载的deb包的秘钥,经过验证的包被认为是可信的。防止下载到错误或有病毒的安装包。
apt-key is used to manage the list of keys used by atp to authenticate packages.
1.4 安装ROS
由于上面刚刚添加了源,为了使得apt-get工具能够获得这些源的软件列表,需要更新一下。
sudo apt-get update //更新源的内容
ROS有很多不同的库和工具,根据不同需求ROS提供了4种安装组织形式:
1. Desktop-Full :
sudo apt-get install ros-jade-desktop-full //安装所有的库和工具
2.Desktop :
sudo apt-get install ros-jade-desktop //没有导航、仿真等工具
3.ROS-Base :
sudo apt-get install ros-jade-base //没有GUI工具
4.Individual Package :
sudo apt-get install ros-jade-PACKAGE //指定包的名字
可以使用下面的命令来寻找可用的ROS包:
sudo apt-cache search ros-jade //按tap好像没用,没输完可以直接回车
这样将会列出可用的ROS包。
1.5 初始化rosdep工具
rosdep是一个程序,它能够为编译源码和运行一些ROS的核心组件时方便地提供系统依赖。
所以在能够使用ROS之前,需要初始化rosdep。这个工作只需要在安装ROS时操作一次就可以。
sudo rosdep init
rosdep update
还没用过rosdep,但从安装时的一些信息来看,rosdep
工具的功能类似于apt
。
在执行rosdep init
后会生成一个/etc/ros/rosdep/sources.list.d/20-default.list
文件(类似apt的source.list文件)。
在执行rosdep update
时会根据此文件更新一些以后会用到的依赖关系(类似于rosdep update)。
1.6 环境变量设置
如果没有将ROS的环境变量添加到shell的启动配置文件中(~/.bashrc),那么每次打开shell都不能找到ROS的工具,如roscore、rosrun等等。那么就要手动执行添加环境变量的工作:
source /opt/ros/jade/setup.bash
将上面的添加环境变量脚本写入到shell的启动配置文件中(~/.bashrc)。那么每次打开shell都会自动添加环境变量。
echo "source /opt/ros/jade/setup.bash">> ~/.bashrc //启动脚本写到shell启动文件中
source ~/.bashrc //这使得当前shell的配置立即生效
如果系统中安装了多个ROS的版本,在切换不同的版本时需要重新配置环境变量。
1.7 安装rosinstall工具
rosinstall是一个单独发布的常用的ROS命令行工具(rosinstall is a frequently command-line tool in ROS that is distributed separately)。使用它可以方便的下载ROS包的源码树。
使用以下命令安装rosinstall:
sudo apt-get install python-rosinstall
1.8 Build farm 状态
Buile farm是一个在线构建服务器。
ROS Build farm是ROS生态系统的重要基础设施。它提供源和二进制包的构建,持续集成,测试和分析。
我们安装的一些ROS包都是由buile farm构建的。我们可以通过下面看到ROS包的构建状态:http://build.ros.org/;也可以查看指定包的构建状态:http://repositories.ros.org/status_page/ros_kinetic_default.html。
2. 教程
可以下载包的二进制文件或源码,使用一下命令:
sudo apt-get source ros-jade-desktop //下载源码
sudo apt-get download ros-jade-desktop //下载二进制文件