Actin®  Version 5.2.0
Software for Robotics Simulation and Control
EcJacobianTool Class Reference

Provides a tool for calculating manipulator Jacobians. More...

#include <ecJacobianTool.h>

Public Member Functions

 EcJacobianTool ()
 default constructor
 
virtual ~EcJacobianTool ()
 destructor
 
 EcJacobianTool (const EcJacobianTool &orig)
 copy constructor
 
EcJacobianTooloperator= (const EcJacobianTool &orig)
 assignment operator
 
virtual const EcEndEffectorSetendEffectorSet () const
 get end-effector set
 
virtual void setEndEffectorSet (const EcEndEffectorSet *endEffectorSet)
 set end-effector set
 
virtual const EcIndividualManipulatormanipulator () const
 get manipulator
 
virtual void setManipulator (const EcIndividualManipulator *manipulator)
 set manipulator
 
virtual const EcManipulatorActivePositionStateactivePositionState () const
 get active position state
 
virtual void setPositionState (const EcPositionState &positionState)
 
virtual EcBoolean isFixedBase () const
 get the floating-base flag
 
virtual void setIsFixedBase (EcBoolean isFixedBase)
 set the floating-base flag
 
virtual EcU32 numJacobianColumns () const
 get the number of Jacobian columns
 
virtual EcU32 numHardJacobianRows () const
 get the number of rows in the hard Jacobian
 
virtual EcU32 numSoftJacobianRows () const
 get the number of rows in the soft Jacobian
 
virtual EcU32 numAllJacobianRows () const
 get the number of rows in the complete Jacobian
 
virtual EcU32 numJacobianRows (const EcU32Vector &endEffectorIndices) const
 get the number of rows based on the given indices
 
virtual EcBoolean getJacobian (const EcU32Vector &endEffectorIndices, const EcControlExpressionContainer *container, EcManipulatorJacobian &jacobian)
 
virtual EcBoolean getHardJacobian (EcManipulatorJacobian &jacobian) const
 
virtual EcBoolean getSoftJacobian (EcManipulatorJacobian &jacobian) const
 
virtual EcBoolean getAllJacobian (EcManipulatorJacobian &jacobian) const
 
virtual EcBoolean getJacobian (const EcU32Vector &endEffectorIndices, EcManipulatorJacobian &jacobian) const
 
virtual void hardSparsityAnalysis (const EcControlExpressionContainer *pContainer, EcU32Vector &sparsityIndices, EcU32Vector &zeroStartIndices, EcBoolean &isSparse)
 
virtual void softSparsityAnalysis (const EcControlExpressionContainer *pContainer, EcU32Vector &sparsityIndices, EcU32Vector &zeroStartIndices, EcBoolean &isSparse)
 
virtual void allSparsityAnalysis (const EcControlExpressionContainer *pContainer, EcU32Vector &sparsityIndices, EcU32Vector &zeroStartIndices, EcBoolean &isSparse)
 
virtual void sparsityAnalysis (const EcU32Vector &endEffectorIndices, const EcControlExpressionContainer *pContainer, EcU32Vector &sparsityIndices, EcU32Vector &zeroStartIndices, EcBoolean &isSparse)
 
virtual const EcBooleanVectorVectorsparsityMatrix () const
 get the original (non-processed) sparsity matrix
 
virtual const EcU32VectorrowEndEffectorIndices () const
 

Static Public Member Functions

static EcBoolean computeJointGroups (const EcBooleanVectorVector &sparsityMatrix, const EcU32Vector &endEffectorIndices, EcJointGroupVector &jointGroups)
 
static EcBoolean computeSubJacobianIndexMaps (const EcBooleanVectorVector &sparsityMatrix, const EcJointGroupVector &jointGroups, EcSubJacobianMapVector &subJacobianIndexMaps)
 
static EcBoolean decoupleJacobian (const EcReArray &jacobian, const EcSubJacobianMapVector &subJacobianIndexMaps, EcReArrayVector &subJacobians)
 
static EcJacobianTool nullObject ()
 get a null object
 

Protected Member Functions

virtual void sparsityAnalysis (const EcU32Vector &endEffectorIndices, EcU32Vector &sparsityIndices, EcU32Vector &zeroStartIndices, EcBoolean &isSparse)
 calculate sparsity matrix.
 

Static Protected Member Functions

static EcBoolean sparsityAnalysis (const EcU32 nJoint, const EcU32 nDoc, EcBooleanVectorVector &sparsityArray, EcU32Vector &sparsityIndices, EcU32Vector &zeroStartIndices)
 calculate sparsity matrix.
 

Protected Attributes

const EcControlExpressionContainerm_pControlDescriptions
 a pointer to the control expression
 
const EcIndividualManipulatorm_pManipulator
 a pointer to the manipulator
 
EcManipulatorActiveStatem_pActState
 a pointer to the position state
 
const EcEndEffectorSetm_pEndEffectorSet
 the end-effector description
 
EcBoolean m_IsFixedBase
 flag indicating if the base is fixed or floating
 
EcManipulatorActiveState m_ActiveState
 position state (needed if above pointer initialized to zero)
 
EcBooleanVectorVector m_SparsityArray
 sparsity matrix that is processed so 0 stays on the top right corner (in class just for memory allocation efficiency)
 
EcBooleanVectorVector m_OriginalSparsityArray
 original sparsity matrix (before being processed). Used to compute joint groups and sub-Jacobians
 
EcU32Vector m_RowEndEffectorIndices
 the end-effector index for each row.
 

Detailed Description

Provides a tool for calculating manipulator Jacobians.

Provides a tool for calculating manipulator Jacobians.

Definition at line 23 of file ecJacobianTool.h.

Member Function Documentation

virtual void EcJacobianTool::allSparsityAnalysis ( const EcControlExpressionContainer pContainer,
EcU32Vector sparsityIndices,
EcU32Vector zeroStartIndices,
EcBoolean isSparse 
)
virtual

calculate sparsity matrix for all constraints. If given a container, initialize the jacobian parameters.

static EcBoolean EcJacobianTool::computeJointGroups ( const EcBooleanVectorVector sparsityMatrix,
const EcU32Vector endEffectorIndices,
EcJointGroupVector &  jointGroups 
)
static

compute the groups of joints that contribute to the same end effectors from sparsity matrix

Parameters
[in]sparsityMatrixThe sparsity matrix
[out]jointGroupsThe groups of joints that contribute to the same end effectors
Returns
True if successful or false otherwise.
static EcBoolean EcJacobianTool::computeSubJacobianIndexMaps ( const EcBooleanVectorVector sparsityMatrix,
const EcJointGroupVector &  jointGroups,
EcSubJacobianMapVector &  subJacobianIndexMaps 
)
static

compute the mappings of indices between full Jacobian and sub-Jacobians

Parameters
[in]sparsityMatrixThe sparsity matrix
[in]jointGroupsThe groups of joints that contribute to the same end effectors
[out]subJacobianIndexMapsThe mappings of indices between full Jacobian and sub-Jacobians
Returns
True if successful or false otherwise.
static EcBoolean EcJacobianTool::decoupleJacobian ( const EcReArray jacobian,
const EcSubJacobianMapVector &  subJacobianIndexMaps,
EcReArrayVector subJacobians 
)
static

decouple a given Jacobian matrix into multiple completely independent sub-Jacobians.

Parameters
[in]jacobianThe Jacobian to be decoupled
[in]subJacobianIndexMapsThe mappings of indices between full Jacobian and sub-Jacobians
[out]subJacobiansThe completely independent sub-Jacobians
Returns
True if successful or false otherwise. False means that the Jacobian cannot be decoupled.
virtual EcBoolean EcJacobianTool::getAllJacobian ( EcManipulatorJacobian jacobian) const
virtual

calculate manipulator Jacobian for all constraints. It is made by stacking the individual end-effector jacobians, with the point end effectors in order on top, followed by the frame end effectors in order. The Jacobian corresponds to end-effector motion represented in the system frame.

virtual EcBoolean EcJacobianTool::getHardJacobian ( EcManipulatorJacobian jacobian) const
virtual

calculate manipulator Jacobian for hard constraints. It is made by stacking the individual end-effector jacobians, with the point end effectors in order on top, followed by the frame end effectors in order. The Jacobian corresponds to end-effector motion represented in the system frame.

virtual EcBoolean EcJacobianTool::getJacobian ( const EcU32Vector endEffectorIndices,
const EcControlExpressionContainer container,
EcManipulatorJacobian jacobian 
)
virtual

calculate manipulator Jacobian for indices. The Jacobian is made by stacking the individual end-effector jacobians, with the point end effectors in order on top, followed by the frame end effectors in order. The Jacobian corresponds to end-effector motion represented in the system frame.

virtual EcBoolean EcJacobianTool::getJacobian ( const EcU32Vector endEffectorIndices,
EcManipulatorJacobian jacobian 
) const
virtual

calculate manipulator Jacobian for indices. The Jacobian is made by stacking the individual end-effector jacobians, with the point end effectors in order on top, followed by the frame end effectors in order. The Jacobian corresponds to end-effector motion represented in the system frame.

virtual EcBoolean EcJacobianTool::getSoftJacobian ( EcManipulatorJacobian jacobian) const
virtual

calculate manipulator Jacobian for soft constraints. It is made by stacking the individual end-effector jacobians, with the point end effectors in order on top, followed by the frame end effectors in order. The Jacobian corresponds to end-effector motion represented in the system frame.

virtual void EcJacobianTool::hardSparsityAnalysis ( const EcControlExpressionContainer pContainer,
EcU32Vector sparsityIndices,
EcU32Vector zeroStartIndices,
EcBoolean isSparse 
)
virtual

calculate sparsity matrix for the hard-constraint jacobian. If given a container, initialize the jacobian parameters.

virtual const EcU32Vector& EcJacobianTool::rowEndEffectorIndices ( ) const
virtual

get the end-effector index for each row. This vector's size is the same as the number of rows of the sparsity matrix It identifies which EE the row of sparsity matrix belongs to.

virtual void EcJacobianTool::setPositionState ( const EcPositionState positionState)
virtual

set the position state. This is only used if no external active state is provided when calculating the Jacobian

virtual void EcJacobianTool::softSparsityAnalysis ( const EcControlExpressionContainer pContainer,
EcU32Vector sparsityIndices,
EcU32Vector zeroStartIndices,
EcBoolean isSparse 
)
virtual

calculate sparsity matrix for the soft-constraint jacobian. If given a container, initialize the jacobian parameters.

virtual void EcJacobianTool::sparsityAnalysis ( const EcU32Vector endEffectorIndices,
const EcControlExpressionContainer pContainer,
EcU32Vector sparsityIndices,
EcU32Vector zeroStartIndices,
EcBoolean isSparse 
)
virtual

calculate sparsity matrix for the given indices. If given a container, initialize the jacobian parameters.


The documentation for this class was generated from the following file:
Created by Energid Technologies www.energid.com
Copyright © 2016 Energid. All trademarks mentioned in this document are property of their respective owners.