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
:
All you need to do to install it is:
pip install pycapacity
And include it to your python project
import pycapacity
This module integrates several velocity, force and acceleration capacity calculation functions based on ellipsoids:
- Velocity (manipulability) ellipsoid
- Acceleration (dynamic manipulability) ellipsoid
- Force ellipsoid
And polytopes:
- Velocity polytope
- Acceleration polytope
- Force polytope
- 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)
Module functions
acceleration_ellipsoid
: acceleration ellipsoid calculation (dynamic manipulability ellipsoid)acceleration_polytope
: Acceleration polytope calculating functionacceleration_polytope_withfaces
: Acceleration polytope calculating functionforce_ellipsoid
: force manipulability ellipsoid calculationforce_polytope
: Force polytope representing the capacities of the two robots in a certain configurationforce_polytope_intersection
: Force polytope representing the intersection of the capacities of the two robots in certain configurations.force_polytope_intersection_withfaces
: Force polytope representing the intersection of the capacities of the two robots in certain configurations.force_polytope_sum_withfaces
: Force polytope representing the minkowski sum of the capacities of the two robots in certain configurations.force_polytope_withfaces
: Force polytope representing the capacities of the two robots in a certain configuration.hyper_plane_shift_method
: Hyper plane shifting method implementation used to solve problems of a form:make_2d
: Take a list of 3D(cooplanar) points and make it 2Dmake_unique
: Remove repetitions of columnsorder_index
: Order clockwise 2D pointsvelocity_ellipsoid
: velocity manipulability ellipsoid calculationvelocity_polytope
: Velocity polytope calculating functionvelocity_polytope_withfaces
: Velocity polytope calculating function, with faces
Algorithms:
hyper_plane_shift_method
: Hyper plane shifting method implementation used to solve problems of a form:
Code examples
"""
A simple example program 3d force polytope
evaluation of a randomised 6dof robot
"""
from pycapacity import force_polytope_withfaces as polytope
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
See demo_notebook.ipynb
for one example use case of the module.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for pycapacity-1.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43fbf3d7e4ca921a8cb88364dc421a386d4edfae00ce33bd7c1a54089208cbb8 |
|
MD5 | ec0f625af8506f776469312e56180101 |
|
BLAKE2b-256 | 7b9c7391267b11499d5a659702f201c6daf9f23de84d12068d223a9dafc12e43 |