ROS 提高篇-002 — rviz 的安裝和使用
我使用的虛擬機軟件:VMware Workstation 11
使用的Ubuntu系統:Ubuntu 14.04.4 LTS
ROS 版本:ROS Indigo
注意:
1 . ROS 提高篇這個專欄的教學有門檻。
2 . 如果你沒有學習前面的教程,請想學習前面的 beginner_Tutorials 和 learning_tf 的ROS 相關教程。
一 . 什么是 rviz:
rviz : The 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教程實戰篇中,我們將學習Gazebo,Gazebo軟件對CPU的處理速度要求比較高)。
對應現在來說,我們知道這些就可以了。
下一節,我們就來介紹:A Mobile Base (移動平台,或叫:基座、基底)。