情報科学講究 「倒立振子」作成過程の報告 2001年2月6日 3班(粉川■・日野■・永澤■) 目標 (i) 振子を制止状態から振り 出して振幅を大きくしてゆく (ii) (i) からさらに振子がぐる ぐる回転する状態にもってゆ き,それを保つ (iii) 倒立状態を保つ ただし振子は台車の水平移 動によってのみ動くものとす る。 ハードウェアの作成(1) 回転センサ→精度が悪い(ギアなしだと 16段階、ギアをかませるとすぐに値が狂 う) 光センサも思った以上に精度が悪い 結論としては回転センサの方を採用 ハードウェアの作成(2) 工夫した点 大きいタイヤを使用することにした。 台車とコントローラを別にした。 なるべく車体が軽く、それでいて頑丈にした ハードウェアの写真 ソフトウェアの作成 プログラムを作成するにあたって、 言語はNQCを使用することにした。コンパイラに はRCX Command Centerを使用した。 倒立振子の二つの実現方法がある 制御工学 人工知能 我々は後者の方を採用 振り子の位置の測定 振り子の位置を右図 のように分割 一回転(センサが16 か-16)したら値を初 期化(0にする)。 今後はこの図を元に 説明する 回転状態の保持 回転センサ初期化 →車を適当に前進させる →振子の位置が正であるか負であるかを判定 正であれば①ヘ、負であれば②へ ①→振子が負になり始めた瞬間を検知 →青なら後退、赤なら前進 →②へ ②→振子が正になり始めた瞬間を検知 →青なら前進、赤なら後退 →①へ 回転維持で工夫した点 センサの位置には依存せず、振り子の動 きだけを見ている。 倒立状態の保持(1) 始めに回転させる 12時(8or-8)を超えたら倒立の保持に移行 する 3時(-4or12)か9時(4or12)を超えたら回転 の保持に移行する 倒立状態の保持(2) 7,-7,9,-9 6,-6,10,-10 5,-5,11,-11 8,-8 と位置を4つにわけて考える 倒立状態の保持(3) モータの動かす時間は一定とする 位置に応じてそこから「12時を超える最も 遅い速度」を探して学習させる 位置に応じて、学習した結果の速度でモー タを動かす 学習方法 最初はモータを適当な速さで動かす 12時を超える→その位置の速さを+1 12時を超えない→その位置の速さを-1 倒立維持の問題点 センサの値に大きく依存しているアルゴリ ズムである 回転から倒立に移るときに振り子が速すぎ て倒立維持に移行してもすぐに3時、9時 を通過して回転に戻ってしまう 改良すべき点 速度は8段階しかないのでさらに時間も可 変にして学習させる ギアをかませて測定位置を増やす。
© Copyright 2024 ExpyDoc