ふるお〜と!- FullAuto

AI・ロボットが普及しBI(ベーシックインカム)が早急に実現されることを願う元ニートのブログ

ふるお〜と!-FullAuto

Ignition Gazebo Plugin作成の手引き

環境

Ubuntu 20.04
Ignition Citadel

共有ライブラリを作ってみる1

公式

Ignition Gazebo: Create System Plugins

を参考に
とにかく共有ライブラリを作ってみる

この通りに作成すると、

CMake Error at CMakeLists.txt:3 (ign_find_package): Unknown CMake command "ign_find_package".

最初のビルドがつまづきました。

共有ライブラリを作ってみる2

ign-gazebo/examples/plugin/system_plugin at ign-gazebo4 · ignitionrobotics/ign-gazebo · GitHub

こちらにPluginのサンプルがある。

$ mkdir build 
$ cmake ..
$ make

このサンプルがあるign-gazeboをクローンすると、うまくビルドできます。

Ignition Gazeboのpluginsはパスのデフォルトでは

/usr/lib/x86_64-linux-gnu/ign-gazebo-3/plugins

です。
ということで先程、生成したlibSampleSystem.soをそのディレクトリへコピペします。

$ cd build
$ sudo cp libSampleSystem.so /usr/lib/x86_64-linux-gnu/ign-gazebo-3/plugins

もしくは実行時にプラグインパスの上書きをします。

$ export IGN_GAZEBO_SYSTEM_PLUGIN_PATH=`pwd`/build

SDF書き換え

$ cd /usr/share/ignition/ignition-gazebo3/worlds

default.sdfにプラグインを追加します

$ sudo gedit default.sdf

追記内容

     <plugin
      filename="libSampleSystem.so"
      name="sample_system::SampleSystem">
    </plugin>
    <plugin
      filename="libSampleSystem.so"
      name="sample_system::SampleSystem2">
    </plugin>

実行

$ ign gazebo default.sdf

ちなみにメッセージレベルを4にすることによってignmsgを表示することができます。

$ ign gazebo -v4 default.sdf

参考

Ignition Gazebo: Create System Plugins

ign-gazebo/src/systems at main · ignitionrobotics/ign-gazebo · GitHub

https://ignitionrobotics.org/api/gazebo/3.0/migrationplugins.html