/tasho

Primary LanguagePythonGNU Lesser General Public License v3.0LGPL-3.0

Tasho - A model predictive control toolchain for constraint-based task specification of robot motions

pipeline status coverage report license: LGPL v3 html docs

Description

Tasho stands for "TAsk Specification with receding HOrizon control". It is a user-friendly Python toolbox that provides a unified workflow that streamlines and automates many steps from specification to experimental deployment to enable rapid prototyping of OCP/MPC based motion skills in robotics.

(Note: Tutorials Python notebooks on how to use Tasho coming up soon by the end of March.)

Authors: Ajay Sathya and Alejandro Astudillo.
With support from Joris Gillis, Wilm Decré, Goele Pipeleers and Jan Swevers from the MECO Research Team at KU Leuven, Belgium.

License: Tasho is released under the GNU LGPLv3 license.

Installation

Option 1: Installing with pip

You can install Tasho (ideally into a virtual environment) via pip using the following command:

pip install git+https://gitlab.kuleuven.be/meco-software/tasho.git@master

Option 2: Installing from cloned repository

Alternatively, you can clone this repository and install Tasho from source. You just need to (i) clone the repository, (ii) move into Tasho's root directory, and (iii) run the setup.py script with the install option. It will install your application into the virtualenv site-packages folder and also download and install all dependencies:

git clone https://gitlab.kuleuven.be/meco-software/tasho.git
cd tasho
python setup.py install

You could also use the develop option, instead of install, during the execution of setup.py as python setup.py develop. This has the advantage of just installing a link to the site-packages folder instead of copying the data over. You can then modify/update the source code without having to run python setup.py install again after every change.

Examples

Several examples are provided with Tasho. The following examples list is arranged in ascending order of complexity. (Uncomment the GUI option for visualization.)

Videos (click on the images below)

Time optimal motion planning with obstacle avoidance and approach motion

[Watch the video]

Dual arm laser contouring

The dual arm robot follows a trajectory such that the laser pointer held by one hand follows a desired path on the workpiece held by an other. We use MPC for executing this motion, which is a systematic approach for satisfying constraints on angle-of-incidence, distance between the laser and workpiece, laser contouring rate, etc.

[Watch the video]

MPC for object pick-up

The green cube is the crude estimate of the white cube's future position and is provided as the set-point to the MPC controller

Bouncing ball example

The solver computes the initial velocity of the ball so that the ball reaches the goal position (green cross) after a specified number of bounces. The multi-stage capability of Tasho allows to easily optimize through discontinuous state-transitions that occur during bounces.

Orocos component for hardware deployment

The Orocos component for hardware deployment of the Tasho code can be found here

Submitting an issue

Please submit an issue if you want to report a bug or propose new features.