Skip to content

Feature Request: Add SwerveDrive system plugin #3364

@C88-YQ

Description

@C88-YQ

Desired behavior

Gazebo currently provides built-in drive systems such as AckermannSteeringDrive, DiffDrive and MecanumDrive, but does not include a native implementation for a swerve drive (four-wheel independent steering, 4WISD) system.

I would like to propose adding a SwerveDrive system plugin to gz-sim with the following capabilities:

  • Four independently steerable wheels
  • Independent wheel velocity control
  • cmd_vel interface support
  • Omnidirectional motion capability
  • Consistent odometry estimation

Swerve drive systems are increasingly common in modern mobile robotics platforms due to their maneuverability and efficiency. Providing native support would expand gz-sim’s coverage of mobile robot kinematic models.

Implementation suggestion

The proposed SwerveDrive system would:

  • Follow the architectural pattern of existing drive systems (DiffDrive, MecanumDrive, AckermannDrive)
  • Compute steering angles and wheel velocities from commanded twist
  • Publish odometry based on wheel states
  • Include integration tests and example world files

To maintain consistency with other drive systems, it may be preferable to introduce a reusable SwerveDriveOdometry utility in gz-math, similar to existing odometry helpers for other drive types.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Status

    Inbox

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions