机器人操作系统 ROS支持多种操作系统,但正式支持的只有Ubuntu,而对其它版本仅提供安装方法。因此说明Ubuntu及与Ubuntu兼容的Linux Mint一般可以采用 apt-get的方式进行安装,可以根据自己的Ubuntu的具体版本下载相应的ROS版本进行安装。
1、配置软件库: Ubuntu repositories。
在桌面点击“Ubuntu Software”,选择“software & update”,选中 “restricted,” “universe,” and “multiverse” ,如下图所示。
通常也会设置“download from”,可以选择一个国内的软件源,如:http://mirrors.aliyun.com/ubuntu, 当然也可以设置为其他,或者让系统自动选择最好的。更改以后,选择“reload”更新软件。“reload”需要一定的时间,一定要耐性等待,如果中途手动停止,后面下载的时候回出现错误,导致安装失败。
2、设置软件源:sources.list。
配置你的电脑使其能够安装来自 packages.ros.org的软件包。目前最新版本的 ROS Kinetic 只支持Ubuntu 15.10和 Ubuntu 16.04 。
sudo sh -c 'echo"deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main"> /etc/apt/sources.list.d/ros-latest.list'
3、设置 keys
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80--recv-key0xB01FA116
1、更新软件
sudoapt-get update
2、ROS中有很多各种函数库和工具,我们提供了四种默认安装方式,你也可以单独安装某个特定软件包。
• 桌面完整版安装:(推荐) 包含ROS、rqt、rviz、通用机器人函数库、2D/3D仿真器、导航以及2D/3D感知功能。
sudo apt-getinstall ros-Kinetic-desktop-full
• 桌面版安装: 包含ROS、rqt、rviz以及通用机器人函数库。
sudo apt-getinstall ros-Kinetic-desktop
• 基础版安装: 包含ROS核心软件包、构建工具以及通信相关的程序库,无GUI工具。
sudo apt-getinstall ros-Kinetic-ros-base
• 单个软件包安装: 你也可以安装某个指定的ROS软件包(使用软件包名称替换掉下面的PACKAGE):
sudo apt-getinstall ros-Kinetic-PACKAGE
例如:sudo apt-getinstall ros-Kinetic-slam-gmapping
因为ROS更新比较快,如果是想学习的话,最好安装最新的版本,如果是要使用现成的机器人工具包的话,可以先查看一下你所选择的机器人工具包支持哪一个版本的ROS,然后再安装。
要查找可用软件包,请运行:
apt-cachesearch ros-Kinetic
3、初始化 rosdep
在开始使用ROS之前你还需要初始化rosdep。rosdep可以方便在你需要编译某些源码的时候为其安装一些系统依赖,同时也是某些ROS核心功能组件所必需用到的工具。
sudorosdep initrosdep update
4、环境配置
如果每次打开一个新的终端时ROS环境变量都能够自动配置好(即添加到bash会话中),那将会方便很多:
echo"source /opt/ros/Kinetic/setup.bash">> ~/.bashrcsource~/.bashrc
5、安装 rosinstall
rosinstall 是ROS中一个独立分开的常用命令行工具,它可以方便让你通过一条命令就可以给某个ROS软件包下载很多源码树。要在ubuntu上安装这个工具,请运行:
sudo apt-getinstall python-rosinstall
1、管理环境
在安装ROS期间,你会看到提示说需要 source 多个setup.*sh文件中的某一个,或者甚至提示添加这条’source’命令到你的启动脚本里面。这些操作是必须的,因为ROS是依赖于某种组合空间的概念,而这种概念就是通过配置脚本环境来实现的。这可以让针对不同版本或者不同软件包集的开发更加容易。
如果你在查找和使用ROS软件包方面遇到了问题,请确保你已经正确配置了脚本环境。一个检查的好方法是确保你已经设置了像ROS_ROOT和ROS_PACKAGE_PATH这样的环境变量,可以通过以下命令查看:
$export| grep ROS
如果发现没有配置,那这个时候你就需要’source’某些’setup.*sh’文件了。
如果你是通过ubuntu上的 apt 工具来安装ROS的,那么你将会在’/opt/ros//’目录中看到setup.*sh文件,然后你可以执行下面的source命令:
source /opt/ros//setup.bash
在每次打开终端时你都需要先运行上面这条命令后才能运行ros相关的命令,为了避免这一繁琐过程,你可以事先在.bashrc文件(该文件是在当前系统用户的home目录下。)中添加这条命令,这样当你每次登录后系统已经帮你执行这些命令配置好环境。这样做也可以方便你在同一台计算机上安装并随时切换到不同版本的ROS(比如fuerte和groovy)。
2、创建ROS工作空间
catkin rosbuild
下面我们开始创建一个catkin 工作空间:
$ mkdir -p ~/catkin_ws/src$ cd ~/catkin_ws/src
即使这个工作空间是空的(在’src’目录中没有任何软件包,只有一个CMakeLists.txt链接文件),你依然可以编译它:
$ cd ~/catkin_ws/$ catkin_make
catkin_make命令在catkin
工作空间中是一个非常方便的工具。如果你查看一下当前目录应该能看到’build’和’devel’这两个文件夹。在’devel’文件夹里面你可以看到几个setup.*sh文件。接下来首先source一下新生成的setup.*sh文件:
$sourcedevel/setup.bash
要想保证工作空间已配置正确需确保ROS_PACKAGE_PATH环境变量包含你的工作空间目录,采用以下命令查看:
$ echo$ROS_PACKAGE_PATH/home//catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks
到此工作环境已经搭建完成。
运行小乌龟
首先打开一个终端运行如下命令:
source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash
(这里要说明,因为我的电脑之前在配置启动项的时候,并未成功,所以每一个终端窗口都要运行上述的两天的命令,才可以运行)
运行终端下的 roscore 命令启动主节点服务器。
此时主节点服务器已经启动,接下来可以运行节点
打开新的终端,同样运行上述的两条命令 之后 输入 rosrun turtlesim turtlesim _ node
这样子之后ROS的标志——小乌龟就显示出来了。但是此时它还不能动,只能静静的呆在那里,接下来的一条命令,可以让它动起来,打开一个新的终端窗口并执行以下命令。将显示下面消息,并执行turtlesim功能包中的turtle_teleop_key。如果您按下该终端窗口上的方向键(←,→,↑,↓),您将看到乌龟按照图3-6右侧所示的方向键移动。您必须在终端窗口中输入键盘。这看似只是一个简单的仿真,但实体机器人也可以通过这种方式进行远程控制。
运行rqt_graph功能包的rqt_graph
在新的终端窗口中执行rqt_graph命令,这将启动rqt_graph功能包的rqt_graph节点。其结果是当前正在运行的节点(程序)的信息图,如图3-7所示。
rqt_graph节点以GUI形式显示关于当前正在运行的节点的信息。圆圈表示节点,正方形表示话题。可以看到,箭头从/teleop_turtle节点开始,通往/turtlesim。这表示两个节点正在运行并且这两个节点之间正在发生消息通信。并且/turtle1/cmd_vel是turtle1话题的子话题,是两个节点之间的话题的名称,意味着在teleop_turtle节点中通过键盘输进来的速度命令通过话题将消息发送给turtlesim。换句话说,使用先前执行的两个节点,将键盘命令传送到机器人仿真器。
1、http://wiki.ros.org/cn/jade/Installation/Ubuntu
2、http://wiki.ros.org/cn/ROS/Tutorials/InstallingandConfiguringROSEnvironment