Documented target: Ubuntu 24.04 · ROS 2 Jazzy · Gazebo Harmonic where used. Browser labs tested; ROS/Ubuntu/hardware execution not performed here.
What you will understand
- Read a minimal URDF.
- Transform a planar point.
- Understand map/odom/base_link.
Prerequisites: Turn wheel speeds into robot motion and its stated environment.
The idea, made clear.
URDF models links and joints. Visual geometry controls appearance; collision geometry controls contact checking; inertia controls dynamic behavior. A model that looks correct in RViz may still be unsuitable for physics. Xacro helps express repeated or parameterized descriptions without hand-copying each wheel.
TF2 relates coordinate frames at a particular time. A camera observation belongs to its camera frame until transformed. map provides global reference, odom continuous local reference, and base_link the robot body. Global corrections can adjust map→odom while local odometry remains continuous.
Keep a connected tree with one parent per child. Conflicting transform publishers create ambiguity. Fixed mounts may use static transforms; moving joints need joint states and robot_state_publisher. Inspect axes and offsets before trusting navigation.
Try it, step by step.
Write a model
Save base.urdf. Single-link visual only, not a complete physics robot.
<?xml version="1.0"?>
<robot name="nexviora_base">
<link name="base_link">
<visual><geometry><box size="0.30 0.20 0.10"/></geometry></visual>
</link>
</robot>Expected: A well-formed single-link description.
Inspect a live transform
Requires a robot simulation publishing the named frames.
ros2 run tf2_ros tf2_echo odom base_linkExpected: Transform updates or an unavailable-frame diagnostic.
Transform a point
In the frame lab use translation (1,0), rotation 90° and local point (1,0).
Expected: Parent-frame point approximately (1,1) m.
If something goes wrong
- RViz shows nothing
- Check fixed frame, robot_description and transforms.
- Sensor points backwards
- Check mount rotations and optical-frame conventions.
Check your understanding
Make it yours
Draw a rover frame tree with LiDAR and camera mounts.
Optional progress stays in this browser. No account needed.
Go to the source documentation
Commands are educational examples for the stated environment, not a transcript of local ROS execution. Verify actual behavior on your machine.