Skip to content
This repository has been archived by the owner on Oct 8, 2024. It is now read-only.

engnadeau/pybotics

Repository files navigation

Pybotics

Robot arm logo

The Python Toolbox for Robotics

Item Badges
Repo GitHub issues GitHub forks GitHub stars GitHub repo size
Releases GitHub tag PyPI Version PyPI Wheel PyPI Format semantic-release semantic-release: angular PyPI - Downloads
Compatibility PyPI Pythons PyPI Implementation
Workflows Test Release Publish
Documentation Documentation Status
Citations DOI DOI
License PyPI License
Social Twitter Follow Twitter

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

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

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

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


Icons made by Pixel perfect from www.flaticon.com