LEGO MindStorms EV3 を買ったので、まずは GyroBoy を組み立ててみた。

動かしてみる

早速、動かしてみたい!

倒立振子をするロポットの作り方は以下のチュートリアルに乗っている。

バランスをとりながら倒立するロポットは 2 種類あるみたい。

  • BALANCE3R
  • GyroBoy

チュートリアルでは BALANC3R の説明をしているけれども、 BALANCE3R をつくれるのは、LEGO MindStorms Home Edition なので、 私は、GyroBoy を作ることにした(わたしのは Education Edition)

組み立て方は以下のリンクから PDF がダウンロードできる。

出来上がったのは以下のロボット。かっこいい!組み立ての要領が悪く 5 時間かかった。

img

Python で倒立振子する

ev3dev-lang-python には、Balancer が提供さている。さすが。

開発の経緯

参考になったコード

ev3dev-lang-python にまーじされたコード

  • https://github.com/rhempel/ev3dev-lang-python/blob/d0625b5b1e1fdcdd69b7fa390695613a81191736/demo/BALANC3R

    #!/usr/bin/env python3

    import logging from ev3dev.GyroBalancer import GyroBalancer

    class BALANC3R(GyroBalancer): def init(self): GyroBalancer.init(self, gainGyroAngle=1156, gainGyroRate=146, gainMotorAngle=7, gainMotorAngularSpeed=9, gainMotorAngleErrorAccumulated=3)

    if name == ‘main': logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(levelname)5s: %(message)s’) log = logging.getLogger(name)

    log.info("Starting BALANC3R")
    robot = BALANC3R()
    robot.main()
    

    log.info(“Exiting BALANC3R”)

これを実施すると、RemoteControl が定義されていないということで、エラーする

LEGO MindStorms は リモコンで制御するためのセンサーがあるのだけれども、 教育版にはリモコンセンサはついていない。なので、以下のソースをいじって REMOTE CONTROL にかかわる部分を全部削除した!

さあこれでどうだろう・・・立ち上がった!うれしい。