Skip to content

Conversation

scpeters
Copy link
Member

🎉 New feature

Summary

This adds the following documentation of the following topics:

  • Simulation of contact, slip, and friction in Gazebo
  • Special considerations for modeling wheel contact / slip / friction

I'm not sure if a gz-physics tutorial is the right place for this; I'm open to moving it elsewhere. It still needs a few figures, but it collects a lot of knowledge about contact simulation in general and specifically for wheel-terrain contact. It includes both Gazebo Classic and gz-sim.

Test it

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

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

scpeters added 30 commits July 10, 2024 03:58
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
match the variable names used in contact tutorial

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
use markdown tables in wheel slip discussion

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
@github-actions github-actions bot added the 🏛️ ionic Gazebo Ionic label Sep 27, 2024
@azeey azeey added this to the Jetty Release milestone Jul 28, 2025
Copy link
Contributor

@iche033 iche033 left a comment

Choose a reason for hiding this comment

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

This tutorial has really great info and I think we should try to get this in!

One thing I noticed is that it refers to ODE and Gazebo-classic's code / unmerged PRs in many places to describe in detail how some features are implemented there. I am guessing some of these features are not available in the modern gazebo yet. I think it's fine to point to classic if it helps to illustrate various concepts presented but it would good to clarify whether which of these features are available in the modern Gazebo yet. Focusing more on the modern gazebo would be nice so that the tutorial does not seem like it's written for classic.

pressure and an equivalent normal force vector that is inclined relative to the
undisturbed surface normal.
In the right portion of the illustration below, the equivalent normal force
opposes the motion of the wheel, requiring travtive torque to be applied in
Copy link
Contributor

Choose a reason for hiding this comment

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

tractive?

Suggested change
opposes the motion of the wheel, requiring travtive torque to be applied in
opposes the motion of the wheel, requiring tractive torque to be applied in


![Illustration of a rigid wheel in contact with a deformable surface at rest and while rolling with a plowing effect.](img/deformable_terrain.png)

This longitudinal plowing effect has been approximated in Gazebo Classic by
Copy link
Contributor

Choose a reason for hiding this comment

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

is plowing effect supported in gz-physics / gz-sim? If not, we probably want to it clear that those tags are not currently supported yet.

with units of `m/s`.
- Torsional slip `ω_n` is computed at each contact point as follows:
- Compute the angular velocity of each shape.
- Compute the diference between these velocities to yield the
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
- Compute the diference between these velocities to yield the
- Compute the difference between these velocities to yield the

@azeey
Copy link
Contributor

azeey commented Aug 7, 2025

I'm not sure if a gz-physics tutorial is the right place for this; I'm open to moving it elsewhere.

We don't have clear policy about this, but the way I'm thinking about it right now is that if the tutorial describes how to use the API in the package or is written to show how to use a specific feature/plugin in the package, it should be kept with the package. Otherwise, it should go to https://github.com/gazebosim/docs. In this case, since most of the content is conceptual, I'd vote for moving it to gazebosim/docs. Thoughts?

@azeey azeey removed this from the Jetty Release milestone Aug 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🏛️ ionic Gazebo Ionic
Projects
Status: In progress
Development

Successfully merging this pull request may close these issues.

3 participants