How to set up a motor in a swerve module with a revolute joint?

Isaac Sim Version

4.2.0
4.1.0
4.0.0
2023.1.1
2023.1.0-hotfix.1
Other (please specify):

Operating System

Ubuntu 22.04
Ubuntu 20.04
Windows 11
Windows 10
Other (please specify):

Topic Description

Hello! I’m a high school student currently working on a robotics project and I’ve been trying to get a chassis (powered by swerve modules) to move in Isaac Sim. The swerve module has one steer motor (controls the direction of the wheel) and a drive motor (controls the forwards/backwards rotation of the wheel).

Detailed Description

Currently, the steer motor is able to control the wheel because of a Revolute Joint that joins the steer motor and the wheel. However, I’ve ran into an issue with controlling the rotation of the wheel with the same method. For some reason the motor ends up separated from the rest of the module after pressing play. How should I set up a joint so that the drive motor stays on the module and is able to rotate the wheel forwards/backwards? (attached is the file of the module)

Steps to Reproduce

  1. Open the attached USD file in Isaac Sim:
    s_module1.zip (22.6 MB)

Video

Additional Information

This swerve module is the “Swerve Drive Specialties MK4i Swerve Module.” The CAD is from Onshape in the “mk4i chassis” assembly. I deleted the frame/belly pan and the other modules in Isaac Sim for simplicity.

Thanks for reporting this. We will take a look and get back to you.

Hello!
I believe the probelm is on how the Onshape asset is configured - You can notice on this screenshot that the wheel is on a group mate along with the swerve:

You’ll need to break it up into two separate groups so that the wheel can become its own rigid body, and then join it together to the swerve body with another revolute joint.

Reminder that Group Mates are a simplification of several Fixed mates - One group mate makes up a single rigid body, so moving pieces cannot be grouped together on a single group mate.

Once that is solved, you can try importing it over again.