▼ 2014/10/01(水) スラロームと全面探索
B2 Kishimotoです。
スラローム走行ができるようになりました。
シミュレータを作って加速度と角速度加速区間、定角速度区間、角速度減速区間の角度を求めました。
現在は重心速度0.4m/sで安定しています。
また、直進優先の最短走行を実装したはいいものの、足立でゴール→足立で別ルートを探索しながら帰ってくるという状態だと直進優先の最短を見つけてくれない場合があったので、全面探索を実装してみました。(スラロームのおかげで探索がめちゃ速い)
RTのブログで紹介している方法をそのまま実装しました。
等高線用の配列を255で初期化して、未探索区間だけ0を入れれば簡単に出来ました。
現在位置の等高線が255のままだったら探索終了です。
ほかにも、コの字型の袋小路を見つけたら入らないようにもしてみました。
袋小路と分かれば、たとえ壁があり侵入不可であってもその地点には用はないので、
仮想壁で袋小路を閉じつつ探索済みにするだけです。
コの字型の判定は仮想壁を含めてやっているので、
___
|_____|
みたいなのにも対応出来ます。
左の区画に仮想壁を立てると右区画がコの字型になるので右区画にも仮想壁が立ちます。
あまり機能してない感じですが。
今後の課題
スラローム走行ができるようになりました。
シミュレータを作って加速度と角速度加速区間、定角速度区間、角速度減速区間の角度を求めました。
現在は重心速度0.4m/sで安定しています。
また、直進優先の最短走行を実装したはいいものの、足立でゴール→足立で別ルートを探索しながら帰ってくるという状態だと直進優先の最短を見つけてくれない場合があったので、全面探索を実装してみました。(スラロームのおかげで探索がめちゃ速い)
RTのブログで紹介している方法をそのまま実装しました。
等高線用の配列を255で初期化して、未探索区間だけ0を入れれば簡単に出来ました。
現在位置の等高線が255のままだったら探索終了です。
ほかにも、コの字型の袋小路を見つけたら入らないようにもしてみました。
袋小路と分かれば、たとえ壁があり侵入不可であってもその地点には用はないので、
仮想壁で袋小路を閉じつつ探索済みにするだけです。
コの字型の判定は仮想壁を含めてやっているので、
___
|_____|
みたいなのにも対応出来ます。
左の区画に仮想壁を立てると右区画がコの字型になるので右区画にも仮想壁が立ちます。
あまり機能してない感じですが。
今後の課題
センサーチェックが簡単にできるモードを搭載するマウスだけで閾値を変えられるように(最初に閾値を自動で取得するようにした)
センサーの取り付け角度の調整(あまり効果が感じられない)ジャイロセンサを載っけた上でスラローム走行(スラロームだけ)探索アルゴリズムの改善足立でとりあえずゴールしてから全面探索?袋小路に入らないよう、仮想壁を立てる- 探索済み区間は加速
モーターの換装(pi:coには勝ちたい)加速度テーブルも変更(台形加速に変更)
- EEPROMの搭載
- LCDの搭載
- 壁切れ補正
- RXに載せかえる(ROMが足りない)
- TB-URL http://usamimi.info/~isys/cgi-bin/adiary/adiary.cgi/mouse/0126/tb/