Closed KazukiHiraizumi closed 3 years ago
Euler回転順について混乱していましたが、結論的にNCはKUKAだけのようです。 20.04にて下表のようUpdateします。 | メーカ | 公称値 | 〜20.01 | 20.04 | 動作確認 |
---|---|---|---|---|---|
Melfa | ZYX | sxyz | rzyx | 済 | |
Fanuc | XYZ | sxyz | 済 | ||
Motoman | ZYX | sxyz | rzyx | 済 | |
Kawasaki | ZYZ | rzyz | 済 | ||
Kuka | ZYX | rzyx | |||
UR | Rot.Vec. | rvec | 済 |
ZYX順のロボットでも、回転角はXYZ順に与えられることが多い。 これをtf.transformations(scipy...rotation)にそのまま与えた場合、”ZYX"順序の場合には内部処理が前提としている順序と食い違ってしまう。 zyx順のときには、zとxを入れ替える必要がある。
さらに混乱するのが、回転には、固定軸まわりの回転(s)と、回転後の軸まわりに次の回転を行う(r)ものがある。 しかしながら公称仕様には、そのいずれかが明記されていない。
にもかかわらず、破綻しなかったのは、sxyz≡rzyxであったこと。 違うと思っていたものが結局同じだった。
KUKAについては、現状コードではマズいはず(z⇔x入れ替えしていない)。 sxyzとするか、公称仕様に合わせてryxのままz⇔x入れ替えに修正の必要がある。