Transcript 基本機能
要求分析
要求仕様
マインドマップ
・提供されていた部品で走行体を組立てて、その走行対を競技フィール
ドにある格チェックポイントおよび障害物(難所)を通過させ、制限時間内
でゴールまで走らせるようにファームウェアを作ること。
・本ファームウェアは、OSをJSPとし、
倒立制御が提供される
libnxtway_gs_balancer.aライブラリ
を利用する上、コース攻略C/C++プロ
グラムである
基本機能
ライントレーシング
外乱光除去
距離計算
・ライントレーシングは競技フィールドの黒線に沿って走行体を走ら
せる処理である。
・ライントレーシングするために、PID制御を利用し、黒線の中央
を目標として走行対を辿らせる。
・PID制御は走行体の旋回量(turn)を求める。
・黒線から飛出しすぎを防ぐため、旋回量と前進量
(forward)を下図のように関係特性を設けて、前進量を求め
る。
・灰色検知:ライントレーシング中の一定時間を経過しても光セン
サーが黒閾値を検知しないと、灰色として判断する
・外乱光により光センサーの誤検知
が発生するので、まいまい式との
対策を適用する。
・20ミリ秒毎にLEDを点滅させ、点
灯時のセンサー値と点滅時のセンサー
値の差を求めて地面の状態を判
断する。
・コース攻略するため、色々な所に
走行距離を求める事が必要なの
で、計算式は下記のように述べる:
光度
時間
センサー値
差
外乱光
forward
100
差
50
光センサー値:
30
|turn|
時間
プログラムで読取る外乱光
除去後値(40ミリ秒毎)
時間
距離右 距離左
2
距離右 半径 角度時点[t ] (距離左も同様 )
距離
角度時点[t ] 角度時点[t 1] 角速度 t
t 時点[t ] 時点[t 1]
・角速度の
値は
角速度×Δt libnxtway_
gs_balanc
半径
er.aから取
得できる事。