gz-physics icon indicating copy to clipboard operation
gz-physics copied to clipboard

Optionally enable an embedded copy of DART 6.10 Open Robotics fork

Open j-rivero opened this issue 3 years ago • 9 comments

🦟 Bug fix

Summary

There are problems affecting ground vehicles simulation when ign-physics is using DART version 6.9, which is the case of the Ubuntu Focal platform where DART comes from Ubuntu repositories.

Some context about how DART is used in ign-physics:

  • The only public header requiring DART headers is ignition/physics/dartsim/World.hh (#include <dart/simulation/World.hpp>).
    • The PR does not handle compilations using this header (by now).
  • The only library I've detected with public DART symbols exposed is libignition-physics3-dartsim-plugin.so.3.2.0.
    • The PR assumes that we can break the ABI on plugins.
  • The goal is to be able to respect current DART version installed in the user system, particularly DART coming from main distribution repository.
    • Should be possible to install dart 6.9 packages and having ign-physics using DART 6.10 with no further configuration by the user at execution time.

The PR implements the following:

  1. Embed a DART copy of Open Robotics fork, version 6.10 commit https://github.com/ignition-forks/dart/commit/71c7cfb97e8b583aa1ada639b6d1cf9a1835c1da
  2. Add an option named USE_VENDOR_DART to build against the internal copy instead of system DART.
    • Automatically enable this option if system is Ubuntu 20.04 and user did not provide an explicit value
  3. Install dart6.10 libraries needed in the engine directory to avoid conflicts with dart system libraries and use RPATH/RUNPATH to make ign-physics libraries to find them automatically.

Checklist

  • [x] Signed all commits for DCO
  • [x] Added tests (adapt test to work with changes actually)
  • [ ] Updated documentation (as needed)
  • [ ] Updated migration guide (as needed)
  • [x] codecheck passed (See contributing)
  • [x] All tests passed (See test coverage)

Note to maintainers: Remember to use Squash-Merge

j-rivero avatar Jul 06 '21 15:07 j-rivero