如果你決定要馬上模擬自己的機器人,那就趕緊來安裝 Gazebo 吧!其實
Gazebo 是一個跨平台的獨立軟體,所以你可以選擇安裝在自己慣用得平台上。但由於我們要讓 ROS
能連得上 Gazebo 做各種模擬,所以這篇只講解在
Linux 上安裝的過程。更多詳細的安裝流程可以參考 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
目前(2015年)Jade 並沒有釋出 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
請確認你有在~/.bashrc中source
了ROS系統路徑和自己的工作空間 catkin_workspace 的路徑。 現在,你可以用 roslaunch、rosrun或者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/set_model_state |
表示gazebo_ros_pkgs 運作正常。
4.4 用rosservice確認Gazebo 已安裝
也可以用 rosservice 確認 Gazebo有沒有正常運作,如下輸入:
$ rosservice list |
應該會返回:
/gazebo/apply_body_wrench> /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
相關主題文章:
更多精采文章,請回目錄瀏覽!
HI
在4.3的部分
rostpic list
應該是 rostopic list喔~
讚讚
筆誤已修正!!感謝!
讚讚