Tasho - A model predictive control toolchain for constraint-based task specification of robot motions
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.
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
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.
Several examples are provided with Tasho. The following examples list is arranged in ascending order of complexity. (Uncomment the GUI option for visualization.)
- Hello world: examples/hello_world_AT.py
- Point-to-point motion: examples/P2P_AT.py
- Tunnel-following optimal control: examples/pose_tunnel_AT.py
- Bouncing ball: examples/bouncing_ball.py
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.
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
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.
The Orocos component for hardware deployment of the Tasho code can be found here
Please submit an issue if you want to report a bug or propose new features.