TaskspaceImpedanceController Class Reference

#include <armarx/control/common/control_law/TaskspaceImpedanceController.h>

Classes

struct  Config
 you can set the following values from outside of the rt controller via Ice interfaces More...
 
struct  NonRtStatus
 
struct  RtStatus
 internal status of the controller, containing intermediate variables, mutable targets More...
 

Public Member Functions

void firstRun ()
 
void initialize (const VirtualRobot::RobotNodeSetPtr &rns)
 
void preactivateInit (const VirtualRobot::RobotNodeSetPtr &rns)
 
void run (const Config &cfg, ControlTarget &targets)
 
bool updateControlStatus (const Config &cfg, const RobotStatus &robotStatus)
 

Public Attributes

TripleBuffer< NonRtStatusbufferNonRtToOnPublish
 
TripleBuffer< NonRtStatusbufferNonRtToRt
 
TripleBuffer< NonRtStatusbufferNonRtToUser
 
TripleBuffer< RtStatusbufferRtToOnPublish
 
std::atomic< bool > isInitialized {false}
 
VirtualRobot::RobotNodePtr tcp
 

Detailed Description

Definition at line 38 of file TaskspaceImpedanceController.h.

Member Function Documentation

◆ firstRun()

void firstRun ( )

Definition at line 68 of file TaskspaceImpedanceController.cpp.

◆ initialize()

void initialize ( const VirtualRobot::RobotNodeSetPtr &  rns)

Definition at line 20 of file TaskspaceImpedanceController.cpp.

+ Here is the call graph for this function:

◆ preactivateInit()

void preactivateInit ( const VirtualRobot::RobotNodeSetPtr &  rns)

Definition at line 34 of file TaskspaceImpedanceController.cpp.

+ Here is the call graph for this function:

◆ run()

void run ( const Config cfg,
ControlTarget targets 
)

run in rt thread

--------------------------— Impedance control ------------------------------------------— calculate pose error between target pose and current pose !!! This is very important: you have to keep postion and orientation both with UI unit (meter, radian) to calculate impedance force.

--------------------------— Nullspace PD Control -----------------------------------------------—

--------------------------— Map TS target force to JS -----------------------------------------------—

--------------------------— write torque target -----------------------------------------------—

Definition at line 135 of file TaskspaceImpedanceController.cpp.

+ Here is the call graph for this function:

◆ updateControlStatus()

bool updateControlStatus ( const Config cfg,
const RobotStatus robotStatus 
)

check size and value

--------------------------— get current status of robot ------------------------------------------— original data in ArmarX use the following units: position in mm, joint angles and orientation in radian, velocity in mm/s and radian/s, etc. here we convert mm to m, if you use MP from outside, make sure to convert it back to mm

Definition at line 80 of file TaskspaceImpedanceController.cpp.

+ Here is the call graph for this function:

Member Data Documentation

◆ bufferNonRtToOnPublish

TripleBuffer<NonRtStatus> bufferNonRtToOnPublish

Definition at line 102 of file TaskspaceImpedanceController.h.

◆ bufferNonRtToRt

TripleBuffer<NonRtStatus> bufferNonRtToRt

Definition at line 101 of file TaskspaceImpedanceController.h.

◆ bufferNonRtToUser

TripleBuffer<NonRtStatus> bufferNonRtToUser

Definition at line 103 of file TaskspaceImpedanceController.h.

◆ bufferRtToOnPublish

TripleBuffer<RtStatus> bufferRtToOnPublish

Definition at line 99 of file TaskspaceImpedanceController.h.

◆ isInitialized

std::atomic<bool> isInitialized {false}

Definition at line 116 of file TaskspaceImpedanceController.h.

◆ tcp

VirtualRobot::RobotNodePtr tcp

Definition at line 105 of file TaskspaceImpedanceController.h.


The documentation for this class was generated from the following files: