Closed kinematic chain#987
Conversation
| #============================================================================ | ||
| # Find gz-cmake | ||
| #============================================================================ | ||
| find_package(gz-cmake REQUIRED) |
There was a problem hiding this comment.
these look like changes from jetty (gz-physics9). can you rebase the relevant commits onto main?
There was a problem hiding this comment.
here is a comparison of an earlier state of your branch against gz-physics9 before it was merged with main:
There was a problem hiding this comment.
if you could rebranch from there and then add any missing commits, then you could try squashing it all and rebasing onto main?
There was a problem hiding this comment.
Sorry for the trouble. The issue is resolved now.
0827b85 to
4ee9c1d
Compare
| @@ -0,0 +1,393 @@ | |||
| <?xml version="1.0" ?> | |||
| <sdf version="1.11">e | |||
There was a problem hiding this comment.
Just curious, how it should work with this e symbol? Same in other file in this PR
| <!-- upper left link, length 0.5 --> | ||
| <link name="upper_left_link"> | ||
| <pose degrees="true" relative_to="base_top_left_mount">0.15 0 0 -155 0 0</pose> | ||
| <self_collide>0</self_collide> |
There was a problem hiding this comment.
by-default it's already false https://sdformat.org/spec/1.11/link/#link_self_collide
And I guess it's one of parts of system which can breaks. Maybe if we have different amount of links (1 and 2 to common child)
There was a problem hiding this comment.
Oh, I didn't know that. I will remove it from here, and yeah, the system will break with collision turned on.
| <physics type="dart"> | ||
| <dart> | ||
| <solver> | ||
| <solver_type>pgs</solver_type> |
There was a problem hiding this comment.
if it's important option, maybe add warning if closed chain detected and solver is different
There was a problem hiding this comment.
Sure I will add a warning here!!
| // mimic joint oscillation frequency is 0.84 | ||
| // closed kinematic chain frequency is 0.756 | ||
| ASSERT_NEAR(frequency, 0.8, 0.1); |
There was a problem hiding this comment.
maybe split to 2 different tests? you have dispatch in the beginning, and here very coarse check.
There was a problem hiding this comment.
Can you explain this a bit more?
There was a problem hiding this comment.
I suggest to have single responsibility for each test. In the begging you have dispatcher by physics engine and here you have check for swing frequency.
It's even a different implementations: one for fair joints, one for mimic
There was a problem hiding this comment.
I was writing this test case, keeping this as a reference. So thought this would be good to do since it's not possible to load both physics engines in a single test case. Tho there might be a better way of doing this.
| </link> | ||
|
|
||
| <!-- pin joint for upper left link, at origin of upper left link --> | ||
| <joint name="upper_left_joint" type="revolute"> |
There was a problem hiding this comment.
all joints in this tests are revolute.
maybe worth to check other types in a same closed kinematics chain context
There was a problem hiding this comment.
Sure, will try to add a test with other type of joints.
Signed-off-by: yaswanth1701 <gonnayaswanth17@gmail.com>
Signed-off-by: yaswanth1701 <gonnayaswanth17@gmail.com>
Signed-off-by: yaswanth1701 <gonnayaswanth17@gmail.com>
Signed-off-by: yaswanth1701 <gonnayaswanth17@gmail.com>
Co-authored-by: Maksim Derbasov <ntfs.hard@gmail.com> Signed-off-by: Yaswanth <92177410+yaswanth1701@users.noreply.github.com>
bd88b6b to
9b904c9
Compare
🎉 New feature
Closes #25
Summary
This feature supports closed kinematic chains for dartsim.
Test it
gz-physics/test/common_test/worlds/Video
Screencast.from.05-22-2026.01.03.48.AM.webm
Screencast.from.05-22-2026.01.03.06.AM.webm
Checklist
codecheckpassed (See contributing)