[[
座標系
]]
Mice Wiki
現在位置:
IndexPage
»
座標系
文書の表示
以前のリビジョン
最近の変更
索引
ログイン
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== 座標系 ====== ===== 物理量ベースで考えるなら ===== 物理量ベースの考え方でマイクロマウスのプログラムを組んでいる場合、座標系をしっかりと決めておくと便利な場合があります。 例えば、次のような場合で応用が考えられます。 * 迷路探査時、マス(の切れ目)に囚われない処理の起点として * ログとして記録しておくと、怪しい動きをする場所がわかる * 賢い壁切れ補正 * シミュレーションによる最短(距離)経路の計算 * シミュレーションによるスラロームの自動生成 * 他にもアイデア次第でいくらでも ===== 迷路上で絶対座標を持とう ===== ==== 迷路に固定された座標系を決める ==== まずは単位系を決めましょう。各々使っている距離の単位([mm]か[m])を使うと後からすんなり計算できるようになります。 ここではmmで説明します。\\ 次に、原点を決めます。例えば、マス目としての座標(0, 0)の左下の柱の中心を原点としてみます。 \\ 後は、X軸、Y軸をどう取るかを決めれば座標系が完成します。今回は、マウスがスタートから最初に進む方向をY軸、そこから右方向をX軸としてみます。右手系です。 \\ ここまで決めると、マス目座標(2, 1)の区画の中心の座標は(450.0, 270.0)というように座標を決める事ができます。 ==== 角度を決める ==== 前節までで、迷路上の点を定義する準備ができました。 \\ しかし、マウスが自身で持っている情報を考えてみると、(基本的には)速度と角速度です。 物理量ベースで走っている人には想像がついていると思いますが、座標をリアルタイムに更新するには \\ speed*Δtを積分していくことになります。今持っている情報だけでX,Yの座標を更新しようとすると、speedをxとyに分解して持たなければなりません。 \\ これは多分面倒くさい事になるので、やりたくありません。 角度の情報を持っておくと、簡単に解決できます。 <code c> speed_x = speed * cos(angle); speed_y = speed * sin(angle); </code> とすることで、迷路上でどう進んでいるかを表現できます。 \\ 上に示したプログラムのように実装するのであれば、+X方向に0[rad]を取り、左回りに角度を決めた事になります。 ===== 実装 ===== 最初にマウスを置く位置でx,y座標を初期化、角度をPI/2で初期化し、角度と座標をそれぞれ積分することで実装できます。 \\ ただし、[[http://ja.wikipedia.org/wiki/%E3%82%AA%E3%82%A4%E3%83%A9%E3%83%BC%E6%B3%95|いつもの積分法]]は誤差が蓄積するので、適当にリセットを行った方が良い。
/home/users/2/deca.jp-mice/web/cgi/dokuwiki/data/pages/座標系.txt · 最終更新: 2011/11/25 20:28 by member
文書の表示
以前のリビジョン
文書の先頭へ