Learnに戻る

ロボットにおける調整フレームと変換:明確なガイド

ロボティクスの世界,ロボットベース,ツール,カメラフレームのコンバージョン例を伴う調整フレームと同質変容を理解する.

[←学び]

ロボット システム の 腕 が 間違った 方向 に 動く こと を 起こさせる 虫 は ほとんど すべて の もの で ある.この ガイド は,それら を 避ける こと に 役立つ.

なぜ 調整 の フレーム が 大切 な の か

センサー,ロボットリンク,環境内の各物体はそれぞれ独自の座標システム "前","上","右"の定義を持っています.カメラがカメラのフレーム内の位置 (0.1, -0.05, 0.3) の物体を検出すると,ロボットはこの上に直接行動することはできません. 腕を指揮するために _robotのフレーム内の物体の位置が必要です.

フレーム間の位置と方向を変えたりすることは,座標変遷の仕事です.これらの誤りを誤ったことがロボットシステムでデバッグするのが難しい唯一の最も一般的な原因です.

同性型変形

同質変換 T0は,同時回転と翻訳をコードする4×4マトリックスである.

T = [[R, t], [0, 0, 0, 1]]

T2は3×3回転マトリックス (直角, det(R) =1) で, T3は3×1変換ベクトルである.

符号 T4 は"フレーム B の ポーズ A で表現" またはそれと同等に",フレーム B の コードナイト をフレーム A の コードナイト に 変換する 変換"を意味します.

旋回表現

ローテーションは3DOFの量ですが,それを表現する方法は複数あります.間違ったものを選択するとバグが生じます.

  • 回転マトリックス (3×3): 最も幾何学的正確な表現.直角性制約 (9 値 3 DOF) によって過度にパラメータ化されます.多くの変換を構成する必要があるときに使用します.
  • エウラー角度 (ロール,ピッチ,ヤウ): 直感: "z軸を45°回転する".しかし,特定の設定で gimbal lock により苦しんでいるため,二つの軸が並行し,自由度が失われる. ハードウェア上で連続的に実行されるコードではエウラー角度を使用しないでください. 人間が読み取れるログリングのみに使用します.
  • クワテリアン (qx, qy, qz, qw): 4 値 (単位制限は 3 DOF).ギムバルロックはありません. コンパクト.スムーズにインターポレーション (SLERP). ロボットソフトウェアの標準. ** コードでこれを使用してください.** 双重カバーを注意してください. q と -q は同じ回転を表します. 比較時にサインの折りを見てください.
  • 6D回転 (Rの2列): 神経ネットワークの出力に最適です 断絶性のない連続表示.Gram-Schmidtで完全なRを再構築します.現代のロボット学習政策で使用されます.

共通ロボットフレーム

典型的な操作設定には少なくとも4つの座標フレームが含まれます:

  • **世界フレーム:**固定的なグローバル参照.通常はロボットのマウントポイントやテーブル上の校准目標で定義されます.他のすべてのフレームは最終的にそれに関連して表現されます.
  • ロボットベースフレーム: ロボットのマウントングフラングの中心にある起源.腕の前向きの運動は,このフレームに対して計算されます.
  • エンドエフェクター/ツールフレーム: グリッパーの端 (ツールセンターポイントまたはTCP) に由来します. カルテス標的を指定するとこのコマンドが表示されます.
  • カメラフレーム: カメラの光学中心にある起源.Z軸は,カメラの光学軸に沿って点 (シーンへ) を指します.オブジェクト検出は,このフレームで最初に表現されます.

チェーンを変換する

カメラフレームで検出されたオブジェクトポーズを世界フレームに変換するには,変換の鎖を鎖にします:

T_world_obj = T_world_robot × T_robot_ee × T_ee_camera × T_camera_obj

画面の右から左へ読みましょう まずオブジェクトをカメラフレームに変換します (アイデンティティは既に存在します) その後エンドエフェクターフレームに ロボットベースフレームに そしてワールドフレームに

変換は4×4マトリックスであり,チェーンはマトリックス倍数である.ROS2では,T9 図書庫はこれらの変換をすべて自動的に管理し,単一の呼び出しでフレームからフレームへと変換を検索することができます.

手と目の校正

上のトランスフォーメーションチェーンを使用するには,カメラの姿勢がロボットのエンドエフェクターとの関係で T10 が必要です.これは,手目校準によって決定されます.

プロセスは:ロボットを様々な関節構成 (少なくとも1520) に移動させ,現場に校准標的 (ArUcoマーカーまたはチェッカーボード) が表示される.各構成では,ロボットのFK計算のエンドエフェクターポーズとカメラの標的の観測を記録する.これは,Xが未知のT11であるAX = XBの式式のシステムを与えます. 標準解き算子 (OpenCVのT12) は,秒で解く.

**カメラが物理的に移動または衝突したときに,新しいカメラが設置されたり,またはシステム的なオフセットエラーが観測されたりするたびに再校正します.

Python の 実践的なツール

  • scipy.spatial.transform.rotation: 旋回マトリックス,クアテリアン,エーラー角度,軸角の間で変換する.オフラインデータ処理の通用点.
  • **ROS2 tf2 (Python rclpy):**リアルタイムトランスフォーメーションツリー管理. 変換を公開するために T13,検索するために T14を使用します.
  • pytransform3d: パーソナル Python ライブラリ,すべての SE(3) 操作のためのデバッグのための優れた可視化.
  • T15です. T15は,T15です.

ロボット資源やチュートリアルについては [RCSV資源セクション](T17を参照してください.