Pybotics
The Python Toolbox for Robotics
- [Explore the docs](https://pybotics.readthedocs.io) - [View demos and examples](https://github.com/nnadeau/pybotics/tree/master/examples) - [Report a bug](https://github.com/nnadeau/pybotics/issues) - [Request a feature](https://github.com/nnadeau/pybotics/issues) The project is written primarily in Python, distributed under the MIT License license, first published in 2016. Key topics include: calibration, doi, dynamics, hacktoberfest, impedance-control.
Pybotics

The Python Toolbox for Robotics
| Item | Badges |
|---|---|
| Repo | |
| Releases | |
| Compatibility | |
| Workflows | |
| Documentation | |
| Citations | |
| License | |
| Social |
Contents
Overview
Pybotics is an open-source Python toolbox for robot kinematics and calibration.
It was designed to provide a simple, clear, and concise interface to quickly simulate and evaluate common robot concepts, such as kinematics, dynamics, trajectory generations, and calibration.
The toolbox is specifically designed for use with the Modified Denavit–Hartenberg parameters convention.
Usage
Documentation
Please visit https://pybotics.readthedocs.io/
Installation
bash# python3 is mapped to pip or inside a venv pip install pybotics # python3-pip pip3 install pybotics # https://github.com/pypa/pipenv pipenv install pybotics # https://github.com/sdispater/poetry poetry add pybotics
Applications & Examples
Featured In
- Impedance Control Self-Calibration of a Collaborative Robot Using Kinematic Coupling
- PyCon Canada 2017
- Montreal-Python 2017
Citing
Please cite the following articles if you use pybotics in your research:
Nadeau, (2019). Pybotics: Python Toolbox for Robotics. Journal of Open Source Software, 4(41), 1738, https://doi.org/10.21105/joss.01738
@article{nadeau2019pybotics,
doi = {10.21105/joss.01738},
url = {https://doi.org/10.21105/joss.01738},
year = {2019},
month = sep,
publisher = {The Open Journal},
volume = {4},
number = {41},
pages = {1738},
author = {Nicholas Nadeau},
title = {Pybotics: Python Toolbox for Robotics},
journal = {Journal of Open Source Software}
}
Nadeau, Nicholas A., Ilian A. Bonev, and Ahmed Joubair. "Impedance Control Self-Calibration of a Collaborative Robot Using Kinematic Coupling." Robotics 8.2 (2019): 33.
@article{nadeau2019impedance,
title={Impedance Control Self-Calibration of a Collaborative Robot Using Kinematic Coupling},
volume={8},
ISSN={2218-6581},
url={http://dx.doi.org/10.3390/robotics8020033},
DOI={10.3390/robotics8020033},
number={2},
journal={Robotics},
publisher={MDPI AG},
author={Nadeau, Nicholas A. and Bonev, Ilian A. and Joubair, Ahmed},
year={2019},
month={Apr},
pages={33}
}
Development and Community Guidelines
Local Development
- Use poetry to install the dev virtual environment:
bashpoetry install
Docker Development
- Docker is a great tool to test the package in an isolated environment
- It is especially useful for debugging issues between python versions
bash# launch container attached to current directory docker run -v $(pwd):/$(basename $(pwd)) -w /$(basename $(pwd)) -it python:3 bash # install deps pip install poetry poetry install # run tests make test
Commits
- The repo abides by SemVer,
semantic-release, and Angular commit message syntax - It is highly recommended to use the
commitizenCLI - See commit examples below:
| Change | Commit Type |
|---|---|
| Bumped dependency version | build |
| Bumped Python requirement | feat |
Dependency Management
bash# refresh lock file poetry lock --no-update
Submit an Issue
- Navigate to the repository's issue tab
- Search for related existing issues
- If necessary, create a new issue using the provided templates
Contributing
- Please see
CONTRIBUTING.mdand the Code of Conduct for how to contribute to the project
Testing
- Please review the
Makefilefor an overview of all available tests - The most important tests and
makecommands are highlighted below:
bash# auto-format code make format # perform all static tests make lint # run all python tests make test
GitHub Actions
- This repo uses
semantic-releasesto generate releases and release notes automatically from commits- A
PERSONAL_TOKENActions secret from a Personal Token with apublic_reposcope is needed for CI releases
- A
Icons made by <a href="https://icon54.com/" title="Pixel perfect">Pixel perfect</a> from <a href="https://www.flaticon.com/" title="Flaticon"> www.flaticon.com</a>
Contributors
Showing top 9 contributors by commit count.
