The development of robotics is always closely related to mathematics. But sometime pure mathematical expressions are boring and difficult to understand, so I hope to show the magic of mathematics through some interesting robotics demonstrations.
We want to select some widely used and practical algorithms. for each algorithm, we aim to
- Provide a readable python implementation.
- Show a detailed mathematical proof.
- To show the math behind it, minimal use of third-party libraries.
- Install
libsuitesparse-dev
, if you want to use the sparse solver.
sudo apt-get install -y libsuitesparse-dev
- Install
mathR
(this repository)
git clone https://github.com/scomup/MathematicalRobotics.git
cd MathematicalRobotics
pip3 install -e .
Or Install mathR
directly from the git URL.
pip install -e git+https://github.com/scomup/MathematicalRobotics.git#egg=mathR
We have developed a Gauss-Newton method library implemented in pure Python.
We also provide some demos on Lie-Group based points matching using our library.
Lie group Document:
python3 -m mathR.guass_newton_method.demo_2d
python3 -m mathR.guass_newton_method.demo_3d
python3 -m mathR.guass_newton_method.demo_line
We have developed a graph optimization library implemented in pure Python. In comparison to well-known graph optimization libraries like g2o, gtsam, ceres, etc., our implementation is highly readable and ideal for studying purposes.
python3 -m mathR.graph_optimization.demo_g2o_se2
dataset: sphere2500.g2o 1
python3 -m mathR.graph_optimization.demo_g2o_se3
dataset: manhattanOlson3500.g2o 1
python3 -m mathR.slam.demo_bundle_adjustment
dataset: Venice: problem-427-310384-pre 2
python3 -m mathR.robot_geometry.demo_p2line_matching
python3 -m mathR.robot_geometry.demo_p2plane_matching
python3 -m mathR.robot_geometry.demo_plane_cross_cube
Footnotes
-
Datasets are available in the open source package of vertigo. ↩ ↩2
-
The datasets used in the demo are available in the project Bundle Adjustment in the Large. ↩