ようこそゲストさん

マイクロマウス開発日誌

2014/11/10(月) 大回りターン実装

B2 Kishimotoです。

今日はTakayanagi君もAkao君もブログを更新してるので自分も更新します。

前回の記事で作っていたスラロームを最短関数に組み込みました。
大回りターンは半区画前から開始するので、実装が面倒でした。
大回り180°なんかは次の次の区画まで読みに行きます。
そんなことを走りながらはできないので先に配列に直進かスラロームかを入れておいて、
走行時は読みだすだけ、という風にしました。
やたらめったら複雑なif文になってしまいましたが、気にしないことにします。

結局これを実装してるとROMが足りなくなったので最高速度を2m/sまで落としましたが、
実装し終わったらROM使用量が32K超えてました。どうしよう。

現在90°大回りが不安定で、スラロームが連続する迷路だと完走率が5割を下回ります。
速度を落とすか、スラロームの加速度を上げるか…

今後の課題
  • センサーチェックが簡単にできるモードを搭載する
    • マウスだけで閾値を変えられるように(最初に閾値を自動で取得するようにした)
  • センサーの取り付け角度の調整(あまり効果が感じられない)
  • ジャイロセンサを載っけた上でスラローム走行(スラロームだけ)
  • 探索アルゴリズムの改善
    • 足立でとりあえずゴールしてから全面探索?
    • 袋小路に入らないよう、仮想壁を立てる
    • 探索済み区間は加速
  • モーターの換装(pi:coには勝ちたい)
    • 加速度テーブルも変更(台形加速に変更)
  • EEPROMの搭載(たぶん無理)
  • LCDの搭載(たぶん無理)
  • 壁切れ補正(必須)
  • RXに載せかえる(諦めました)
  • 袋小路での位置調整
  • 斜め走行(諦めました)
  • コケた時の対策
  • 最短経路の直進優先の改善(実装したが未確認)
  • 最短走行に180°スラロームを組み込む

名前:  非公開コメント   

  • TB-URL  http://usamimi.info/~isys/cgi-bin/adiary/adiary.cgi/mouse/0140/tb/