Awesome
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
# 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:
poetry 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
# 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
commitizen
CLI - See commit examples below:
Change | Commit Type |
---|---|
Bumped dependency version | build |
Bumped Python requirement | feat |
Dependency Management
# 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.md
and the Code of Conduct for how to contribute to the project
Testing
- Please review the
Makefile
for an overview of all available tests - The most important tests and
make
commands are highlighted below:
# auto-format code
make format
# perform all static tests
make lint
# run all python tests
make test
GitHub Actions
- This repo uses
semantic-releases
to generate releases and release notes automatically from commits- A
PERSONAL_TOKEN
Actions secret from a Personal Token with apublic_repo
scope 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>