在這里我之前用的VM12安裝成功之后,仿真器機器人會有問題,故把電腦做成雙系統的形式來重新安裝;
環境:Ubuntu14.04 LTS 32bits
ROS版本:ROS Indigo
在學習本部分之后的內容,請先學習 beginner_Tutorials 和 learning_tf 的ROS 相關教程。
下面是安裝准備
1、在下載機器人程序包之前,我需要先安裝一些必要的軟件包。直接執行下面的命令進行安裝:
(注意:如果你還沒有使用 ROS 的國內鏡像網站,請先配置相關文件。將 ROS 的下載網站設置為國內鏡像網站。參考網站:http://blog.csdn.net/github_35160620/article/details/52337181,這里面有講:如何設置軟件源配置文件。)
sudo apt-get install -y ros-indigo-turtlebot-bringup \ ros-indigo-turtlebot-create-desktop ros-indigo-openni-* \ ros-indigo-openni2-* ros-indigo-freenect-* ros-indigo-usb-cam \ ros-indigo-laser-* ros-indigo-hokuyo-node \ ros-indigo-audio-common gstreamer0.10-pocketsphinx \ ros-indigo-pocketsphinx ros-indigo-slam-gmapping \ ros-indigo-joystick-drivers python-rosinstall \ ros-indigo-orocos-kdl ros-indigo-python-orocos-kdl \ python-setuptools ros-indigo-dynamixel-motor-* \ libopencv-dev python-opencv ros-indigo-vision-opencv \ ros-indigo-depthimage-to-laserscan ros-indigo-arbotix-* \ ros-indigo-turtlebot-teleop ros-indigo-move-base \ ros-indigo-map-server ros-indigo-fake-localization \ ros-indigo-amcl git subversion mercurial
ros-by-example包 提供了2個測試用的模擬機器人:TurtleBot 和 Pi Robot
2、在必要軟件安裝好之后,下載rbx1.
$ cd ~/catkin_ws/src $ git clone https://github.com/pirobot/rbx1.git $ cd rbx1 $ git checkout indigo-devel $ cd ~/catkin_ws $ catkin_make $ source ~/catkin_ws/devel/setup.bash $ rospack profile
在ROS By Example包中都是以rbx1開頭,使用如下命令
roscd rbx1 cd .. ls -F
3、為了能在一個模擬的機器人上測試我們的代碼,下面來安裝模擬器
1)什么是rviz
rviz : The ROS Visualization Tool ,即機器人操作系統3D可視化工具。它的作用就是:一個虛擬世界,用來模擬機器人在現實世界的運行效果。簡單的說它就是ROS的一個模擬器軟件。
2)安裝rviz
(如果在上面已經安裝完成了rviz,那么你現在可以跳過:安裝rviz)
新開一個終端,執行下面的命令:
$ sudo apt-get install ros-indigo-arbotix-* $ rospack profile #更新一下ROS內部軟件包 #rospack profile功能類似於使用sudo apt-get update更新Linux軟件包一樣。它的功能是:更新ros軟件包
安裝完成。
3)舉例測試
開兩個終端,來運行下面的命令。第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}}'
這條命令運行后的效果:就是讓機器人做畫圓運動:
注意: “ : ” 后面必須要加 空格。如果你不加空格,效果就是下面這個樣子:
要停止轉動,按下 Ctrl-C 在同一個終端窗口,或者發布空 Twist 消息:
$ rostopic pub -1 /cmd_vel geometry_msgs/Twist '{}'
4、例子講解
運行的第一條命令: $ roslaunch rbx1_bringup fake_turtlebot.launch
是:啟動一個 TurtleBot 機器人的模型。 如果你想使用 Pi Robot 模型,就不執行這條命令,執行:
$ roslaunch rbx1_bringup fake_pi_robot.launch
。 總之,你想啟動哪個機器人模型,就執行對應的命令。
Turtlebot機器人 : ————————————————————————-Pi 機器人 :
5、為什么要使用rviz?
你不需要用一個實際的機器人開始ROS學習。ROS包含了許多在虛擬環境中運行的機器人包,所以你可以在擁有真實世界的機器人前,在虛擬環境中測試您的程序。
在ROS中有3個可以模擬機器人的模擬器軟件:
- Gazebo
- Stage
- ArbotiX(就是RVIz)
你可以任選一個:
Gazebo:可以模擬出完整的現實世界,但是軟件使用起來比較復雜。
Stage:簡單的2D模擬器,可以管理多個機器人和各種傳感器,比如激光傳感器。
ArbotiX:它就是Rviz,它跟Gazebo軟件比較,它不能模擬物理現象和沒有傳感器反饋。
在ROS提高篇教程,我們就使用rviz,因為它簡單,並且我們目前不需要有物理現象在本教程。(在ROS教程實戰篇中,我們將學習Gazebo,Gazebo軟件對CPU的處理速度要求比較高)。
對應現在來說,我們知道這些就可以了。