Maintainer: nate AT openrobotics DOT org
Build | Status |
---|---|
Test coverage | |
Ubuntu Bionic | |
Homebrew | |
Windows |
Ignition Math, a component of Ignition Robotics, provides general purpose math classes and functions designed for robotic applications.
Ignition Math provides a wide range of functionality, including:
- Type-templated pose, matrix, vector, and quaternion classes.
- Shape representations along with operators to compute volume, density, size and other properties.
- Classes for material properties, mass, inertial, temperature, PID, kmeans, spherical coordinates, and filtering.
- Optional Eigen component that converts between a few Eigen and Ignition Math types.
See the installation tutorial.
Please refer to the examples directory.
API and tutorials can be found at https://ignitionrobotics.org/libs/math.
You can also generate the documentation from a clone of this repository by following these steps.
-
You will need Doxygen. On Ubuntu Doxygen can be installed using
sudo apt-get install doxygen
-
Clone the repository
git clone https://github.com/ignitionrobotics/ign-math
-
Configure and build the documentation.
cd ign-math; mkdir build; cd build; cmake ../; make doc
-
View the documentation by running the following command from the build directory.
firefox doxygen/html/index.html
Follow these steps to run tests and static code analysis in your clone of this repository.
-
Follow the source install instruction.
-
Run tests.
make test
-
Static code checker.
make codecheck
The C++ classes are available in Ruby code by interface files (.i
) used by swig to build a C++ extension module.
The interfaces and Ruby test codes are in the src
folder. To use a C++ class in Ruby you need to:
-
Create an interface file describing the class as in Swig and Ruby reference at The Ruby-to-C/C++ Mapping
-
Include the interface file in
/src/ing_math.i
-
Create the Ruby file and import the class as in Swig and Ruby reference at C++ Classes
make test
already runs all tests, including the ones made in Ruby, but you can run a Ruby test individually using
ctest -R Ruby_TEST.rb
Refer to the following table for information about important directories and files in this repository.
ign-math
├── examples Example programs.
├── include/ignition/math Header files.
├── src Source files and unit tests.
│ └── graph Source files for the graph classes.
├── eigen3 Files for Eigen component.
├── test
│ ├── integration Integration tests.
│ ├── performance Performance tests.
│ └── regression Regression tests.
├── tutorials Tutorials, written in markdown.
├── Changelog.md Changelog.
└── CMakeLists.txt CMake build script.
Please see CONTRIBUTING.md.
Please see CODE_OF_CONDUCT.md.
This library uses Semantic Versioning. Additionally, this library is part of the Ignition Robotics project which periodically releases a versioned set of compatible and complimentary libraries. See the Ignition Robotics website for version and release information.
This library is licensed under Apache 2.0. See also the LICENSE file.