Maintainer: scpeters AT openrobotics DOT org
Build | Status |
---|---|
Test coverage | |
Ubuntu Focal | |
Homebrew | |
Windows |
Gazebo Physics, a component of Gazebo, provides an abstract physics interface designed to support simulation and rapid development of robot applications.
Many physics simulation software libraries have been designed for different applications (gaming, robotics, science) and with different features (rigid or deformable contact, 2d or 3d). Gazebo Physics is designed on the premise that there is not a single physics engine that is universally best for all simulation contexts. It should be possible to support a different set of features for each physics engine according to its capabilities. A physics engine can then be chosen for each application based on its context.
Gazebo Physics provides the following functionality:
- Granular definition of physics engine features as optional API's.
- Plugin interface for loading physics engines with requested features at runtime.
- Features for common aspects of rigid body dynamic simulation
- Construct model from SDFormat file.
- Collision shapes (such as box, sphere, cylinder, mesh, heightmap).
- Joint types (such as revolute, prismatic, fixed, ball, screw, universal).
- Step simulation, get/set state, apply inputs.
- Reference implementation of physics plugin using dartsim.
- CompositeData structures for efficiently using native types in API.
We recommend following the Binary Install instructions to get up and running as quickly and painlessly as possible.
The Source Install instructions should be used if you need the very latest software improvements, you need to modify the code, or you plan to make a contribution.
On Ubuntu systems, apt-get
can be used to install ignition-physics2
:
sudo apt install libignition-physics2-dev
Source installation can be performed in UNIX systems by first installing the necessary prerequisites followed by building from source.
Install required dependencies:
sudo apt update
sudo apt-get -y install lsb-release
sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D2486D2DD83DB69272AFE98867170598AF249743
sudo apt-add-repository -s "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -c -s) main"
sudo apt-get build-dep -y ignition-physics2
Use gcc-8:
sudo apt update
sudo apt-get -y install g++-8
sudo update-alternatives --install \
/usr/bin/gcc gcc /usr/bin/gcc-8 800 \
--slave /usr/bin/g++ g++ /usr/bin/g++-8 \
--slave /usr/bin/gcov gcov /usr/bin/gcov-8
-
Clone the repository
git clone https://github.com/gazebosim/gz-physics -b ign-physics2
-
Configure and build
cd gz-physics; mkdir build; cd build; cmake ..; make
-
Optionally, install Gazebo Physics
sudo make install
Please refer to the examples directory.
Refer to the following table for information about important directories and files in this repository.
gz-physics
├── dartsim Files for dartsim plugin component.
├── include/ignition/physics Header files.
├── mesh Files for mesh component.
├── resources Model and mesh resource files used by tests.
├── sdf Files for sdf component.
├── src Source files and unit tests.
├── test
│ ├── benchmark Benchmark tests.
│ ├── integration Integration tests.
│ ├── performance Performance tests.
│ ├── plugins Plugins used in tests.
│ ├── regression Regression tests.
│ └── static_assert Tests involving compilation failures.
├── tutorials Tutorials, written in markdown.
├── Changelog.md Changelog.
└── CMakeLists.txt CMake build script.
Please see the contribution guide.
Please see CODE_OF_CONDUCT.md.
This library uses Semantic Versioning. Additionally, this library is part of the Gazebo project which periodically releases a versioned set of compatible and complimentary libraries. See the Gazebo website for version and release information.
This library is licensed under Apache 2.0. See also the LICENSE file.