LEGO MindStorms EV3 を買ったので、まずは GyroBoy を組み立ててみた。
動かしてみる
早速、動かしてみたい!
倒立振子をするロポットの作り方は以下のチュートリアルに乗っている。
バランスをとりながら倒立するロポットは 2 種類あるみたい。
- BALANCE3R
- GyroBoy
チュートリアルでは BALANC3R の説明をしているけれども、 BALANCE3R をつくれるのは、LEGO MindStorms Home Edition なので、 私は、GyroBoy を作ることにした(わたしのは Education Edition)
組み立て方は以下のリンクから PDF がダウンロードできる。
出来上がったのは以下のロボット。かっこいい!組み立ての要領が悪く 5 時間かかった。
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 にかかわる部分を全部削除した!
さあこれでどうだろう・・・立ち上がった!うれしい。