MAGIKS  1.1
Manipulator General Inverse Kinematic Solver
 All Classes Namespaces Files Functions Variables Pages
Public Member Functions | Public Attributes | List of all members
PR2_ARM_Configuration Class Reference

Contains properties and methods regarding the PR2 arm joint-space. More...

Public Member Functions

def __init__
 The Class Constructor: More...
 
def joint_in_range
 This function is used to check if a given value for specific joint is in its feasibility range. More...
 
def all_joints_in_range
 This function is used to check if all values of the given joint array are in their feasibility range. More...
 
def midrange_error
 Use this function to get the midrange error vector. More...
 
def joint_stepsize_interval
 This function gives an interval for the magnitude of the arm joint angles correction vector. More...
 
def set_config
 Use this function to set the joint configuration to the given desired values. More...
 
def closest_config_metric
 protected More...
 
def objective_function
 Use this function to find the current value of the objective function. More...
 

Public Attributes

 q
 A numpy array of size 7 containing the current values of the joints. More...
 
 q_dot
 A numpy array of size 7 containing the current velocities of the joints. More...
 
 q_ddot
 A numpy array of size 7 containing the current accelerations of the joints. More...
 
 ql
 A numpy array of size 7 containing the lower bounds of the arm joints. More...
 
 qh
 A numpy array of size 7 containing the upper bounds of the arm joints. More...
 
 qm
 A numpy array of size 7 containing a set of reference values for the joint angles. More...
 
 w
 A numpy array of size 7 containing the weights of each joint in the objective function. More...
 
 c
 
 s
 
 s1_mult1
 protected More...
 
 s2_mult1
 protected More...
 
 s3_mult1
 
 c0_mult
 
 c1_mult
 
 mid_dist_sq
 

Detailed Description

Contains properties and methods regarding the PR2 arm joint-space.

This class has methods and properties for managing the joint-space of a PR2 robot arm. It contains the joint position, velocity and acceleration values and joint limits.

Definition at line 144 of file pr2_arm_kinematics.py.

Constructor & Destructor Documentation

def __init__ (   self,
  ql = default_ql,
  qh = default_qh,
  W = default_W 
)

The Class Constructor:

Parameters
qlA numpy array of size 7 containing the lower bounds of the arm joints
qhA numpy array of size 7 containing the upper bounds of the arm joints
WA numpy array of size 7 containing the weights of each joint in the objective function.
       The joint weights will be used in the optimization of redundancy. 
      If the weight of a joint is 0, the joint is considered as unlimited. 
      This means the value of that joint does not need to be in a specific range.  

Note:

Only ql, qh, qm and W can be manipulated by the user.

Definition at line 153 of file pr2_arm_kinematics.py.

Member Function Documentation

def all_joints_in_range (   self,
  qd 
)

This function is used to check if all values of the given joint array are in their feasibility range.

Parameters
qdA numpy array of size 7 containing the values to be checked
Returns
A boolean: If The given joints "qd" are out of the range specified by properties: ql and qh, returns False, otherwise returns True

Definition at line 220 of file pr2_arm_kinematics.py.

def closest_config_metric (   self,
  q 
)

protected

Definition at line 355 of file pr2_arm_kinematics.py.

def joint_in_range (   self,
  i,
  qi 
)

This function is used to check if a given value for specific joint is in its feasibility range.

Parameters
iAn integer between 0 to 6 specifying the joint number to be checked
qiA float parameter specifying the value for the i-th joint
Returns
A boolean: True if the given joint angle qi is in feasible range for the i-th joint (within the specified joint limits for that joint)

Definition at line 208 of file pr2_arm_kinematics.py.

def joint_stepsize_interval (   self,
  direction,
  max_speed = genmath.infinity,
  dt = 0.001 
)

This function gives an interval for the magnitude of the arm joint angles correction vector.

Parameters
directionA numpy array of size 7 specifying the direction of change
max_speedA float parameter specifying the maximum feasible speed for a joint change. (Set by infinity by default)
delta_tThe step time in which the change(correction) is to be applied.
Returns
An instance of type Interval()
The correction of joints is always restricted by joint limits and maximum feasible joint speed
If you want to move the joints in a desired direction, how much are you allowed to move?    
This function returns a feasible interval for the stepsize in the given direction. 
The joint direction of change must be multiplied by a scalar value in this range so that the applied changes
are feasible.

Definition at line 238 of file pr2_arm_kinematics.py.

def midrange_error (   self)

Use this function to get the midrange error vector.

Parameters
None
Returns
A numpy array of size 7 containing the weighted deviations of the joints from their midrange values

Definition at line 230 of file pr2_arm_kinematics.py.

def objective_function (   self)

Use this function to find the current value of the objective function.

Parameters
None
Returns
A float containing the current value of the objective function (deviation from midrange). This objective function depends on the values of the joints

Definition at line 368 of file pr2_arm_kinematics.py.

def set_config (   self,
  qd 
)

Use this function to set the joint configuration to the given desired values.

Parameters
qdA numpy array of size 7 containing the desired joint values to be set
Returns
A boolean: True if the given joints are in range and the configuration is set, False if not
This function sets the robot joint configuration to the given "qd"
This function should not be called by the end user. 
Always use function "set_config" in class PR2_ARM()  

Definition at line 269 of file pr2_arm_kinematics.py.

Member Data Documentation

c

Definition at line 286 of file pr2_arm_kinematics.py.

c0_mult

Definition at line 302 of file pr2_arm_kinematics.py.

c1_mult

Definition at line 305 of file pr2_arm_kinematics.py.

mid_dist_sq

Definition at line 369 of file pr2_arm_kinematics.py.

q

A numpy array of size 7 containing the current values of the joints.

This property should not be manipulated by the user. Use method Set_Config() to change this property. The joints are in the following order: q[0] : Shoulder Pan Joint, q[1] : Shoulder Lift Joint, q[2] : Upper Arm Roll Joint, q[3] : Elbow Flex Joint, q[4] : Forearm Roll Joint, q[5] : Wrist Flex Joint, q[6] : Wrist Roll Joint

Definition at line 165 of file pr2_arm_kinematics.py.

q_ddot

A numpy array of size 7 containing the current accelerations of the joints.

Definition at line 171 of file pr2_arm_kinematics.py.

q_dot

A numpy array of size 7 containing the current velocities of the joints.

Definition at line 168 of file pr2_arm_kinematics.py.

qh

A numpy array of size 7 containing the upper bounds of the arm joints.

Definition at line 177 of file pr2_arm_kinematics.py.

ql

A numpy array of size 7 containing the lower bounds of the arm joints.

Definition at line 174 of file pr2_arm_kinematics.py.

qm

A numpy array of size 7 containing a set of reference values for the joint angles.

This parameter can be used as reference joint values for redundancy optimization. The redundancy will be used to set the joints as close as possible to these reference values. This property is by default set as the middle of joint ranges.

Definition at line 184 of file pr2_arm_kinematics.py.

s

Definition at line 287 of file pr2_arm_kinematics.py.

s1_mult1

protected

Definition at line 292 of file pr2_arm_kinematics.py.

s2_mult1

protected

Definition at line 296 of file pr2_arm_kinematics.py.

s3_mult1

Definition at line 299 of file pr2_arm_kinematics.py.

w

A numpy array of size 7 containing the weights of each joint in the objective function.

The joint weights will be used in the optimization of redundancy. If the weight of a joint is 0, the joint is considered as unlimited. This means the value of that joint does not need to be in a specific range.

Definition at line 191 of file pr2_arm_kinematics.py.


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