2011年08月2日,3日,中村研で特別講義「マイクロマウスロボットの制御」が行われた.
- 対象:東京理科大学電気電子情報通信科の3回生2名
- 実験機:マイクロマウスロボット「pi:co」(株式会社アールティ),フルサイズ版1台,ハーフサイズ版1台
- 担当:福井
- 特別講義の最終目標:4x4迷路の外周を3周走り抜ける制御を実装すること
講義用資料
picoとは
- 構成
- *SH7125(ROM128K,RAM8K)
- *バッテリー
- *ギヤードDCモータ×2個
- *1方向エンコーダ×2個(アクチュエータ)
- *光センサー×4個(壁との距離を検知)
- *シリアル通信モジュール(プログラム書き込み・内部状態表示用)
- *LED(内部状態表示用)
- *ブザー(内部状態表示用)
- 回路図
- 機械
- *分解の写真を見て内部構造を確認する
- バッテリーの扱いを確認
- *充電法:充電器に刺すだけ.ランプが緑になったら充電完了
- *過放電の注意:コンセントを抜いた充電器にバッテリーを刺してはいけない.
picoのセットアップ
- インストール
- サンプルプログラム書き込みテスト
SHマイコンに慣れよう
- スイッチを使って,対応するLEDを光らせよう
- *スイッチ・LEDが生きていることを確認
- *スイッチのチャタリング現象を確認
- LEDでナイトライダーを作ろう
- *for文によるウェイト機能の確認
- シリアル通信によるprintf機能を確認しよう
- *タイマーによるウェイト機能の確認
- ブザーで音を鳴らそう
- *タイマーのコンペアマッチ機能の確認
内界情報のみを使ったロボット制御
無補正で動くなら制御を書く必要はない.本当に制御が必要か確認しよう.
- マイクロマウスをゆっくり直進させよう.
- 直進時のロータリーエンコーダ出力を確認しよう.
- *エンコーダ値N[ステップ]で,f(N)[mm]進むことを確認
- マイクロマウスを5[cm]直進させ停止させよう.また,停止後の目標値との誤差を示してみよう.
- *5cm進むには,5N/f(N)ステップ走って停止するようにすれば良い.
- マイクロマウスを左右に90度回転させよう.また,停止後の目標値との誤差を示してみよう.
- *車幅をW[mm]とすると,picoを,その場[rad]回転するには,とすると,picoを,その場[rad]回転するには,[mm]進めばよい.すなわち,[step]走ればよい.
- *その場で10回90度回転をさせて,ステップ数を調整
- 外周を走るプログラムを書いてみよう
- *3マス直進,90度回転を繰り返すプログラム
- *内界情報のみではうまく走れないことを確認
センサーモジュールの確認
- 【計測→モデル化→制御設計→実験】→【計測→モデル化→制御設計→実験】→・・・
計測~実験がワンセット.
- 壁が1[cm],2[cm],3[cm],....前方にあるときの壁センサの値を確認しよう.
- *Excelでプロットして,距離とセンサー値に連続性・単調増加性があることを確認
- *何故距離が近くなりすぎると,単調増加性が崩れるか考察
外界情報を使ったロボット制御
- 左右に壁があるときに,壁に衝突せず直進するようなプログラムを書こう.
- *線形近似系におけるPD制御理論の解説
- 前壁を使った位置決め制御を設計しよう.
- サーキットモード完成!周回時間を短くしてみよう.
当日の様子
クラシックサイズマウスの方は,標準で添付されているプロジェクトファイルを,ハーフサイズの方は,添付されているプロジェクトファイルを講義用に書き直したものを使った.