3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

docker使って,mruby でロボット制御をシミュレーションする(TOPPERS/箱庭)

Last updated at Posted at 2021-03-13

#概要
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でシミュレーションしたデモをお見せします.

demo.gif

3
3
1

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
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?