Skip to content

NeLy-EPFL/sequential-inverse-kinematics

Repository files navigation

License python DOI

🪰 Overview

SeqIKPy is a Python package that provides an implementation of inverse kinematics (IK) that is based on the open-source Python package IKPy. In constrast to the current IK approaches that aims to match only the end-effector, SeqIKPy is designed to calculate the joint angles of the fly body parts to align the 3D pose of the entire kinematic chain to a desired 3D pose. In particular, you can use SeqIKPy in the pipeline shown below.

📐 Features

  • Pose alignment: Align of 3D pose data to a fly biomechanical model, e.g., NeuroMechFly.
  • Leg inverse kinematics: Calculate leg joint angles using sequential inverse kinematics.
  • Head inverse kinematics: Calculate head and antenna joint angles using the vector dot product method.
  • Visualization and animation: Visualize and animate the results in 3D.

📚 Documentation

Documentation can be found here.

🛠️ Installation

You can install the newest version of the package manually by running the following line in the terminal:

$ pip install https://github.com/NeLy-EPFL/sequential-inverse-kinematics.git

🏁 Quick Start

Please see the quick start guide here.

💻 Contributing

We welcome contributions from the community. If you would like to contribute to the project, please refer to the contribution guidelines. Also, read our code of conduct. If you have any questions, please feel free to open an issue or contact the developers.

📖 License

This project is licensed under the Apache 2.0 License.

🐞 Issues

If you encounter any bugs or request a new feature, please open an issue in our issues page.

💬 Citing

If you find this package useful in your research, please consider citing it using the following BibTeX entry:

@software{ozdil2024seqikpy,
  author       = {Ozdil, Pembe Gizem and Ijspeert, Auke and Ramdya, Pavan},
  title        = {sequential-inverse-kinematics: v1.0.0},
  month        = jun,
  year         = 2024,
  publisher    = {Zenodo},
  version      = {v1.0.0},
  doi          = {10.5281/zenodo.12601316},
  url          = {https://doi.org/10.5281/zenodo.12601316}
}