-
Notifications
You must be signed in to change notification settings - Fork 11
ROS tf tools
As a prerequisite for the following tasks, install some more ROS packages:
sudo apt install ros-<distro>-moveit ros-<distro>-moveit-resources ros-<distro>-tf2-tools ros-<distro>-agni-tf-tools
Consider an object
Using different terminals (always source the ROS environment!), launch the following:
roslaunch moveit_resources_panda_moveit_config test_environment.launch
rviz
- In
rviz
add the displaysRobotModel
andTF
and ensure that rviz’fixed frame
is set to thepanda_link0
of the robot (cf.Global Options
). By inspecting the TF tree, determine the kinematic structure of the robot, i.e. the chain of links. What is the name of the end effector link? - Determine the transform = pose of the end-effector frame w.r.t. the
panda_link0
. - Modify rviz’
fixed frame
and observe how the absolute poses of all links change.
They represent the transform from the currently chosenfixed frame
. - Determine the pose of the end-effector frame w.r.t.
link4
. - Determine the pose of the base link w.r.t.
link3
. - Using yet another ROS-enabled terminal, inspect the full TF tree by running
tf2_tools
:
rosrun tf2_tools view_frames.py
evince frames.pdf
Hand in the generated PDF.
In rviz
, add a Static Transform Publisher
display.
- Place the (interactive) frame 20cm in front of the end-effector, with the same orientation as the robot's
panda_link0
. Figure out, how to do so, without manually entering values for the orientation. (You might want to disable some other TF link frames to focus on the relevant ones.)
Note: Theadapt transformation
checkbox will recompute the configured transformation when changing theparent
link. - What’s the corresponding relative transform from the end-effector to this frame? Publish this transform as
grasp frame
. - Again inspect the TF tree (cf. I) and determine the global pose of the
grasp frame
, that is w.r.t.panda_link0
.
Examine the smoothness/singularities of RPY and quaternion representations of rotations. To this end, manually rotate the frame of a Static Transform Publisher
display and monitor the displayed Euler angles and quaternion components in rviz. Alternatively you can use rqt
and plot those values over time (listening to /tf_static/transforms[*]/transform/rotation
[^1]).
To rotate the interactive frame, hold Ctrl
and move your mouse with the left button pressed. Alternatively, you can switch the marker type
to 6DoF handles
and operate each axis separately.
Find at least two singular configurations!
[^1]: If multiple different publishers post messages on the topic /tf_static
, you will see noisy curves only. Thus, ensure that you have only a single static transform published, i.e. only a single Static Transform Publisher
used in rviz. You might also need to stop the test_environment
from II.