ROS的安装、测试及环境配置介绍

说明:文章所有内容皆截选自实验楼教程【ROS机器人操作系统的安装、配置与初级教程】,该教程制作者有12年机器人系统仿真与控制学习和研究经历,教程总共20节内容,文章截选的是教程前两节内容;

ROS简介:

ROS (Robot Operating System, 机器人操作系统)是一个适用于机器人的开源操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数。在某些方面ROS相当于一种“机器人框架”。

ROS的安装和测试

学习须知:

在进入ROS机器人操作系统课程之前,需要熟练掌握下列基础(在实验楼都有免费对应课程,需先完成这类课程,才能更好的学习和使用ROS):

  1. 新手指南之玩转实验楼
  2. Linux基础入门
  3. Vim编辑器
  4. Git实战教程
  5. GDB简明教程
  6. 跟我一起来玩转Makefile
  7. 数据结构(新版)
  8. C语言入门
  9. Python语言入门

1 系统更新

  • update
$ sudo apt-get update
  • upgrade
$ sudo apt-get upgrade

2 安装 ROS

此处输入图片的描述

依据网页:http://wiki.ros.org/cn/indigo/Installation/Ubuntu 进行配置,具体步骤如下:

2.1 添加 sources.list

  • 配置你的电脑使其能够安装来自 packages.ros.org 的软件。 ROS Indigo 仅 支持 Saucy (13.10) 和 Trusty (14.04)。
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

注:强烈建议使用国内或者新加坡的镜像源,这样能够大大提高安装下载速度。

  • USTC (China)
$ 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'

2.2 添加 keys

$ sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
实验楼

2.3 安装

  • 首先,确保你的Debian软件包索引是最新的:
$ sudo apt-get update
  • 桌面完整版安装:(推荐)
$ sudo apt-get install ros-indigo-desktop-full

2.4 初始化 rosdep

在开始使用ROS之前你还需要初始化rosdep。rosdep可以方便在你需要编译某些源码的时候为其安装一些系统依赖,同时也是某些ROS核心功能组件所必需用到的工具。

$ sudo rosdep init
$ rosdep update
实验楼

2.5 环境设置

如果每次打开一个新的终端时ROS环境变量都能够自动配置好(即添加到bash会话中),那将会方便得多:

$ echo "source /opt/ros/indigo/setup.zsh" >> ~/.zshrc
$ source ~/.zshrc

2.6 安装 rosinstall

rosinstall 是ROS中一个独立分开的常用命令行工具,它可以方便让你通过一条命令就可以给某个ROS软件包下载很多源码树。要在ubuntu上安装这个工具,请运行:

$ sudo apt-get install python-rosinstall

3 ROS测试

测试已经安装好的ROS是否可以正常使用。

3.1 测试 roscore

打开一个终端测试roscore是否能正常启动,使用ROS必须保证roscore运行:

$ roscore
实验楼

3.2 启动 turtlesim

启动一个turtlesim节点并通过键盘控制其运动,新开启一个终端,执行以下命令:

$ rosrun turtlesim turtlesim_node

然后,再开启一个终端:

$ rosrun turtlesim turtle_teleop_key
实验楼

3.3 启动 rviz

新开启一个终端输入:

$ rviz
实验楼

3.4 启动 Gazebo

新开启一个终端输入:

$ gazebo
实验楼

这时就可以正常使用ROS了。测试完毕。

4 学习ROS

根据你的学习风格和偏好,你可以采用两种方式来学习ROS:

开始学习教程 - 立刻进入和开始使用ROS http://wiki.ros.org/cn/ROS/Tutorials
概览 - 通读ROS和它的功能的这个概览 http://wiki.ros.org/cn/ROS/Introduction
有关ROS架构的更多详细信息,请参考ROS核心文档 http://wiki.ros.org/cn/ROS

  • 找答案
    有三个地方去寻找你的问题的答案。第一个就是本维基。请尝试右上角的“搜索”( Search)功能。

如果你不能找到你的问题的解决方法,就尝试搜索 http://answers.ros.org 或者邮件列表归档。或者在 http://answers.ros.org/questions/ask/ 上提出问题。

查看支持页面获取更多信息 http://wiki.ros.org/Support

  • 找代码
    想知道是否已经有ROS软件包满足你的需要吗?http://www.ros.org/browse/list.php 这个浏览软件包的工具可以让你搜索一些有用的软件包。

你也可以通过浏览公开的ROS代码库的这个列表来寻找做相似工作的群组 http://wiki.ros.org/RecommendedRepositoryUsage/CommonGitHubOrganizations

5 ROS机器人操作系统官方教程使用说明

5.1 功能包配置

全部示例功能包源码文件夹:

/opt/row_ws/src
实验楼

5.2 环境配置(依赖安装)

row_ws目录下输入:

$ rosdep install --from-paths src -iy

所有配置完成后显示如下:

#All required rosdeps installed successfully

5.3 编译功能包

ros_ws目录下输入:

$ catkin_make -j1 -l1
实验楼

如果没有遇到错误,就可以使用功能包中的教程进行实验了。
在.zshrc中添加:

source /opt/ros_ws/devel/setup.zsh

或者使用:

$ echo "source /opt/ros_ws/devel/setup.zsh" >> ~/.zshrc
实验楼

5.4 测试

5.4.1 turtlesim绘制五边形

示例源码在/opt/ros_ws/src/common_tutorials/。

分别在不同的终端打开:

$ roscore
$ rosrun turtlesim turtlesim_node
$ rosrun turtle_actionlib shape_server
$ rosrun turtle_actionlib shape_client
实验楼

5.4.2 TF2

示例源码在/opt/ros_ws/src/geometry_tutorials/。

$ roslaunch turtle_tf2 turtle_tf2_demo.launch
$ rviz

注意:rviz需要正确配置

实验楼

实验楼

5.4.3 URDF

示例源码在/opt/ros_ws/src/urdf_tutorials/。

$ roslaunch urdf_tutorial display.launch 
实验楼

5.4.4 Rviz 可视化

示例源码在/opt/ros_ws/src/visualization_tutorials/。

$ roscore
$ rosrun visualization_marker_tutorials points_and_lines
$ rviz

注意:rviz需要正确配置

实验楼
$ roscore
$ rosrun interactive_marker_tutorials pong
$ rviz

注意:rviz需要正确配置

实验楼

5.4.5 导航 navigation

示例源码在/opt/ros_ws/src/navigation_tutorials/。

实验楼

实验楼

ROS环境配置

相关资料:ROS环境配置

1 安装ROS

在开始学习这些教程之前请先按照ROS安装说明完成安装,在线环境中实验楼已安装了ROS

如需本地安装,请参考安装文档

注意: 如果你是使用类似apt这样的软件管理器来安装ROS的,那么安装后这些软件包将不具备写入权限,当前系统用户比如你自己也无法对这些软件包进行修改编辑。当你的开发涉及到ROS软件包源码层面的操作或者在创建一个新的ROS软件包时,你应该是在一个具备读写权限的目录下工作,就像在你当前系统用户的home目录下一样。

2 管理环境

在安装ROS期间,你会看到提示说需要 source 多个 setup.*sh 文件中的某一个,或者甚至提示添加这条source命令到你的启动脚本里面。这些操作是必须的,因为ROS是依赖于某种组合空间的概念,而这种概念就是通过配置脚本环境来实现的。这可以让针对不同版本或者不同软件包集的开发更加容易。

如需深入了解,请参考环境变量

如果你在查找和使用ROS软件包方面遇到了问题,请确保你已经正确配置了脚本环境。一个检查的好方法是确保你已经设置了像ROS_ROOTROS_PACKAGE_PATH这样的环境变量,可以通过以下命令查看:

$ export | grep ROS

或者

$ printenv | grep ROS
实验楼

如果发现没有配置,那这个时候你就需要source某些setup.*sh文件了。

ROS会帮你自动生成这些setup.*sh文件,通过以下方式生成并保存在不同地方。

  • 通过类似apt的软件包管理器安装ROS软件包时会生成setup.*sh文件。
  • 在rosbuild workspaces中通过类似rosws的工具生成。
  • 在编译 或 安装 catkin 软件包时自动生成。

注意: 在所有教程中你将会经常看到分别针对rosbuild 和 catkin的不同操作说明,这是因为目前有两种不同的方法可以用来组织和编译ROS应用程序。一般而言,rosbuild比较简单也易于使用,而catkin使用了更加标准的CMake规则,所以比较复杂,但是也更加灵活,特别是对于那些想整合外部现有代码或者想发布自己代码的人。关于这些如果你想了解得更全面请参阅catkin或者rosbuild

如果你是通过 ubuntu 上的 apt 工具来安装 ROS 的,那么你将会在/opt/ros/<distro>/目录中看到setup.*sh文件,然后你可以执行下面的source命令:

$ source /opt/ros/<distro>/setup.zsh

请使用具体的ROS发行版名称代替<distro>

比如你安装的是ROS Indigo,则上述命令改为:

$ source /opt/ros/indigo/setup.zsh

在每次打开终端时你都需要先运行上面这条命令后才能运行ros相关的命令,为了避免这一繁琐过程,你可以事先在.bashrc文件(初学者请注意:该文件是在当前系统用户的home目录下。)中添加这条命令,这样当你每次登录后系统已经帮你执行这些命令配置好环境。这样做也可以方便你在同一台计算机上安装并随时切换到不同版本的ROS(比如fuerte和groovy)。

此外,你也可以在其它系统平台上相应的ROS安装目录下找到这些setup.*sh文件。

3 创建ROS工作空间

catkin
这些操作方法只适用于ROS Groovy及后期版本,对于ROS Fuerte及早期版本请选择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这些文件中的任何一个都可以将当前工作空间设置在ROS工作环境的最顶层,想了解更多请参考catkin文档。接下来首先source一下新生成的setup.*sh文件:

$ source devel/setup.zsh

要想保证工作空间已配置正确需确保ROS_PACKAGE_PATH环境变量包含你的工作空间目录,采用以下命令查看:

实验楼
$ echo $ROS_PACKAGE_PATH
/home/<youruser>/catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks
实验楼

到此你的工作环境已经搭建完成。

最后

实验楼教程【ROS机器人操作系统的安装、配置与初级教程】制作者有12年机器人系统仿真与控制学习和研究经历,该教程总共20节内容:

如果想要查看完整的教程内容,点击【ROS机器人操作系统的安装、配置与初级教程】即可~

推荐阅读更多精彩内容