• このエントリーをはてなブックマークに追加

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

スポンサードリンク

動かしてみる

早速、動かしてみたい!

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

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

  • BALANCE3R
  • GyroBoy

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

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

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

IMG_2200R.jpg

Python で倒立振子する

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

開発の経緯

参考になったコード

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

#!/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 にかかわる部分を全部削除した!

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