SSブログ

2輪倒立振子ロボット(NXTway-GS)を試す [LEGO]

少し間があいてしまったが、Lego Mindstorms NXTによる制御のお勉強を再開した。
まずは最終到達目標の倒立車を試してみようと思い、こちらを再現してみた。

lego26.jpg

とはいっても、そう簡単に事は進まなかった。一応手順を書いてみると以下の通り。
●ロボットの作成
 ・このページの組み立て手順書を見て作成
 ・NXTには、この大きなタイヤは含まれていないので、RCXのを流用
 ・ただしNXT標準のタイヤでも可能とのこと(コンパイル時に指定をする)
 ・2ヶ月ほど前に買ったジャイロセンサーを初めて使ってみた

●PCへ開発環境をインストール
 ・このページにしたがって、Cygwin、ARMコンパイラをインストール
 ・またベースとなるnxtOSEKもCygwinのユーザディレクトリに展開しておく

●NXT側にファームウエアをインストール
 ・いままでleJOSをインストールしていたが、NXT BIOSを上書きインストールした


そして、お決まりの「hello world」を試した後は、NXTway-GSをコンパイルしてNXTにダウンロードしてみた。
しかし直立しない。しかも2輪とも全速で回転し続けている。そこでソースコードを少し直しては実行してみたり、開発環境をいじってみたり、その他いろいろすったもんだが始まった。結局この過程が後々役に立つのだが、詳しい経緯は省略しておく。

注意点としては、
●NXT側ファームウェアは「拡張NXT標準ファームウェア」を使った方がいい
最初NXT BIOSでやっていたのだが、一度アップロードするとUSBを認識しなくなる。その都度、NXTファームに戻し、そしてNXT BIOSを入れ直せば復活するのだが、プログラムの修正のたびにこんなことはやっていられない。

●きちんと直立させた状態で起動する
傾いた状態だと、制御が機能しない。それだけでなく、全速でタイヤが回転する。つまり、最初うまく行かなかったのは、単に起動のさせ方が悪かっただけだった。ただ、制御不能時にはモーターを止めるような仕組みすべきだと思うので、可能なら改善してみたい。

というわけで一応動作したことはしたが、まだ完全ではない。このロボットには、センサやモーターの状態を記録してBluetooth経由でPCに送る機能があり、これ用のPCアプリも提供されている。しかしうまくいかない。停止時にはBluetoothのリンクは確立できているものの実行時には切れてしまっているようだ。まだまだやることは多い。
 

nice!(0)  コメント(2)  トラックバック(0) 

nice! 0

コメント 2

ナイグの星

ETロボコンに出ようと、NXTを買って、線の上を走るものを作り、ブルーツツースでデータ収集ができるようにしました。本日、ロボコンが2輪倒立振子ロボットで行われることを知り、貴君のブログを発見しました。早速、ジャイロセンサーを注文しました。非常に参考になりました。どうもありがとうございました。PS3のコントローラの話も参考になります。
by ナイグの星 (2009-02-07 22:29) 

電子男

少しはお役に立ててなによりです。
2009年のETロボコンも年間スケジュールが発表されたようですね。
私もとりあえず説明会から参加してみようと思っています。

ロボコンでは倒立制御のルーチンは提供されたもの(nxtOSEKのもの)を使うようですが、上位を目指すのなら倒立制御から改良した方がいいらしいです。そのためにはこのルーチンの開発に使ったMATLABが必要とのこと(サイバネット社説明員談)で、なかなか個人や小グループで上位を目指すのは困難な面もあるようです。

話は変わりますが、その後nxtOSEKも幾度かアップデートされているので、本文に書いたことも古くなっているかもしれません。
by 電子男 (2009-02-09 09:53) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。