Skip to content

Stabilize FCL contact normals and collision ordering#2282

Merged
jslee02 merged 14 commits intomainfrom
issue/1425_contact_normal
Nov 26, 2025
Merged

Stabilize FCL contact normals and collision ordering#2282
jslee02 merged 14 commits intomainfrom
issue/1425_contact_normal

Conversation

@jslee02
Copy link
Member

@jslee02 jslee02 commented Nov 26, 2025

Summary

  • make FCL collision object keys deterministic and use them to keep contact ordering and normals consistent across clones and runs
  • ensure collision object user data is preserved after refresh to avoid missed collisions when shapes update
  • add regression coverage for collision ordering and FCL refresh behavior

Fixes #1425.


Before creating a pull request

  • Run pixi run test-all to lint, build, and test your changes
  • Add unit tests for new functionality
  • Document new methods and classes
  • Add Python bindings (dartpy) if applicable

@jslee02 jslee02 added this to the DART 7.0 milestone Nov 26, 2025
@jslee02 jslee02 enabled auto-merge (squash) November 26, 2025 14:23
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@jslee02
Copy link
Member Author

jslee02 commented Nov 26, 2025

@codex review

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@jslee02
Copy link
Member Author

jslee02 commented Nov 26, 2025

@codex review

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@jslee02
Copy link
Member Author

jslee02 commented Nov 26, 2025

@codex review

@chatgpt-codex-connector
Copy link

Codex Review: Didn't find any major issues. Swish!

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@codecov
Copy link

codecov bot commented Nov 26, 2025

Codecov Report

❌ Patch coverage is 96.00000% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 61.86%. Comparing base (57064be) to head (c890687).

Files with missing lines Patch % Lines
dart/collision/fcl/FCLCollisionDetector.cpp 94.44% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2282      +/-   ##
==========================================
+ Coverage   61.82%   61.86%   +0.04%     
==========================================
  Files         360      361       +1     
  Lines       32592    32633      +41     
  Branches     4283     4292       +9     
==========================================
+ Hits        20149    20188      +39     
- Misses      12443    12445       +2     
Flag Coverage Δ
unittests 61.86% <96.00%> (+0.04%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
dart/collision/fcl/FCLCollisionObject.cpp 95.00% <100.00%> (+2.14%) ⬆️
dart/collision/fcl/FCLCollisionObject.hpp 100.00% <100.00%> (ø)
dart/collision/fcl/FCLCollisionDetector.cpp 87.24% <94.44%> (+0.22%) ⬆️

... and 4 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@jslee02 jslee02 disabled auto-merge November 26, 2025 17:02
@jslee02 jslee02 merged commit e6c389d into main Nov 26, 2025
3 of 36 checks passed
@jslee02 jslee02 deleted the issue/1425_contact_normal branch November 26, 2025 17:02
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.

contact normal changes randomly between two opposite directions in Gazebo

1 participant