これは、私が現在取り組んでいるロボットシミュレーションのためのものです。 提供されている図を見ると、2つの座標フレームが表示されます。 フレームA,フレームB;ポイントpがあります。模擬ロボットのローカルフレームのポイントを取得する
フレーム世界フレーム座標であり、フレームBは私のロボットのローカルフレームである(Xはγ軸慣例に従って、ロボットの進行方向です) 。ロボットは世界中で回転して運転することができます。ここで
私の目標点をPを見つけることで、フレームで表し、フレームBの点でそれを再発現します。
私は次のようにこれは次のようになり実装するために使用する標準式:
t_x
と
t_y
は
をフレームにフレーム
Bの翻訳変換を構成する
point_in_frameB_x = point_in_frameA_x * cos(theta) - point_in_frameA_y * sin(theta) + t_x
point_in_frameB_y = point_in_frameA_x * sin(theta) + point_in_frameA_y * cos(theta) + t_y
を。ロボットがデフォルトで北の進行方向と一緒にいるのポーズ(周りに回転させることができるので
- これが0の回転を持っています
しかし、そこに私の望ましい結果を得ることから私を防ぐため、ここでいくつかの合併症がありますラジアン)、私はt_x
とt_y
を上記のコードでどう定義するのか分かりません。ロボットがフレームのy軸に平行な進行方向(すなわち、x軸)を有する場合、移動ベクトルは、ロボットの進行方向がフレームのx軸に平行である状況とは異なるA。
あなたはBをフレーム間からの変換は簡単ではないことに気づくでしょう。私はこのコンベンションをそのイメージフレームに使用するこのシミュレータを実装しているため、このコンベンションを使用しています。
ご協力いただければ幸いです。前もって感謝します。
の質問は、どのように私は座標フレームを変更するためにt_x、t_yを決定するであろうのですか?特に私が回転しているとき?私はすでに均等な座標を使用しています(私が投稿した擬似コードから明らかなように)。 – arkate
ロボットの姿勢(t_x、t_y、theta)を決定しますか?どのようにロボットを動かしているのですか? – nayab