ROS 提高篇-002rviz 的安装和使用


我使用的虚拟机软件:VMware Workstation 11
使用的Ubuntu系统:Ubuntu 14.04.4 LTS
ROS 版本:ROS Indigo


注意:
1 . ROS 提高篇这个专栏的教学有门槛。
2 . 如果你没有学习前面的教程,请想学习前面的 beginner_Tutorialslearning_tfROS 相关教程。


一 . 什么是 rviz

rvizThe ROS Visualization Tool ,即机器人操作系统3D可视化工具。它的作用就是:一个虚拟世界,用来模拟机器人在现实世界的运行效果。简单的说它就是ROS的一个模拟器软件。

光光用语言去描述什么是rviz,我觉得大家都不会真正的理解,下面我是一个例子来告诉你:什么是rviz

在演示例子前,我先来讲讲如何安装rviz:


二 . 安装 rviz

(如果你看了上一节,并且运行了里面的命令,你就已经安装完成了rviz,所以你现在可以跳过:安装rviz)

新开一个终端,执行下面的命令:

$ sudo apt-get install ros-indigo-arbotix-*
$ rospack profile                               #更新一下ROS内部软件包
#rospack profile功能类似于使用sudo apt-get update更新Linux软件包一样。它的功能是:更新ros软件包

安装完成。

下面测试一下刚刚安装的 Rviz 模拟器:


三 . 一个例子:

开两个终端,来运行下面的命令。第1条命令执行后没有什么实际的效果,第2条打开 rviz 软件,你就可以看到效果。
(在第一个命令的时候,你可以运行 TurtleBot 机器人,也可以选择运行 Pi Robot 机器人。)

$ roslaunch rbx1_bringup fake_turtlebot.launch     #或者 roslaunch rbx1_bringup fake_pi_robot.launch
$ rosrun rviz rviz -d `rospack find rbx1_nav`/sim.rviz #注意:这条指令中的'`'是键盘左上角'Esc'键下面的那个键

命令执行完,会打开一个窗口: 这就是 Rviz 模拟器 :

这里写图片描述


为了测试模拟,打开另一个终端并运行以下命令,这个命令会引起模拟机器人以逆时针圆周运动

$ rostopic pub /cmd_vel geometry_msgs/Twist -r 10 '{linear: {x:  0.2, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0.5}}' 

这条命令运行后的效果:就是让机器人做画圆运动:

这里写图片描述 这里写图片描述

注意:: ” 后面必须要加 空格。如果你不加空格,效果就是下面这个样子:

$ rostopic pub  /cmd_vel geometry_msgs/Twist -r 10 '{linear:{x:0.2, y:0, z:0}, angular:{x:0, y:0, z:0.5}}'
Usage: rostopic pub /topic type [args...]

rostopic: error: Argument error: while scanning a plain scalar
  in "<string>", line 1, column 10:
    {linear:{x:0.2, y:0, z:0}, angular:{x:0,  ... 
             ^
found unexpected ':'
  in "<string>", line 1, column 11:
    {linear:{x:0.2, y:0, z:0}, angular:{x:0, y ... 
              ^
Please check http://pyyaml.org/wiki/YAMLColonInFlowContext for details.

要停止转动,按下 Ctrl-C 在同一个终端窗口,或者发布空 Twist 消息:

$ rostopic pub -1 /cmd_vel geometry_msgs/Twist '{}'

OK,我们已经通过了一个具体的例子,实际的看到了rviz 的运行。下面我具体的讲解一下上面的例子:

四 . 例子讲解:

运行的第一条命令: $ roslaunch rbx1_bringup fake_turtlebot.launch 是:启动一个 TurtleBot 机器人的模型。 如果你想使用 Pi Robot 模型,就不执行这条命令,执行:
$ roslaunch rbx1_bringup fake_pi_robot.launch 。 总之,你想启动哪个机器人模型,就执行对应的命令。

下面,我截个图,看看这2个机器人模型都长什么样子:

Turtlebot机器人 : ————————————————————————-Pi 机器人 :

这里写图片描述


五 . rviz是用来干什么的,为什么要使用rviz

你不需要用一个实际的机器人开始ROS学习。ROS包含了许多在虚拟环境中运行的机器人包,所以你可以在拥有真实世界的机器人前,在虚拟环境中测试您的程序。

ROS中有3个可以模拟机器人的模拟器软件:

  • Gazebo
  • Stage
  • ArbotiX(就是RVIz)

你可以任选一个:

Gazebo:可以模拟出完整的现实世界,但是软件使用起来比较复杂。
Stage:简单的2D模拟器,可以管理多个机器人和各种传感器,比如激光传感器。
ArbotiX:它就是Rviz,它跟Gazebo软件比较,它不能模拟物理现象和没有传感器反馈。

ROS提高篇教程,我们就使用rviz,因为它简单,并且我们目前不需要有物理现象在本教程。(在ROS教程实战篇中,我们将学习GazeboGazebo软件对CPU的处理速度要求比较高)。

对应现在来说,我们知道这些就可以了。



下一节,我们就来介绍:A Mobile Base (移动平台,或叫:基座、基底)