佐倉です。
今回はまだKiCadは出てきません。タイトルに入れるのが早すぎたようです。
今回は、マイクロマウスを順次設計していくにあたってのコンセプトと、その実現方法についてを書いてみました。
コンセプト
まずは今回設計するマイクロマウスのコンセプトを発表します。
自由なライン取りをして、勝てるマイクロマウス。
というのが、今回の私が作りたいマイクロマウスのコンセプトです。
マイクロマウス競技で上位に食い込むためには斜め走行が必須になりつつあります。
今の斜め走行は、斜めに通れる部分の中央と、区画の中央を、ターンでつなぐ事で成り立っています。
しかし、直線はあくまで直線として認識され、愚直にどまんなかを走るので、
実車のレースで行われている、out-in-outのような動きはできません。
そこで斜め走行の進化系として、自由なライン取りをして速く走りたいというのが今回のコンセプトになります。
実現の方法
自由なライン取りをするためには何が必要なのでしょうか?
自由なライン取り=自分で決めたラインに追従するためには、
①ラインを引ける事
②自分の位置を知る事
③ラインに追従できる駆動系がある事
以上の3つが必要になります。
①ラインを引く
様々な手法があります。
マイコン内でも無理なく実行できるアルゴリズムがあるので心配いりません。
(無理なく実行できるマイコンを選択します。)
②自分の位置を知る
いろいろなやり方があります。
大きなロボットで一般的なのは、レーザレンジファインダや、Kinectなど、距離を直接計測できる機器を使用して、パターンマッチングなどで自己位置を推定する方法です。
しかし、LRFやKinectを使ったマウスは重く、速く走る事ができません。
そこで今回は、様々なセンサを組み合わせて状態を推定する手法の、パーティクルフィルタを使用する予定です。
パーティクルフィルタはかなり処理を食いますが、センサの性能を理由に少し計算数を減らそうという企みがあり、マイコンでなんとか計算させらるだろうという算段です。
(計算が間に合いそうなマイコンを選択します)
また、フュージョンするためのセンサの選定が必要です。
今回は色々考えた結果、6軸の慣性センサ、赤外線反射センサ×5、モータ軸エンコーダ×2を使って自己位置を推定できるようにするつもりです。
赤外線センサの配置が肝になりそうです。
パーティクルフィルタは、パターンマッチングのような事をやるので、姿勢に対して特徴が強く出るようにセンサを配置する必要があります。
さらに、忘れがちな部分があります。
センシングを評価するためには、マスターとなるセンシング環境が必要になります。
これに関しては、暗い部屋の中でマイクロマウスのLEDを点滅させながら走行させ、
カメラを長時間露光することで、ストロボスコープのように動きの情報を取ろうという算段です。
迷路とカメラの相対的な姿勢の精度、レンズによる画像の歪みなど難しい課題があり、ここが一番うまくいくかどうか怪しい部分です。
だめだったら、高速撮影の動画を撮ってみて、ログと目視で比較するくらいでいいと考えています。この考え方はホビーだからこそですね。
③駆動系
前作通りで性能は十分なはずなので、クリアです。
まとめ
今回は、コンセプトとそれを実現する方法をご紹介しました。
細かな部分はすでに設計の域に入り始めています(センサの種類とか)。
ここに出しているのは、かなり練った後の情報です。設計しながら、実現不可能な部分が出たりした場合、ここを考えなおす必要があるでしょう。
最後に、物を作る上で重要な事として、引き下がれない状況を作る というのがあります。この記事のように・・・。
来週は、アルゴリズムについての記事が途中で切れたままになっていたため、アルゴリズムについての記事を書きます。
迷路 |
柱 | 壁 |