agimus_sot.control.gripper.PositionAndAdmittanceControl Class Reference
Inheritance diagram for agimus_sot.control.gripper.PositionAndAdmittanceControl:
[legend]
Collaboration diagram for agimus_sot.control.gripper.PositionAndAdmittanceControl:
[legend]

Public Member Functions

def __init__ (self, name, theta_open, estimated_theta_closed, desired_torque, period, threshold_up, threshold_down, wn, z, nums_tor, denoms_tor)
 
def resetToPositionControl (self)
 
def setupFeedbackSimulation (self, mass, damping, spring, theta0)
 Setup event to tell when object is grasped. More...
 
def readCurrentsFromRobot (self, robot, jointNames, torque_constants, first_order_filter=False)
 
def readTorquesFromRobot (self, robot, jointNames)
 
def addTracerRealTime (self, robot)
 
def outputPosition (self)
 
def referencePositionIn (self)
 
def setCurrentPositionIn (self, sig)
 
def setCurrentConditionIn (self, sig)
 
def switchEventToTorqueCheck (self)
 
def switchEventToPositionCheck (self)
 
- Public Member Functions inherited from agimus_sot.control.gripper.AdmittanceControl
def __init__ (self, name, estimated_theta_closed, desired_torque, period, nums, denoms)
 
def setupFeedbackSimulation (self, mass, damping, spring, theta0)
 Setup event to tell when object is grasped and simulate torque feedback. More...
 
def readPositionsFromRobot (self, robot, jointNames)
 
def readCurrentsFromRobot (self, robot, jointNames, torque_constants, first_order_filter=False)
 
def readTorquesFromRobot (self, robot, jointNames)
 
def addOutputTo (self, robot, jointNames, mix_of_vector, sot=None)
 
def addTracerRealTime (self, robot)
 
def outputPosition (self)
 
def referenceTorqueIn (self)
 
def setCurrentPositionIn (self, sig)
 
def currentTorqueIn (self)
 
def torqueConstants (self)
 

Public Attributes

 theta_open
 
 threshold_up
 
 threshold_down
 
 position_controller
 
 switch
 
- Public Attributes inherited from agimus_sot.control.gripper.AdmittanceControl
 name
 
 est_theta_closed
 
 desired_torque
 
 dt
 
 torque_controller
 
 omega2theta
 
 sim_contact_condition
 phi -> torque More...
 
 phi2torque
 

Detailed Description

Encapsulate two controllers: a position controller and a torque controller.
The position controller is used to create a contact.
The torque controller is then use to maintain a desired force.
Both controller outputs a velocity command to be sent to entity Device.

Constructor & Destructor Documentation

◆ __init__()

def agimus_sot.control.gripper.PositionAndAdmittanceControl.__init__ (   self,
  name,
  theta_open,
  estimated_theta_closed,
  desired_torque,
  period,
  threshold_up,
  threshold_down,
  wn,
  z,
  nums_tor,
  denoms_tor 
)
- theta_open:             Angle for the opened gripper.
- estimated_theta_closed: Use for the initial position control. It should correspond to a configuration in collision.
                  The closer to contact configuration, the least the overshoot.
- desired_torque: The torque to be applied on the object.
- period: The SoT integration time.
- threshold_up  : When one component of the torque becomes greater than threshold, switch to torque control
- threshold_down: When all components of the torque become less    than threshold, switch to position control
- wn, z: corner frequency and damping of the second order position control.
- nums_tor, denoms_tor: coefficient of the admittance controller:
   \sum_i denoms[i] * d^i theta / dt^i = \sum_j nums[j] d^j torque / dt^j

Member Function Documentation

◆ addTracerRealTime()

def agimus_sot.control.gripper.PositionAndAdmittanceControl.addTracerRealTime (   self,
  robot 
)

◆ outputPosition()

def agimus_sot.control.gripper.PositionAndAdmittanceControl.outputPosition (   self)

◆ readCurrentsFromRobot()

def agimus_sot.control.gripper.PositionAndAdmittanceControl.readCurrentsFromRobot (   self,
  robot,
  jointNames,
  torque_constants,
  first_order_filter = False 
)

References agimus_sot.control.gripper.AdmittanceControl._multiply_by_torque_constants, and agimus_sot.control.gripper.PositionAndAdmittanceControl.setCurrentConditionIn().

◆ readTorquesFromRobot()

def agimus_sot.control.gripper.PositionAndAdmittanceControl.readTorquesFromRobot (   self,
  robot,
  jointNames 
)

References agimus_sot.control.gripper.AdmittanceControl._torque_selec, and agimus_sot.control.gripper.PositionAndAdmittanceControl.setCurrentConditionIn().

◆ referencePositionIn()

def agimus_sot.control.gripper.PositionAndAdmittanceControl.referencePositionIn (   self)

◆ resetToPositionControl()

def agimus_sot.control.gripper.PositionAndAdmittanceControl.resetToPositionControl (   self)

◆ setCurrentConditionIn()

◆ setCurrentPositionIn()

def agimus_sot.control.gripper.PositionAndAdmittanceControl.setCurrentPositionIn (   self,
  sig 
)

◆ setupFeedbackSimulation()

def agimus_sot.control.gripper.PositionAndAdmittanceControl.setupFeedbackSimulation (   self,
  mass,
  damping,
  spring,
  theta0 
)

Setup event to tell when object is grasped.

References agimus_sot.control.gripper.AdmittanceControl._sim_torque, and agimus_sot.control.gripper.PositionAndAdmittanceControl.setCurrentConditionIn().

◆ switchEventToPositionCheck()

def agimus_sot.control.gripper.PositionAndAdmittanceControl.switchEventToPositionCheck (   self)

◆ switchEventToTorqueCheck()

def agimus_sot.control.gripper.PositionAndAdmittanceControl.switchEventToTorqueCheck (   self)

Member Data Documentation

◆ position_controller

◆ switch

◆ theta_open

agimus_sot.control.gripper.PositionAndAdmittanceControl.theta_open

◆ threshold_down

agimus_sot.control.gripper.PositionAndAdmittanceControl.threshold_down

◆ threshold_up

agimus_sot.control.gripper.PositionAndAdmittanceControl.threshold_up