Gazeboとは
ODE(Open Dynamics Engine)などの物理エンジンを使ってロボットシミュレーションできる環境。ROSにデフォルトで入ってる。
インストール方法はROSの公式を参照。Ubuntu14系ならROS Indigo、16系ならROS Kineticが良いらしいので注意。僕は16.04だったのでKinetic。
それから、UbuntuデフォルトのPythonと相性があるらしくて、pyenvならpyenv global system
でデフォルトに戻しておいた方が良さそう。(?)
Sampleを動かそうとしたところ
サンプルとしてRRBotという2軸ロボットのデータを動かしてみる。
参考1
参考2
どっちもGazeboのチュートリアルに沿ってるのでほぼ同じ手順。
モデルダウンロード
cd ~/catkin_ws/src/
git clone https://github.com/ros-simulation/gazebo_ros_demos.git
cd ..
catkin_make
ROSで表示&関節動かせる
roslaunch rrbot_description rrbot_rviz.launch
Gazeboで表示&シミュレーション
roslaunch rrbot_gazebo rrbot_world.launch
ところがここで、Gazeboでロボットが表示されない(読み込みエラー)という問題が生じた。
エラーはこんな感じ。
IOError: [Errno 13] Permission denied: '/home/oginom/.ros/rosdep/sources.cache/index'
[urdf_spawner-4] process has died [pid 3743, exit code 1, cmd /opt/ros/kinetic/lib/gazebo_ros/spawn_model -urdf -model rrbot -param robot_description __name:=urdf_spawner __log:=/home/oginom/.ros/log/dd9eb0e6-8257-11e8-b2e9-e8b1fce8910d/urdf_spawner-4.log].
log file: /home/oginom/.ros/log/dd9eb0e6-8257-11e8-b2e9-e8b1fce8910d/urdf_spawner-4*.log
解決
とりあえずググったところ、同じエラー発見。
sudo rosdep init
rosdep update
を実行してみましょう、と書いてある。
initの方はすでにされてます、て言われて、updateの方をしたところ、
Failed to write cache file: [Errno 13] Permission denied: '/home/ogi/.ros/rosdep/source
s.cache/a4b3c8956ab7a3e6d293ba33b57fac42799e69e6.pickle.tmp.VWwTpR'
Try running 'sudo rosdep fix-permissions'
とでてきた。ので、
sudo rosdep fix-permissions
としたら解決。rosdep update
してroslaunch rrbot_gazebo rrbot_world.launch
すると、無事表示されて重力でぶらーんってなった。