-
Notifications
You must be signed in to change notification settings - Fork 12
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-toolsConsider an object
Using different terminals (always source the ROS environment!), launch the following:
roslaunch moveit_resources_panda_moveit_config test_environment.launch
rviz- In
rvizadd the displaysRobotModelandTFand ensure that rviz’fixed frameis set to thepanda_link0of 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 frameand 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.pdfHand 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 transformationcheckbox will recompute the configured transformation when changing theparentlink. - 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.