安裝 Gazebo

如果你決定要馬上模擬自己的機器人,那就趕緊來安裝 Gazebo 吧!其實
Gazebo
是一個跨平台的獨立軟體,所以你可以選擇安裝在自己慣用得平台上。但由於我們要讓 ROS
能連得上 Gazebo 做各種模擬,所以這篇只講解在
Linux
上安裝的過程。更多詳細的安裝流程可以參考 Gazebo 官方安裝教學。

內容一覽

  1. 確認應該安裝哪一版本的 Gazebo
  2. 在 Linux 上安裝 Gazebo
    1. 一行安裝
    2. 一步步安裝
  3. 安裝 gazebo_ros_pkgs
    1. 第一種:Debian 安裝
    2. 第二種:自己編譯安裝
  4. 測試整合了ROS的Gazebo
    1. Rosrun啟動Gazebo
    2. Roslaunch啟動Gazebo
    3. 用rostopic 檢查Gazebo
    4. 用rosservice確認Gazebo

1. 確認應該安裝哪一版本的 Gazebo

在安裝之前,請先確認哪一個版本才能支援自己目前使用的 ROS 版本。ROS
只支援稍微舊一點的版本,但儘管說舊一點的版本,其實對機器人模擬上,也已經夠用了。請查看 這裡
來了解自己應該安裝哪一版本的 Gazebo
例如說,我正在使用 ROS Indigo,則需要安裝的 Gazebo 版本是 2.x 開頭。 

2. 在 Linux 上安裝 Gazebo

筆者所使用的環境為 Linux Ubuntu Precise 14.04。先將獨立的
Gazebo
安裝起來,在安裝 gazebo_ros,將
ROS
Gazebo 連結起來。

2.1 一行安裝

1. 打開你的終端機,依照你目前使用的 ROS 版本,安裝支援的 Gazebo 版本(請參考這篇的Installing Gazebo 小節)。例如如果是 ROS Indigo 的話,所能支援的 Gazebo 就是2.x 版本,請輸入:

$ sudo apt-get install gazebo2

這樣應該就安裝起來了,可以直接在終端機上開分頁,執行看看:

$ gazebo

你也可以

2.2 一步步安裝

1. 首先讓你的電腦接受來自  packages.osrfoundation.org. 的下載:

$ sudo sh -c ‘echo “deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list’

2. 加上金鑰:

$ wget http://packages.osrfoundation.org/gazebo.key -O – | sudo apt-key add –

3. 執行以下安裝:

$ sudo apt-get update

$ sudo apt-get install gazebo[你適用的版本,例如說 2]

# 如果之後要開發自己的插件(plugin)的話,請再多安裝一個包裹

$ sudo apt-get install libgazebo[你適用的版本]-dev

4. 檢查有沒有安裝起來:

$ gazebo

檢查你有沒有安裝正確版本的 Gazebo,查看有沒有將 Gazebo 安裝到正確的路徑下:

$ which gzserver

$ which gzclient

如果安裝正確,第一行輸入進去,會回覆:

/usr/local/bin/gzserver

/usr/local/bin/gzclient

第二行則會回覆:

/usr/bin/gzserver>/usr/bin/gzclient

3. 安裝 gazebo_ros_pkgs

3.1 第一種:Debian 安裝

ROS Hydro 後,Gazebo_ros 有很大的變動,可能是為了實際使用上,不要讓獨立的
gazebo
ROS 版本的Gazebo 名稱上發生混淆。從Hydro 後的 debian 安裝方法,若你使用:

ROS Hydro

$ sudo apt-get install ros-hydro-gazebo-ros-pkgs ros-hydro-gazebo-ros-control

ROS Indigo

$ sudo apt-get install ros-indigo-gazebo-ros-pkgs ros-indigo-gazebo-ros-control

ROS Jade

目前2015Jade 並沒有釋出 gazebo-ros-control  封包。詳情請關注https://github.com/ros-controls/ros_control/issues/201

$ sudo apt-get install ros-jade-gazebo-ros-pkgs

3.2 第二種:自己編譯安裝

首先,確認你已經安裝了ROS,架設好 Workspace,並在~/.bashrc 中 source
這個工作空間的路徑。大致上catkin_worspace 的安裝,可以參考這裡。
接著,我們要來克隆 Git 上面的檔案庫,並在本地端編譯。首先,確認 Git 已經安裝,其安裝方法如下:

$ sudo apt-get install git

安裝好後,在終端機移到自己的工作空間/src下,將克隆後的檔案庫放在這裡:

cd ~/catkin_ws/src

若你使用 ROS Jade

$  git clone https://github.com/ros-simulation/gazebo_ros_pkgs.git -b jade-devel

若你使用 ROS Indigo

$  git clone https://github.com/ros-simulation/gazebo_ros_pkgs.git -b indigo-devel

若你使用 ROS Hydro

$  git clone https://github.com/ros-simulation/gazebo_ros_pkgs.git -b hydro-devel

檢查是否有缺少的相依程式庫

$ rosdep update

$ rosdep check –from-paths . –ignore-src –rosdistro jade

然後安裝上缺少的程式庫:

$ rosdep install –from-paths . –ignore-src –rosdistro jade -y

如上所述,ROS Jade 尚未包含 gazebo-ros-control 封包,所以先暫時忽略不編譯:

$ touch gazebo_ros_pkgs/gazebo_ros_control/CATKIN_IGNORE

回到工作空間最上層路徑,編譯:

$ cd ~/catkin_ws/

$ catkin_make

4. 測試整合了ROS的Gazebo

請確認你有在~/.bashrcsource
ROS系統路徑和自己的工作空間 catkin_workspace 的路徑。 
現在,你可以用 roslaunchrosrun或者rosservice的方式啟動Gazebo

4.1 Rosrun啟動Gazebo

首先,在終端機上輸入:

$ roscore

再開一個分頁,輸入

$ rosrun gazebo_ros gazebo

或者把 client 和 server 一起啟動:

$ rosrun gazebo_ros gazebo

也可以各別啟動,例如只開 server

$ rosrun gazebo_ros gzserver

和只開 client

$ rosrun gazebo_ros gzclient

另外,也可以只開Server,用 GDB 進入除錯模式:

$ rosrun gazebo_ros debug

4.2 Roslaunch啟動Gazebo 

你可以輸入以下來載入一個空白的世界:

$ roslaunch gazebo_ros empty_world.launch

4.3 用rostopic 檢查Gazebo

輸入 

$ rostopic list

應該會看到運作中的 topics,如下:

/gazebo/link_states>/gazebo/model_states>
/gazebo/parameter_descriptions>/gazebo/parameter_updates>
/gazebo/set_link_state

/gazebo/set_model_state

表示gazebo_ros_pkgs 運作正常。

4.4 用rosservice確認Gazebo 已安裝

也可以用 rosservice 確認 Gazebo有沒有正常運作,如下輸入:

$ rosservice list

應該會返回:

/gazebo/apply_body_wrench>
/gazebo/apply_joint_effort>/gazebo/clear_body_wrenches>
/gazebo/clear_joint_forces>/gazebo/delete_model>
/gazebo/get_joint_properties>/gazebo/get_link_properties>
/gazebo/get_link_state>/gazebo/get_loggers>
/gazebo/get_model_properties>/gazebo/get_model_state>
/gazebo/get_physics_properties>/gazebo/get_world_properties>
/gazebo/pause_physics>/gazebo/reset_simulation>/gazebo/reset_world>
/gazebo/set_joint_properties>/gazebo/set_link_properties>
/gazebo/set_link_state>/gazebo/set_logger_level>
/gazebo/set_model_configuration>/gazebo/set_model_state>
/gazebo/set_parameters>/gazebo/set_physics_properties>
/gazebo/spawn_gazebo_model>/gazebo/spawn_sdf_model>
/gazebo/spawn_urdf_model>/gazebo/unpause_physics>
/rosout/get_loggers

/rosout/set_logger_level

表示 Gazebo 運作正常。


 

Referece:
http://wiki.ros.org/gazebo_ros_pkgs

http://gazebosim.org/tutorials?tut=install_ubuntu&cat=install

http://gazebosim.org/tutorials?cat=connect_ros

相關主題文章:

更多精采文章,請回目錄瀏覽!

對「安裝 Gazebo」的一則回應

發表留言