ROSのTFとTF2の対照(Python)


はじめに

本記事は、ROS(Robot Operating System)の座標変換ライブラリであるTFおよびその再実装であるTF2の使い方を整理したものです。
(Tensor Flowとは関係ありません。)

ROSのTFとTF2の対照表

tfにおいて、TransformListener経由で行うことのほとんどは、tf2のBufferクラス経由で行う。

やりたいこと tf.TransformListener tf2_ros.Buffer
変換行列の取得 lookupTransform lookupTransform
lookupTransformFull lookupTransformFull
waitForTransform lookupTransformのtimeout引数
waitForTransformFull lookupTransformFullのtimeout引数
メッセージの座標変換 transformPoint transform
transformPose transform

座標変換の計算

tfでは、tf.transformationsモジュールの関数を用いるが、tf2では、PyKDLを用いる。

やりたいこと tf.transformations PyKDL
座標変換 euler_from_quaternion PyKDL.Rotation.Quaternion(x,y,z,w).getEulerZYX()
quaternion_matrix PyKDL.Rotation.Quaternion(x,y,z,w)