Module: robotics.special
additional support functions for robotics; The library is built on Denavit-Hartenberg Parameters and Homogeneous Transformations (HT) to describe transformations and coordinate systems
Author: Martin Sereinig
Date: 2021-22-09
Function: VelocityManipulability
VelocityManipulability(robot
, HT
, mode
)
- function description:compute velocity manipulability measure for given pose (homogeneous transformation)
- input:
robot
: robot classHT
: actual pose as homogeneous transformaton matrixmode
: rotational or translational part of the movement - output:velocity manipulability measure as scalar value, defined as \(\sqrt(det(JJ^T))\)
- author:Martin Sereinig
- notes:compute velocity dependent manipulability definded by Yoshikawa, see
Function: ForceManipulability
ForceManipulability(robot
, HT
, mode
, singularWeight = 100
)
- function description:compute force manipulability measure for given pose (homogeneous transformation)
- input:
robot
: robot classHT
: actual pose as hoogenious transformaton matrixsingularWeight
: Weighting of singular configurations where the value would be infinity, default value=100mode
: rotational or translational part of the movement - output:force manipulability measure as scalar value, defined as \(\sqrt((det(JJ^T))^{-1})\)
- author:Martin Sereinig
- notes:compute force dependent manipulability definded by Yoshikawa, see
Function: StiffnessManipulability
StiffnessManipulability(robot
, JointStiffness
, HT
, mode
, singularWeight = 1000
)
- function description:compute cartesian stiffness measure for given pose (homogeneous transformation)
- input:
robot
: robot classJointStiffness
: joint stiffness matrixHT
: actual pose as homogeneous transformaton matrixmode
: rotational or translational part of the movementsingularWeight
: Weighting of singular configurations where the value would be infinity,default value=1000 - output:stiffness manipulability measure as scalar value, defined as minimum Eigenvalaue of the Cartesian stiffness matrixCartesian stiffness matrix
- author:Martin Sereinig
- notes:
- status:this function is currently under development and under testing!
Function: JointJacobian
JointJacobian(robot
, HTJoint
, HTLink
)
- function description:compute joint jacobian for each frame for given pose (homogeneous transformation)
- input:
robot
: robot classHT
: actual pose as homogeneous transformaton matrix - output:Link(body)-Jacobi matrix JJ: \(\LU{i}{JJ_i}=[\LU{i}{J_{Ri}},\; \LU{i}{J_{Ti}}]\) for each link i, seperated in rotational (\(J_R\)) and translational (\(J_T\)) part of Jacobian matrix located in the \(i^{th}\) coordiante system, see
- author:Martin Sereinig
- notes:runs over number of HTs given in HT (may be less than number of links), caclulations in link coordinate system located at the end of each link regarding Standard Denavid-Hartenberg parameters, see
Function: MassMatrix
MassMatrix(robot
, HT
, jointJacobian
)
- function description:compute mass matrix from jointJacobian
- input:
robot
: robot structureHT
: actual pose as homogeneous transformaton matrixjointJacobian
: provide list of jacobians as provided by function JointJacobian(…) - output:MM: Mass matrix
- author:Martin Sereinig
- notes:Mass Matrix calculation calculated in joint coordinates regarding (std) DH parameter:** Dynamic equations in minimal coordinates as described in Mehrkörpersysteme by Woernle, , p206, eq6.90.** Caclulations in link coordinate system at the end of each link
Relevant Examples (Ex) and TestModels (TM) with weblink to github:
shapeOptimization.py (Ex), solverFunctionsTestEigenvalues.py (Ex), ACFtest.py (TM), linearFEMgenericODE2.py (TM), manualExplicitIntegrator.py (TM), objectFFRFTest.py (TM), objectGenericODE2Test.py (TM)
Function: DynamicManipulability
DynamicManipulability(robot
, HT
, MassMatrix
, Tmax
, mode
, singularWeight = 1000
)
- function description:compute dynamic manipulability measure for given pose (homogeneous transformation)
- input:
robot
: robot structureHT
: actual pose as homogeneous transformaton matrixTmax
: maximum joint torquesmode
: rotational or translational part of the movementMassMatrix
: Mass (inertia) Maxtrix provided by the function MassMatrixsingularWeight
: Weighting of singular configurations where the value would be infinity,default value=1000 - output:dynamic manipulability measure as scalar value, defined as minimum Eigenvalaue of the dynamic manipulability matrix Ndynamic manipulability matrix
- author:Martin Sereinig
- notes:acceleration dependent manipulability definded by Chiacchio, see , eq.32. The eigenvectors and eigenvalues of N ([eigenvec eigenval]=eig(N))gives the direction and value of minimal and maximal accaleration )
- status:this function is currently under development and under testing!
Function: CalculateAllMeasures
CalculateAllMeasures(robot
, robotDic
, q
, mode
, flag = [0,0,0,0]
)
- function description:calculation of 4 different manipulability measures using a certain serial robot
- input:
robot
: robot classrobotDic
: robot dictionaryq
: joint position vectormode
: trans or rot, for used parts of the manipulator Jacobi MatrixTmax
: maximum joint torquesmode
: rotational or translational part of the movementflag
: flag vector to swich individual measure on and of [flagmv,flagmf,flagmst,flagma] = [1,1,1,1] - output:[mv,mf,mst,mstM,ma,maM]
- author:Martin Sereinig
- notes:
- status:this function is currently under development and under testing!