#概要
mruby は,組み込みシステム向けの軽量なRuby言語処理系ですが,ロボットを動かすこともできます.
一方で,TOPPERSの箱庭WGでは,単体ロボットシミュレータをを提供しており,このシミュレータをmrubyで実行できるようになりましたので,ご紹介します.
なお,本実現にあたっては,yamanekkoさん,および軽量Rubyフォーラムさんの技術的なご支援が非常に大きく,大変感謝しております.
特に,以下の記事/gitリポジトリのREADMEが下支えになっております.
#インストールおよびシミュレーション実行手順
これまで,箱庭/単体ロボットシミュレータは,Unityおよびマイコンシミュレータ Athrill を実行するようにしておりましたが,インストール手順が煩雑化してきましたので,docker化対応を始めています.docker化により,大分手順がシンプルになってきました.今回のmruby版のシミュレーション環境もdocker化しましたので是非おためしください.
インストール手順および実行方法は,以下で公開しております.
#mruby の制御プログラム
mruby の制御プログラムはこんな感じです.
count = 0
flag = true
while flag
log("count:#{count}\r\n")
case count
when 0..200
leftMotor.power = 5
rightMotor.power = 5
when 201..400
leftMotor.power = -5
rightMotor.power = -5
when 401..600
leftMotor.stop
rightMotor.stop
armMotor.power = 4
when 601..800
leftMotor.stop
rightMotor.stop
armMotor.power = -4
else
flag=false
end
count+=1
EV3RT::Task.sleep(20)
end
log("mruby end\r\n")
時間経過に従って,ロボット前進⇒後進⇒ロボットアームの上げ下げをやってます.
※ロボットがたったこれだけのコードで制御できてしまうなんて,素敵です.
詳細は,こちらを参照ください.
#デモ
では,実際にmrubyでシミュレーションしたデモをお見せします.