Skip to main content

A Real-time capable robot capacity calculation module

Project description

Python real-time capable robot task-space capacity calculation module

This module provides a framework for the generic robot capacity calculation called in a form of a python module pycapacity.

This module integrates several velocity, force and acceleration capacity calculation functions based on ellipsoids:

  • Velocity (manipulability) ellipsoid
    E_vel = {dx | dx = J.dq, ||dq||<1 }
  • Acceleration (dynamic manipulability) ellipsoid
    E_acc = {ddx | ddx = J.M^(-1).t, ||t||<1 }
  • Force ellipsoid
    E_for = {f | J^T.f = t, ||t||<1 }

And polytopes:

  • Velocity polytope
    P_vel = {dx | dx = J.dq, dq_min < dq < dq_max}
  • Acceleration polytope
    P_acc = {ddx | ddx = J.M^(-1).t, t_min < t < t_max}
  • Force polytope
    P_for = {f | J^T.f = t, t_min < t < t_max}
  • Force polytopes Minkowski sum and intersection

The force polytope functions have been implemented according to the paper:
On-line force capability evaluation based on efficient polytope vertex search
by Antun Skuric, Vincent Padois and David Daney
Published on ICRA2021

And the velocity and acceleration polytopes are resolved using the Hyper-plane shifting method:
Characterization of Parallel Manipulator Available Wrench Set Facets
by Gouttefarde M., Krut S.
In: Lenarcic J., Stanisic M. (eds) Advances in Robot Kinematics: Motion in Man and Machine. Springer, Dordrecht (2010)

Installation

All you need to do to install it is:

pip install pycapacity

And include it to your python project

import pycapacity

Other way to install the code is by installing it directly from the git repo:

pip install git+https://gitlab.inria.fr/askuric/pycapacity

Installation to enable modifying the source

Clone or download the repository to your pc:

cd your/project/path
git clone https://gitlab.inria.fr/askuric/pycapacity.git

Put the folder in your project directory:

my_project:
|
├── your
├── project 
├── files
|
└── pycapacity

And then import it in your python code for example:

import pycapacity.pycapacity as capacity

Note: if you do not install the module using pip you will need to import it using double name pycapacity.pycapacity.

All the smarts is placed in the pycapacity.py file so that is where you will find all the implementations and where to go to modify the code.

Module functions docs

See full docs at the link

Algorithms:


Code examples

"""
A simple example program 3d force polytope 
evaluation of a randomised 6dof robot 
"""
from pycapacity import force_polytope_withfaces as polytope
import numpy as np

m = 3 # 3d forces
n = 6 # robot dof

J = np.array(np.random.rand(m,n)) # random jacobian matrix

t_min = np.ones((n,1))  # joint torque limits max and min
t_max = -np.ones((n,1))

vertices, faces = polytope(J,t_min, t_max) # calculate the polytope vertices and faces

print(vertices) # display the vertices

See demo_notebook.ipynb for one example use case of the module.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pycapacity-1.0.4.tar.gz (3.8 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page