gz-physics
gz-physics copied to clipboard
Optionally enable an embedded copy of DART 6.10 Open Robotics fork
🦟 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:
- Embed a DART copy of Open Robotics fork, version 6.10 commit https://github.com/ignition-forks/dart/commit/71c7cfb97e8b583aa1ada639b6d1cf9a1835c1da
- 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
- 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