relationship between tf rotation and translation ?
$rosrun tf tf_echo /map /odom
At time 1263248513.809
- Translation: [2.398, 6.783, 0.000]
- Rotation: in Quaternion [0.000, 0.000, -0.707, 0.707]
in RPY [0.000, -0.000, -1.570]
- For translation value and rotation quaternion value, is translation happening in original frame and then rotation happens? Or, does it rotate first and then the translation happens?
- What is the convention used by tf system? Which RPY convention is RPY using?
For a
static_transform_publisher
,just as :<node pkg="tf" type="static_transform_publisher" name="link_broadcaster" args="0.1 0 0.3 -1.571 0 1.571 base_link laser 25" />
,can I break it down into two static_transform_publisher as fellows:
<node pkg="tf" type="static_transform_publisher" name="link1_broadcaster" args="0.1 0 0.3 0 0 0 temp_link laser 25" />
<node pkg="tf" type="static_transform_publisher" name="link2_broadcaster" args="0 0 0 -1.571 0 1.571 base_link temp_link 25" />
Is that a right decomposition?
And how about :
<node pkg="tf" type="static_transform_publisher" name="link1_broadcaster" args="0 0 0 -1.571 0 1.571 temp_link laser 25" />
<node pkg="tf" type="static_transform_publisher" name="link2_broadcaster" args="0.1 0 0.3 0 0 0 base_link temp_link 25" />
Any help is appreciated. Thank you in advance.
The translation is applied first, then the rotation (as it would be in a standard 4x4 transformation matrix in homogeneous coordinates). Rather than use
static_transform_publisher
, why not create a URDF and then runrobot_state_publisher
andjoint_state_publisher
to publish the transforms?Hi, Mark Rose, Thanks for your reply ! I'll take a look at
URDF
,but I still don't understand the defference between overall and decomposition aboutstatic_transform_publisher
as above. If you know the difference ,would you tell me something about it.Thank you in advance!If you create a URDF model, you then use
robot_state_publisher
andjoint_state_publisher
to jointly publish the status transforms. You don't needstatic_transform_publisher
unless you have some other transform that isn't reflected in the URDF. The standard frame is X forward, Y left, Z up.Hi,Mark Rose,I have tried to use
robot_state_publisher
in stead ofstatic_transform_publisher
. I learned the urdf tutorial, but I have some question about therobot_state_publisher
.my test.urdf
my launch file is as fellows:
I run the launch file
rosrun r2d2 test.launch
, but I don't get the TF userostopic echo /tf
,The screen output as followstransforms: []
transforms: []
transforms: []
hey mark, from my understanding the rotation is applied first and then the translation takes place on the new axis.