日々記録

情報系や工作系知識のアウトプット

屋外での自律移動ロボットシミュレーション環境のまとめ

屋外走行のシミュレーション環境

屋外走行ロボットのシミュレータとしていいものがないかなとがした記録。

結論: 

あんまちょうどいいものはない。

  • gazeboで頑張って歩行者やワールドを作りこむ
  • LGSVLかCARLAで、機体操作部分を自分でロボット対応に書き換える

あたりしか手がなさそう。

 

gazebo

開発者: OSRF

ゲームエンジン: 無し

githubスター数: 150

ROS標準のシミュレーション環境。

物理シミュレーション付きでホイールオドメトリの誤差なども取得できる。

利用シーンとしては屋外や広くても倉庫程度のものが多い。

環境を作りこむのが大変なのかな?多分。

 

gazeboで屋外環境を作りこんでいるものも一部ではある。

https://github.com/chapulina/dolly

 

ロボット自体の動作確認がメインで、歩行者や自動車を追加したシーンでのテスト、などは弱い。

 

CARLA

開発者: Intelなど出資が複数社

ゲームエンジン: Unreal Engine 4

githubスター数: 4k

Intelなど大御所が出資する、OSSとしては最大手と思われる自動運転シミュレータ。

UE4を使っているだけあって画面は綺麗。

専用のros_bridgeを利用してROSと接続可能。

トピック型はステアリング、アクセルなどロボットでなく自動車操作に特化している。

 

ドキュメントによるとvhicleモデルとしてバイクも使えるらしい。

それだったら2駆動輪ロボットも追加できるようにして欲しかったなぁ・・・。

 

参考: 

https://github.com/carla-simulator/ros-bridge

https://carla.readthedocs.io/en/latest/tuto_A_add_vehicle/#add-a-2-wheeled-vehicle

 

LGSVL

開発者: LG シリコンバレー研究所, Tier4など

ゲームエンジン: Unity

githubスター数: 1k

自動運転用のOSSとして有名なAutoware, Apollo対応のシミュレーション環境。

Autowareを開発するTier4では、LGSVLをシミュレーション環境として利用しているらしい。

ROSとの接続にはROS標準?のros_bridgeのwebsocketのノードを利用する。

roslaunch rosbridge_server rosbridge_websocket.launch

で普通に立ち上げるだけでOK。

 

ただし、機体操作のコマンドはAutoware用のメッセージ型になってしまう。

また、中身も自動車に特化している。

ROS標準のgeometry_msgs/Twistに変更できないかコードを追ってみたが、rosbrigdeのデータを取り込む処理で自動車専用のステア角度、アクセルなどのデータ構造に変換されていた。

物理シミュレーションの界面でも、ブレーキやギア状態を計算に利用している。

 

YoutubeにLGSVLでDuckieBotを走らせる動画が上がっていたので2駆動輪ロボット対応かと思って掘ってみたけど、2019.07のリリースでDuckieBot対応が削除されていました・・・。

 

※ ROS kineticでのrosbridge_websocketは標準でインストールされるpythonパッケージが間違っていて動かないので注意。下記でインストール。

sudo apt install ros-kinetic-rosbridge-suite

sudo pip2 uninstall autobahn |  sudo pip2 install autobahn

sudo pip2 uninstall txaio | sudo pip2 install txaio

 

 

 

参考: 

https://tech.tier4.jp/entry/2019/02/22/171052

https://github.com/lgsvl/simulator/blob/master/Assets/Scripts/Sensors/VehicleControlSensor.cs

https://github.com/lgsvl/simulator/releases/tag/2019.07

 

RoboSim

開発者: ZMP

ゲームエンジン: 不明(見た感じではUnity?)

githubスター数: 非OSS

 ZMPが最近公開した屋外ロボット用のシミュレータ。

歩行者なども追加できる模様。

利用は問い合わせ必要。