Skip to content

An experimental implementation of Rigid Body Dynamics algorithms.

License

Notifications You must be signed in to change notification settings

agroudiev/dynamics

Repository files navigation

dynamics

An experimental implementation of Rigid Body Dynamics algorithms.

API

The API is designed to be close to the Pinocchio library. This project is not a direct port of Pinocchio, but rather an experimental attempt to create a similar API in Rust. The goal is to provide a high-level interface for rigid body dynamics, while also allowing for low-level access to the underlying algorithms. Examples of the Python API can be found in the examples/python directory.

Please note that this project is still in its early stages and is not recommended for production use. The API may change significantly in the future as the project evolves.

Python dependencies

Along with classical dependencies like numpy, this project uses:

  • collider for collision detection
  • meshcat for visualization Support for other visualization libraries might be added in the future.

Installation

This project is implemented using both Rust and Python. The Python bindings are created using PyO3, and maturin as the build system.

The use of miniconda is recommended to manage the dependencies. To install the dependencies, run the following command:

conda env create -f dynamics_env.yml

To activate the environment, run:

conda activate dynamics

maturin can be installed directly using pip:

pip install maturin

To build the Rust code and install it directly as a Python package in the current dynamics virtual environment, run:

maturin develop --release -m dynamics-py/Cargo.toml

To run unit test of all crates, run:

cargo test

About

An experimental implementation of Rigid Body Dynamics algorithms.

Resources

License

Stars

Watchers

Forks