Skip to content

Conversation

iche033
Copy link
Contributor

@iche033 iche033 commented Jul 25, 2025

🎉 New feature

Summary

Adds a new LookupWheelSlip system that uses an 8 bit RGB lookup map for dynamically adjusting the wheel slip / friction params based on the position of the wheel links on the target region.

This system needs to be used together with the WheelSlip system. The systems work together as follows:

  • LookupWheelSlip system reads lateral slip, longitudinal slip and friction values from the slip map texture's R, G, B channels respectively,
  • In each iteration, the LookupWheelSlip system computes new slip and friction param values to apply to each wheel based on wheel pos and sets these new params to the gz-transport parameter registry
  • WheelSlip system reads new updated values from the gz-transport parameter registry and updates the surface contact params in the physics engine (dartsim only)

Test it

Run the example lookup_wheel_slip.sdf world. This world has small -x gravity to simulate vehicle climbing up a hill so we can see the effect of wheelslip.

gz sim -v 4 -r lookup_wheel_slip.sdf 

Publish commands to move the two vehicles forward

gz topic -t "/model/vehicle_green/cmd_vel" -m gz.msgs.Twist -p "linear: {x: 1.0}"
gz topic -t "/model/vehicle_blue/cmd_vel" -m gz.msgs.Twist -p "linear: {x: 1.0}"

The blue vehicle has the LookupWheelSlip plugin attached so when it traverses over the slip regions (green), the wheels' longitudinal slip compliance values get dynamically adjusted (increased), i.e vehicle right wheel slips it comes into contact with the slip region causing it to turn to the right. Similar behavior when the left wheel enters the slip region.

The green vehicle has fixed slip compliance parameters and so the behavior remains consistent, i.e. drives in a straight line

lookup_wheel_slip

Checklist

  • Signed all commits for DCO
  • Added tests
  • Added example and/or tutorial
  • Updated documentation (as needed)
  • Updated migration guide (as needed)
  • Consider updating Python bindings (if the library has them)
  • codecheck passed (See contributing)
  • All tests passed (See test coverage)
  • While waiting for a review on your PR, please help review another open pull request to support the maintainers
  • Was GenAI used to generate this PR? If so, make sure to add "Generated-by" to your commits. (See this policy for more info.)

Generated-by: Remove this if GenAI was not used.

Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining Signed-off-by and Generated-by messages.

@iche033 iche033 requested a review from jennuine July 25, 2025 23:51
@iche033 iche033 requested a review from mjcarroll as a code owner July 25, 2025 23:51
@github-actions github-actions bot added the 🪵 jetty Gazebo Jetty label Jul 25, 2025
@iche033 iche033 marked this pull request as draft July 25, 2025 23:51
@iche033 iche033 force-pushed the iche033/lookup_wheel_slip_system branch from b4fe861 to fb47e4d Compare July 25, 2025 23:53
@github-project-automation github-project-automation bot moved this from Inbox to In review in Core development Jul 28, 2025
@azeey azeey added this to the Jetty Release milestone Jul 28, 2025
@iche033 iche033 mentioned this pull request Jul 28, 2025
9 tasks
Signed-off-by: Ian Chen <ichen@openrobotics.org>
@iche033 iche033 force-pushed the iche033/lookup_wheel_slip_system branch from 59551c0 to 435cc35 Compare August 1, 2025 20:07
iche033 and others added 6 commits August 1, 2025 20:07
Signed-off-by: Ian Chen <ichen@openrobotics.org>
* Add test world for lookup wheel slip system


Signed-off-by: Jenn Nguyen <8602001+jennuine@users.noreply.github.com>
Signed-off-by: Ian Chen <ichen@openrobotics.org>
Co-authored-by: Ian Chen <ichen@openrobotics.org>
Signed-off-by: Ian Chen <ichen@openrobotics.org>
Signed-off-by: Ian Chen <ichen@openrobotics.org>
@iche033 iche033 marked this pull request as ready for review August 14, 2025 22:53
@iche033 iche033 requested a review from arjo129 as a code owner August 14, 2025 22:53
Signed-off-by: Ian Chen <ichen@openrobotics.org>
…l_slip_system' into iche033/lookup_wheel_slip_system
Signed-off-by: Ian Chen <ichen@openrobotics.org>
Signed-off-by: Ian Chen <ichen@openrobotics.org>
@iche033
Copy link
Contributor Author

iche033 commented Aug 15, 2025

The homebrew build failure should be fixed by #3032

Copy link
Contributor

@jennuine jennuine left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, some minor nits on docs. Thanks Ian!

Signed-off-by: Ian Chen <ichen@openrobotics.org>
@iche033 iche033 requested a review from ahcorde August 19, 2025 23:46
@iche033
Copy link
Contributor Author

iche033 commented Aug 21, 2025

I think the EntityComponentManagerRepeat and UtilTest.ResolveSdfWorldFile homebrew test failures are unrelated as they are also happening in other PRs, merging

@iche033 iche033 merged commit d9480de into main Aug 21, 2025
12 of 13 checks passed
@iche033 iche033 deleted the iche033/lookup_wheel_slip_system branch August 21, 2025 22:25
@github-project-automation github-project-automation bot moved this from In review to Done in Core development Aug 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🪵 jetty Gazebo Jetty

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants