The Mobile Robotics library (mrob) is our common framework for implementing our robotics research and projects. It includes a core set of functionalities such as geometric transformations (SE3), factor graphs for general state estimation, optimization, 3D point cloud registration and more to come.
The general structure for the algorithms implemented:
- common: common matrix definitions and typedefs.
- geometry: Geometric transformations, mostly Rotations and Rigid Body Transformations in 3D.
- Fgraph: Factor Graphs for state estimation
- PCReg: Point Cloud Registration.
- pybind Python bindings (using pybind11) for the above methods.
The library is mainly designed to run in Python, that is, algorithms are written in C++ and bound with Python for general purpose use.
MROB has a Python package for a wide range of versions of Windows, macOS and Linux.
python -m pip install mrob
python -m pip install cibuildwheel
cibuildwheel --platform [linux|windows|macos] mrobpy/
python -m pip install mrob --no-index --find-links wheelhouse/
For more options visit https://cibuildwheel.readthedocs.io/en/stable/setup/
For comprehensive description and usage examples in Python please refer to mrobpy.
You can also use MROB as a pure C++ library.
The present library is meant to be a self-contained library. However, there are few dependencies:
- C++'14
- CMake
- Eigen (included as a submodule)
- pybind11 (included as a submodule)
- python3-distutils
- python3-dev
- Catch2 v2.x branch (included as a submodule)
This is the list of required packages to install:
sudo apt install build-essential cmake python3-distutils python3-dev
Standard github cloning, adding the recursive term for submodules.
git clone --recursive https://github.com/prime-slam/mrob.git
If there was ever a submodule update (not frequently) the command to use:
git submodule update --recursive
cmake -B build [-DBUILD_TESTING=ON]
cmake --build build --config Release
You can also manually build a Python wheel
cmake -B build
cmake --build build --target build-wheel
To build a correct redistributable wheel we recommend building them on manylinux-2014, macOS 10.15 and Windows 2019 for a variety of version of Linux, macOS and Windows respectively.
You may also find useful pipeline presented in tools.
Note: If your OS is Windows and you don't have Microsoft Visual C++ Redistributable package installed, then you need to install it additionally. If you are using a 32-bit Python, then install the package for the X86 architecture. If you are using 64-bit Python, then install the package for the X64 architecture. Don't be afraid to install both packages.
Apache-2.0 License