differential-drive-model

Define a differential drive URDF model with wheel and caster frames for ROS 2.

18|2|Updated Apr 20, 2026
One-click install
npx skills add https://github.com/wimblerobotics/ros2-copilot-skills --skill differential-drive-model
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: differential-drive-model
Source: https://github.com/wimblerobotics/ros2-copilot-skills/tree/main/differential-drive-model
Command: npx skills add https://github.com/wimblerobotics/ros2-copilot-skills --skill differential-drive-model

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Model a differential drive robot in URDF to support accurate kinematics and frame hierarchy in ROS 2 simulations and deployments.

Core Features & Use Cases

  • URDF base and wheel definitions: base_footprint, base_link, left_wheel_link, right_wheel_link, and caster configurations.
  • Frame hierarchy & joints: fixed base joint, drive wheel joints, and proper inertia and visuals for realistic simulation.
  • Gazebo integration: optional diff-drive Gazebo plugin for odometry and ground-truth benchmarking in Gazebo/Nav2 workflows.

Quick Start

Write a URDF snippet from the provided model to instantiate a differential-drive robot with the described links, joints, and properties.

Frequently Asked Questions about differential-drive-model

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I model a differential-drive robot in URDF for ROS 2?

To model a differential-drive robot in URDF for ROS 2, define a frame hierarchy with base_footprint, base_link, left_wheel_link, right_wheel_link, and caster configurations. Specify fixed base joints, drive wheel joints, inertia, and visual properties for accurate simulation kinematics.

What is the correct URDF structure for differential drive odometry in Gazebo?

The correct URDF structure for differential drive odometry requires a base_footprint and base_link with properly configured wheel joints. Integrating the optional Gazebo diff-drive plugin ensures consistent odometry computation and ground-truth benchmarking across simulation and real-world Nav2 workflows.

Does my ROS 2 robot URDF need base_footprint for Nav2 compatibility?

Yes, your ROS 2 robot URDF needs base_footprint for Nav2 compatibility. The mandatory URDF structure specifies base_footprint alongside base_link and wheel links to ensure proper frame transformations and consistent kinematics across navigation and simulation environments.

Can I use this differential drive URDF model for both simulation and real-world deployment?

Yes, you can use this differential drive URDF model for both simulation and real-world deployment. It defines a detailed structure with proper joint configurations and Gazebo plugin integration to ensure consistent odometry and kinematics across both environments.

What's the best way to configure wheel joints for a ROS 2 differential drive robot?

The best way to configure wheel joints for a ROS 2 differential drive robot is to define left_wheel_link and right_wheel_link with proper drive wheel joints, inertia, and visual properties. This mandatory URDF structure ensures accurate frame transformations and realistic simulation behavior.

Why does my differential drive robot show inconsistent odometry between Gazebo and real hardware?

Inconsistent odometry between Gazebo and real hardware often stems from an incorrect URDF frame hierarchy. Defining the mandatory base_footprint, base_link, and wheel links with proper joint configurations and Gazebo plugin integration ensures consistent odometry and kinematics across environments.