SimulinkとGazeboで協調シミュレーションを行う

ここを参考に。
www.mathworks.com

MatlabでGazeboPluginとコマンドを打つと、GazeboPlugin.zipというフォルダが生成されるので、これをUbuntuに移動して解凍する。
自分は~/Downloadsに配置した。

./buildPlugin.shを実行してビルドする

ビルドが終わると最終的にexport/lib/ 配下に以下のライブラリが生成される。
libGazeboCoSimCustom.so libGazeboCoSimServer.so libmsgproto.so
libGazeboCoSimPlugin.so libGazeboCoSimTransport.so

テスト
exportフォルダに移動する。
$ cd ~/Downloads/GazeboPlugin/export

Gazeboの起動
(初回の起動はWorldのダウンロードで時間がかかる)

$ gazebo ../world/multiSensorPluginTest.world --verbose

Simulinkサンプルを起動する

>> open_system("performCoSimulationWithGazebo")

Simlin上のGazeboのポートを14581に設定する。
ちなみにこの14581というポート番号はWorldファイル(今回はmultiSensorPluginTest.world)で指定されている
f:id:seinzumtode:20201123155226p:plain
f:id:seinzumtode:20201123154107p:plain

world/multiSensorPluginTest.world(ポート番号14581が記載)

(中略)
   <plugin name="GazeboPlugin" filename="lib/libGazeboCoSimPlugin.so"><portNumber>14581</portNumber></plugin>

Parallel desktopで14581をポートフォワーディングした
f:id:seinzumtode:20201123155036p:plain

Simulinkでシミュレーションを実行する
動いた
f:id:seinzumtode:20201123154538p:plain