Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
URDF->SDF handle links with no inertia or small mass (gazebosim#1238)
* Adding tests that catch warnings when urdf have no inertia element, or if mass is too small Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Promote link inertia and mass related urdf2sdf sdfdbg to sdfwarn with more verbose messages Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Added flag for converting urdf links with small or no mass to frames Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Converts urdf links with small or no mass to frames, added tests Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Adding warning when conversion happens, added tests for small masses, being explicit about epsilon in equal Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Fix cpplint errors Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Adding integration test Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Fix lint Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Use camelCase Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Added URDFMinimumAllowedLinkMass Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Fix tests expecting warnings when converting to frames Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Adding inline contains and notContains to test_utils Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Using RedirectConsoleStream and ScopeExit Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Refactor to use Root::LoadSdfString Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Removing debug message when converted frame is from a root link Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Added attached_to for frames during conversion, using < instead of math::equals Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Update brief of URDFSetConvertLinkWithNoMassToFrame to mention case of no inertial frame Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Remove stale commentted code Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Update comment about the errors we are expecting Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Convert to frame by default, remove minimal mass option, refactor implementation to handle lumping, modified unit tests Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Only convert to frame when parent joint is fixed, attaches and transforms pose to parent link, leaves out the fixed joint Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Rephrased conversion error, modified unit tests Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * prints zero mass errors as well when conversion to frame fails Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * integration tests that mimic the unit tests Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Added integration test with valid and invalid use of force torque sensor where massless child links occur Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Fix lint Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Fix joint reduction logic, more specific error messages, more targeted unit tests for each case Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Convert joints to frames when converting links, attach them to converted links Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Integration tests with child fixed links as well Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Change sdferr to sdfwarn, no way to use ParserConfig::WarningsPolicy for now Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * sdferr to sdfwarn for the case where conversion to frame is attempted Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Removing case within converting to frame, where parent joint turns into revolute joint, that is not covered Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Reduced scope of implementation, more specific warning messages Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Remove mention of parser config in warning, since that is not typically used by workflows Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Integration tests revisited and modified, removed printouts Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Test case showing ParserConfig::URDFSetPreserveFixedJoint(true) overrides gazebo tags for joint lumping, warnings with more information and placeholder url Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Use sdf::testing::contains instead of local contains functions in testing (gazebosim#1251) Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Remove unused InitSDF, added TODO for warning when joints are converted/dropped Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Cleaned up if else cases Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Using << operator of Errors Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Replacing placeholder url with expected URL for the documentation from sdf_tutorials#88 Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * URL to tutorial as a constant, removing checking URL from test, just in case links change, we are not testing for that anyway Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Refactored fixed child joint logic as it is never reached Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Reduce number of if statements, renaming to only check if parent joint is reduced Signed-off-by: Aaron Chong <aaronchongth@gmail.com> --------- Signed-off-by: Aaron Chong <aaronchongth@gmail.com>
- Loading branch information