要求分析 要求仕様 マインドマップ ・提供されていた部品で走行体を組立てて、その走行対を競技フィール ドにある格チェックポイントおよび障害物(難所)を通過させ、制限時間内 でゴールまで走らせるようにファームウェアを作ること。 ・本ファームウェアは、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から取 得できる事。
© Copyright 2024 ExpyDoc