ロボットのオイラー角:基本入門書
ロボットの回転について理解するのは難しいですよね?オイラー角は首の痛みです。これが、痛みを取り除くための重要な入門書です。
オリエンテーション!彼らは私が私の髪を引き裂きたくなるだけです.座標と回転を使用してロボットの終了ポーズをプログラムする必要があったことがある場合は、私が話していることがわかるでしょう。
一見すると、ロボットのエンド エフェクターのポーズを設定するのは簡単に思えますよね?
「ロボットのツールを これ に移動したい」と言うだけです。 this を指すようにしたい 方向」
直感的に、ツールの向きを正確に把握できます。しかし、正確な数字を使って向きを説明するとなると、突然、この単純な作業が混乱を招くことになります。
ロボットの向きがわかりにくい理由
ロボットのツールの X、Y、Z (並進) 座標を記述するのは簡単です。
翻訳を説明するには、座標を入力するだけです。 Point[X, Y, Z] =[100, 1000, 1500] mm — 同じベース参照を使用していると仮定すると、これが参照できる場所は 1 つだけです。 X 軸に沿って 100 mm、Y 軸に沿って 1 メートル、Z 軸に沿って 1.5 メートルしか意味しません。
では、ツールの向きをどのように説明しますか?
次のように言うこともできます:
Rotation[XYZ] =[5, 45, 15]°
ただし、同様に (数値を四捨五入して)
br /> Rot[XY'Z”] =[-7.9, 44.7, 16.2]°
or
Rot[ZY'Z”] =[7.9, 45.2, 5.0]°
or偶数
四元数[q1-q4] =[0.9, -0.1, 0.4, 0.1]
これらはすべてまったく同じ向きを指しています!
さらに驚くべきことは、ロボットの製造元が異なれば、さまざまな規則が使用されていることです。 3D ジオメトリに慣れている場合でも、すべてが少し頭痛の種になることがあります。
問題:ローテーションで考えない
本当の問題は、私たちが自然に回転について考えていないことです.
私たちは日常生活で並進座標を使用しているため、直感的に並進座標を理解しています (例:「下から 2 番目の棚、左から 4 本です。」 )。ただし、方向を説明する必要がある場合は、指で指して「その方向です」と言うことに頼ります。
残念なことに、ロボットはあいまいな「あっちだ」よりも正確な情報を必要としています。
必要なのは、オイラー角をしっかりと理解することです。
オイラー角とは
一歩下がって、基本から始めましょう。
ロボットの向きを記述する最も一般的な方法はオイラー角です。オイラー角は、それぞれが 1 つの軸を中心とした回転を表す 3 つの数値で構成されます。回転の順序に応じて、さまざまなオイラー角の規則があります。
まず、これを単純化して 1 軸の例にしましょう。
コンパスを想像してみてください。
多くの場合、世界の Z 軸は、空から地面まで伸びる軸を指します。したがって、コンパスの針は Z 軸 (Rot[Z] という名前) を中心とした回転であると考えることができます。コンパスを目の前で平らに保ち、矢印が 135° を指している場合、北が左肩の上にあり、現在南東を向いていることを意味します。コンパスの向きが同じであれば、コンパスをどこに置いても (床の上、頭の上など)、角度は常に 135° になります。
ここまではとても簡単です。
コンパスには 1 つの回転値 (つまり、Rot[Z]) しかありませんが、3D 方向を記述するには 3 つの値が必要です。ここから少し複雑になります。
ロボットの向きを記述する他の方法は、クォータニオンまたはポーズ (4×4 行列) です。
実際に見てみましょう
これからは、インタラクティブな視覚補助があると便利です。
このリンクから RoboDK の無料コピーをダウンロードすることをお勧めします。これにより、参照フレームを非常に簡単に視覚化し、結果の座標を確認できます。
RoboDK を起動し、[参照フレームの追加] ボタンを使用するか、プログラム メニューのオプションを選択して、参照フレームを作成します。画面の中央に赤、緑、青のフレームが表示されます。
フレームを次のように回転できます。Alt キーを押したまま、表示される曲線矢印の 1 つをクリックしてドラッグします。
飛行機の乗り方
ロボット フォーラムで非常に明確に説明されているように、飛行機の類推を使用しましょう。
基準フレームが平面であると想像してください。まっすぐな赤い矢印 (X 軸) の先端はノーズコーンの先端で、まっすぐな緑の矢印 (Y 軸) は左翼です。
この場合、曲線矢印を移動すると、次の機能が提供されます:
- 曲がった赤い矢印 =Rot[X]:飛行機が水平軸を中心に回転できるようにする飛行機のロール。
- 曲がった緑色の矢印 =Rot[Y]:ノーズコーンを上または下に向ける平面のピッチ。
- 曲がった青い矢印 =Rot[Z]:飛行機が向いている方向を決定する、飛行機のヨー。
パイロットが飛行機を徐々に左下に旋回させたい場合、飛行機は Z 軸を中心に回転するだけではありません。それは飛行機の仕組みではありません。
代わりに、飛行機は:
<オール>この全体の動きは Rot[XYZ] として表されます。これらの概念に慣れるまで、RoboDK で自分でフレームを少し動かしてみてください。
次に、メイン ウィンドウの左上にあるフレームの名前をダブルクリックして、[フレームの詳細] パネルを表示します。
1 つの方向、複数の可能な回転
RoboDK を使用して、次のタスクを試してください。
各タスクの前に、フレームの詳細パネルで「ハンバーガー」メニュー アイコン (3 本の横線) を開き、「リセット (ID の設定)」を選択して、フレームをリセットします。
<オール>ご覧のとおり、同じ向きにする方法は複数あります。
Y 軸を中心とした回転のみを含むため、Rot[Y] と呼ぶことができる最初のメソッドです。 2 番目のメソッドは Rot[Z, X’] と呼ぶことができます。Z 軸を中心とした 1 つの回転と、新しい X 軸を中心とした 1 つの回転が含まれているからです。 3 つ目は Rot[X, Z'] と呼びます。プライム記号は、静的軸ではなく、最後の動きに対して回転が発生することを意味します。
これは、オイラー角の背後にある基本的な概念です。軸と回転の順序を変更することで、複数の方法でフレームを同じ向きに回転できます。
さまざまなロボット メーカーがさまざまな回転の組み合わせを選択しています。たとえば、Stäubli は XY'Z" 規則を使用し、Adept は ZY'Z" 規則を使用し、KUKA は ZY'X" 規則を使用し、Fanuc &Motoman は XYZ 規則を使用します。一方、ABB は Quaternion を使用し、Universal Robots は方向ベクトルを使用します。しかし、すべての規則を使用して、空間内の任意の向きを表すことができます.
詳細については、RoboDK のドキュメントを参照してください。
さまざまなロボット規則をテストする
うまくいけば、これは理にかなっています。ただし、これはほんの始まりにすぎません。 RoboDK のオイラー角の規則を真にマスターするには、このガイドに従ってソフトウェアをいじってみると便利です。
「フレームの詳細」パネルの水色、紫、黄色のボックスで、回転の効果を数値で確認できます。
デフォルトでは、新しい参照フレームに対して汎用 XYZ 規則が選択されます。色付きのボックスの上のドロップダウン メニューから別のロボット メーカーを選択してみてください。ボックスに数値を入力して、参照フレームへの影響を確認してください。
オイラー角に関する詳細なチュートリアルについては、Mecademic のこのページもお勧めします。
産業用ロボット