README
Python examples for tf2
This package has examples for using the tf2_ros
API from python.
It shows how to broadcast and receive transforms between frames.
The example transforms might be seen on a small two wheel robot.
Broadcasting Transforms
tf2
publishes two types of transforms: static and dynamic.
Static transforms are constant, and never change once published.
Dynamic transforms are frequently changing, and re-published every time the do.
Both broadcasters can be run with
ros2 launch examples_tf2_py broadcasters.launch.xml
dynamic_broadcaster.py
ros2 run examples_tf2_py dynamic_broadcaster
This is an example of a dynamic transform publisher. Transforms showing the rotation of two wheels are published frequently.
static_broadcaster.py
ros2 run examples_tf2_py static_broadcaster
This is an example of a static transform publisher. The transforms to sensors on the robot are published once at startup, and then never changed.
Receiving Transforms
Transforms are broadcast to all listeners, who then use the data. If a transform is not immediately available then users of the data may choose to wait for it.
waits_for_transform.py
ros2 run examples_tf2_py waits_for_transform
This example blocks until a transform is received.
It must be run with a MultiThreadedExecutor
so the TransformListener
can
execute callbacks for it’s subscriptions.
async_waits_for_transforms.py
ros2 run examples_tf2_py async_waits_for_transform
This example uses coroutines to wait for a transform.
The coroutine is suspended without blocking the executor, so it works with
a SingleThreadedExecutor
.
Frame Dumper
ros2 run examples_tf2_py frame_dumper
This example periodically outputs information about all frames it is aware of.