-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposal for Automatic Calculation of Moments of Inertia for SDFormat Links #92
Proposal for Automatic Calculation of Moments of Inertia for SDFormat Links #92
Conversation
Signed-off-by: Jasmeet Singh <jasmeet0915@gmail.com>
Signed-off-by: Jasmeet Singh <jasmeet0915@gmail.com>
Signed-off-by: Jasmeet Singh <jasmeet0915@gmail.com>
Signed-off-by: Jasmeet Singh <jasmeet0915@gmail.com>
Signed-off-by: Jasmeet Singh <jasmeet0915@gmail.com>
Signed-off-by: Jasmeet Singh <jasmeet0915@gmail.com>
Signed-off-by: Jasmeet Singh <jasmeet0915@gmail.com>
auto_inertial_params/proposal.md
Outdated
|
||
1. An `auto` parameter for the `<inertia>` tag that would tell `libsdformat` to calculate Inertia matrix values automatically for the respective link. | ||
|
||
2. A `//link/collision/material_density` tag for specifying the density of the collision geometry. This density value would be used to calculate the inertial parameters of the respective collision geometry. Adding this as part of the `<collision>` tag would allow a user to simulate links with different material types for different collisions. By default, the value of density would be set equal to that of water which is 1000 kg/m^3. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A link may contain 0 or multiple collision tags. The proposal should specify how inertial properties are computed in cases when there is not exactly 1 collision. If there are no collisions and the auto
attribute is set to true, we could return an error. If there are multiple collisions, we could aggregate them using the gz::math::Inertial
class and its +
operator (see examples from its unit test)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated the section to include more information about different scenarios (multiple or no collisions) in 8b902d8
Signed-off-by: Jasmeet Singh <jasmeet0915@gmail.com>
…f <inertia> element Signed-off-by: Jasmeet Singh <jasmeet0915@gmail.com>
Co-authored-by: Alejandro Hernández Cordero <ahcorde@gmail.com> Co-authored-by: Steve Peters <computersthatmove@gmail.com> Signed-off-by: Dharini Dutia <dharinidutia@gmail.com>
Signed-off-by: Jasmeet Singh <jasmeet0915@gmail.com>
Signed-off-by: Jasmeet Singh <jasmeet0915@gmail.com>
…Inertial() section Signed-off-by: Jasmeet Singh <jasmeet0915@gmail.com>
b68406b
to
8f93afb
Compare
Signed-off-by: Jasmeet Singh <jasmeet0915@gmail.com>
Signed-off-by: Jasmeet Singh <jasmeet0915@gmail.com>
Signed-off-by: Jasmeet Singh <jasmeet0915@gmail.com>
Signed-off-by: Jasmeet Singh <jasmeet0915@gmail.com>
Signed-off-by: Jasmeet Singh <jasmeet0915@gmail.com>
auto_inertial_params/proposal.md
Outdated
Since this method uses the vertex data for calculations, a high vertex count would be | ||
required for near-ideal values. For eg, in case of a cylinder, it was observed that with |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is important for usage right? Should this be documented some place else as well? Probably a Limitations or Considerations sub-section in implementation?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Proposed Implementation section of the proposal focuses more on the implementation from libsdformat's side. Therefore, instead of adding it there, I created a sub-section in the Integration-based Numerical Method
and added this point. I have added some other points as well that explain this method's limitations and suitable use cases. The changes can be found in fca06ae
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great thanks!
…ion method Signed-off-by: Jasmeet Singh <jasmeet0915@gmail.com>
d104e1d
to
fca06ae
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for iterating! Looks good to me 💯
Signed-off-by: Jasmeet Singh <jasmeet0915@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great overall. Just a couple of minor points. I would also ask you rename SDF to SDFormat throughout the document.
Signed-off-by: Jasmeet Singh <jasmeet0915@gmail.com>
…tion, updated configuration docs Signed-off-by: Jasmeet Singh <jasmeet0915@gmail.com>
Replaced all SDF with SDFormat in 52b582e |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great! Thanks for iterating patiently.
This proposal is in regard to GSoC'23 Project titled: "Automatically Computing Moments of Inerial for SDFormat Links"
Summary
The proposal suggests adding new attributes and elements to support the automatic calculation of Moments of Inertia and Products of Inertia for a link in SDFormat. The proposal targets SDFormat 1.11 and
libsdformat14
.Preview
http://sdformat.org/tutorials?tut=auto_inertial_params_proposal&cat=pose_semantics_docs&branch=jasmeet%2Fauto_inertial_params&repo=https%3A%2F%2Fgithub.com%2Fjasmeet0915%2Fsdf_tutorials