LoginSignup
18
8

More than 3 years have passed since last update.

ROS を使って Unity の仮想車両をマイコンシミュレータで制御する

Last updated at Posted at 2019-07-28

概要

ROS を使って Unity の仮想車両をマイコンシミュレータ上のプログラムで制御してみました.

自動運転制御系の開発で,車両制御をビジュアライズする手法としてはよくある感じなんですが,今回,TOPPERS の オープンソースを組み合わせて構築することに成功しましたのでご紹介します.

今回作成した構成は下図の通りで,青色のものが TOPPERS オープンソースです.残りは,ROS と Unity なので,いずれもフリーで利用可能です.

image.png

2019/08/02-03の京都オープンソースカンファレンスの TOPPERS ブースにてデモ/説明させて頂きました.ご来場いただいた方々,ありがとうございました!
★ここで作成した成果は,ETロボコンにも応用可能ですし,
★自分のノルマでもありますので,年内には一般公開します.
★乞うご期待ください!

以下,デモでお見せした内容をまとめます.

Unityの登場物

まず,Unity上の登場物は以下の通りです.

車両

今回作成した車両は下図のとおりで,見栄えはまだパッとしませんが,「走る」,「曲がる」,「止まる」は制御可能にしています.

image.png

ちなみに,この車両は以前,下記でご紹介したものを発展させたものです.

障害物センサ

車両の先頭部分には障害物センサを付けました.青色のキューブです(浮いてますが・・).
前方20m先の障害物を検出します.

image.png

ライントレースセンサ

将来的にETロボコンでも使えるようにライントレースセンサを付けました.
下図の通り,車両の下にカメラをつけてテクスチャの色を数値変換してセンシングしています.

image.png

仮想マイコン

車両にマイコンをアタッチしている感をわかりやすくするために,マイコンのテキスチャ付けました(単なる遊び心です^^;).

image.png

走行コース

シンプルに四角状の道路を作りました.

image.png

障害物

道路上にド~ンと壁を置きました.

image.png

あと,移動する邪魔者も置いてます.方向キーで自由自在に移動できます.

image.png

マイコンシミュレータの登場物

マイコンシミュレータ

マイコンシミュレータは,最近売り出し中の TOPPERS/athrill を使っています.TOPPERS の RTOS を動作させやすいです.athrillの紹介は下記記事を参照ください.

TOPPERS/RTOS

車両制御アプリケーションをマイコン上で動作させるためのリアルタイムOSとしては,TOPPERS/ASP を利用しています.

TOPPERS/mROS

マイコン上で ROS を利用するためのありがたいミドルウェアとしては,TOPPERS/mROS を利用しています.

※mROSについて詳しく知りたい方は,本家サイトを参照ください.
https://qiita.com/takasehideki/items/7d783ecd605dcee29ee0
https://qiita.com/m_ksg/items/0060a8738e6a34a0f237

センサ/アクチュエータ

センサ/アクチュエータ処理は,基本的には ROS トピックの出版/購読で実現しています.
トピック情報としては下図のような感じです.

image.png

vehicle_controller ノードが,車両制御指示用のトピックを出版しています.
vehicle_sensor ノードは,車両のセンサ情報を購読しています.

rosbridge_websocket が中間にいますが,Unity と マイコンシミュレータの間に rosbridge が存在しているためです.

車両制御

車両制御としては,まだあまり高度なことはやっていません.
シミュレーション実行時に直進開始させ,障害物検出したら一時停止させるくらいの制御です.
※将来的には MATLAB/Simulink で作成したコードを使ってみたいと考えています.

デモ

論より証拠,デモをお見せします.

mROS_unity_CAR2.gif

18
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
8