Skip to content

Update SO100 URDF to match ROS 2 Conventions, while being ROS 2 agnostic#157

Open
adityakamath wants to merge 6 commits intoTheRobotStudio:mainfrom
adityakamath:main
Open

Update SO100 URDF to match ROS 2 Conventions, while being ROS 2 agnostic#157
adityakamath wants to merge 6 commits intoTheRobotStudio:mainfrom
adityakamath:main

Conversation

@adityakamath
Copy link
Copy Markdown
Contributor

ROS 2 convention (REP-103) expects +Z as the primary rotation axis for yaw joints and forward-axis alignment. The original OnShape export used Y-axis joints with frame rotations baked into joint origins, making integration with ros2_control and MoveIt non-standard. SO100 URDF fixed to satisfy ROS 2 conventions. I also added effort and velocity limits matching the 12v STS3215 motors.

Joint parameter updates:

  • Effort limits: 35→2.942 N·m (actual STS3215 stall torque)
  • Velocity limits: 1→5.216 rad/s (STS3215 no-load speed)

Cleanup:

  • Remove ROS 1 transmission blocks: unnecessary for this repository. Users can add it by themselves if they want to use it with ROS 1.

adityakamath and others added 2 commits April 13, 2026 15:26
ROS 2 convention (REP-103) expects +Z as the primary rotation axis
for yaw joints and forward-axis alignment. The original OnShape export
used Y-axis joints with frame rotations baked into joint origins,
making integration with ros2_control and MoveIt non-standard.

Frame convention changes:
- Add Rz(π/2) visual rotation to base link to align meshes with
  ROS forward (+X) while keeping the joint frame Z-up
- Add Rx(π/2)+Rz(π/2) visual rotation to shoulder link so the
  mesh aligns with the reoriented shoulder frame
- Reorient shoulder inertial tensor (swap iyy/izz) to match
- Change shoulder_pan axis from Y to Z — the standard yaw axis
  in REP-103 — and remove the compensating joint rpy
- Transform shoulder_pan origin from (0,−0.0452,0.0165) to
  (0.0452,0,0.0165) to absorb the removed Rx(π/2) rotation
- Absorb Rz(π/2) into shoulder_lift rpy so downstream joints
  remain consistent without additional frame changes

Joint parameter updates:
- Effort limits: 35→2.942 N·m (actual STS3215 stall torque)
- Velocity limits: 1→5.216 rad/s (STS3215 no-load speed)

Cleanup:
- Remove ROS 1 transmission blocks
Removed comments regarding position mode and hardware specifications.
@adityakamath
Copy link
Copy Markdown
Contributor Author

Similar updates to SO101 are in progress, but it includes a MuJoCo file that should also be updated and then tested.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant