robot_state_publisher and joint_state_publisher¶
Source: ros2-copilot-skills robot_state_publisher skill
Why This Matters¶
URDF is only useful to the live system once its frame structure reaches TF correctly. robot_state_publisher is the bridge that turns the robot description into runtime transforms, and misuse here can make a perfectly good URDF feel broken in RViz or Nav2.
Distilled Takeaways¶
robot_state_publisherpublishes fixed-joint transforms from URDF and dynamic transforms from/joint_states.joint_state_publisheris primarily a development and test aid, not a substitute for real hardware state on production robots.- Xacro launch wiring matters because the published robot description is part of the runtime contract.
- Namespaces and frame prefixes matter once you have multiple robots or multiple instances.
- Wheel and other driven joints should usually come from hardware or simulation, not from fake GUI-driven publishers.
Practical Guidance¶
- Keep the source of truth for movable joints explicit.
- Use the GUI tool for visualization and debug, not production.
- Treat robot description publishing as part of bringup architecture.
- Audit frame prefixes carefully in multi-robot systems.
Corroborating References¶
When to Read the Original Source¶
Go to the original skill when you want launch snippets for xacro-based bringup, source_list behavior, multi-robot prefix examples, and differential-drive joint-state flow guidance.