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

This class represents a model of the joint configuration of a chained-link manipulator. More...

Inheritance diagram for Manipulator_Configuration:

Public Member Functions

def __init__
 The Class Constructor: More...
 
def set_joint_bounds
 Only use this function to set the joint limits. More...
 
def config_str
 Use this function to see the current configuration of the manipulator. 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 joints_in_range
 This function is used to check if all values of the given joint array are in their feasibility range. More...
 
def mapfrom_virtual
 This function converts the free joint values from unlimited virtual joint-space into their actual values. More...
 
def mapto_virtual
 This function converts the current actual free joint values (picked from property q) into their equivalent values in the unlimited virtual joint-space. More...
 
def initialize
 
def set_config_virtual
 Sets the configuration given values of the free joints in the virtual joint-space. More...
 
def joint_stepsize_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 in order to respect joint position and speed limits? This function returns a feasible interval for the stepsize in the given direction. More...
 
def free_config
 This function picks and returns the values of free joints among all the joints in the given argument q. More...
 
def set_config
 Use this function to set the joint configuration to the given desired values. More...
 
def random_config
 Generates a random joint configuration in the defined feasible range in the settings. More...
 
def grid_config
 If The feasible range of each joint is divided into a number of equal intervals, a joint-space lattice or grid is established. More...
 

Public Attributes

 config_settings
 
 q
 
 qvr
 
 ql
 
 qh
 
 jmc_a
 
 jmc_b
 
 jmc_c
 
 jmc_f
 
 jmc_g
 

Detailed Description

This class represents a model of the joint configuration of a chained-link manipulator.

It contains current actual and virtual(mapped) joint values and the required joint settings. The class also, has methods to check the feasibility of given joint values, set a given configuration, forward and inverse conversion of joint values into the mapped virtual space and a number of auxiliary methods. This class contains everything you need to handle joint vlaues of the manipulator.

Definition at line 90 of file manipulator_configuration.py.

Constructor & Destructor Documentation

def __init__ (   self,
  settings 
)

The Class Constructor:

Parameters
settingsAn instance of class Manipulator_Configuration_Settings containing the joint settings of the manipulator including joint types, joint limits and mapping functions

Definition at line 94 of file manipulator_configuration.py.

Member Function Documentation

def config_str (   self)

Use this function to see the current configuration of the manipulator.

Returns
A string containing the current values of joints in degrees

Definition at line 124 of file manipulator_configuration.py.

def free_config (   self,
  q 
)

This function picks and returns the values of free joints among all the joints in the given argument q.

Parameters
Anumpy vector of size njoint containing the actual values of all the joints
Returns
A numpy vector of size DOF containing the values of free joints

Definition at line 405 of file manipulator_configuration.py.

def grid_config (   self,
  config_number,
  number_of_intervals 
)

If The feasible range of each joint is divided into a number of equal intervals, a joint-space lattice or grid is established.

If a manipulator has \( n \) degrees of freedom, and each joint is divided to \( N + 1 \) intervals, a typical lattice \( \boldsymbol{\Lambda}_N \) in the joint space can be generated in the following form:

\[ \boldsymbol{\Lambda}_N = \bigg \lbrace \boldsymbol{q}_o + \sum _{i = 1} ^{n} k_i \cdot a_i \cdot \boldsymbol{b}_i \quad \bigg \arrowvert \quad k_i \in \mathbb{Z}_N \bigg \rbrace \]

This function creates a lattice in which N is specified by argument number_of_intervals and returns the joint configuration corresponding to a specific node of the grid. This node is specified by argument config_number which is the order of the configuration in the gridded joint-space. The function does not change manipulator configuration.

Returns
A numpy array of length DOF containing the joint values of the specified node of the generated grid.

Definition at line 488 of file manipulator_configuration.py.

def initialize (   self)
Everything regarding joint parameters needed to be done before running kinematic calculations
This function must be called whenever you change joint limits or change type of a joint.

Definition at line 251 of file manipulator_configuration.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 148 of file manipulator_configuration.py.

def joint_stepsize_interval (   self,
  direction,
  max_speed = gen.infinity,
  delta_t = 0.001 
)

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 in order to respect joint position and speed limits? This function returns a feasible interval for the stepsize in the given direction.

In other words, it gives an interval for the magnitude of the joint angles correction vector so that both joint position and speed limits are fulfilled. The joint direction of change must be multiplied by a scalar value in this range so that the applied changes are feasible.

Parameters
directionA numpy array of size DOF specifying the direction of change
max_speedA float parameter specifying the maximum feasible speed for a joint change. (Set as infinity by default)
delta_tThe step time in which the change(correction) is to be applied.
Returns
An instance of type Interval()

Definition at line 379 of file manipulator_configuration.py.

def 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 DOF 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 159 of file manipulator_configuration.py.

def mapfrom_virtual (   self,
  qs 
)

This function converts the free joint values from unlimited virtual joint-space into their actual values.

Parameters
qsA numpy array of length DOF containing the values of free joints in the virtual joint-space.
Returns
A numpy array of length DOF containing the actual values of free joints equivalent to the given argument qs.

Definition at line 169 of file manipulator_configuration.py.

def mapto_virtual (   self)

This function converts the current actual free joint values (picked from property q) into their equivalent values in the unlimited virtual joint-space.

Returns
A numpy array of length DOF containing the current values of free joints in the unlimited virtual joint-space.

Definition at line 193 of file manipulator_configuration.py.

def random_config (   self)

Generates a random joint configuration in the defined feasible range in the settings.

This function does not change manipulator configuration.

Returns
An array of real numbers containing the joint values of the generated random configuration.

Definition at line 468 of file manipulator_configuration.py.

def set_config (   self,
  qd,
  set_virtual = True 
)

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

If property joint_limits_respected is True, the system checks for given qd to be in the defined feasible range and fails with an error if given joint values are beyond the limits If property joint_limits_respected is False, any value for the joints are accepted.

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

Definition at line 433 of file manipulator_configuration.py.

def set_config_virtual (   self,
  qvrd 
)

Sets the configuration given values of the free joints in the virtual joint-space.

This function changes and updates the values of the joint configuration in the unlimited virtual space (property qvr). The actual joint values (property q) is then calculated and updated as well. This method changes the joint configuration. Therefore a forward kinematics update will be implemented.

Parameters
qvrdA numpy array of length DOF containing the desired values of the free joints in the unlimited space.

Definition at line 355 of file manipulator_configuration.py.

def set_joint_bounds (   self,
  ql,
  qh 
)

Only use this function to set the joint limits.

Do not change the properties directly.

Parameters
qlA numpy array of length njoint containing the lower bounds of the joints
qhA numpy array of length njoint containing the upper bounds of the joints

Definition at line 117 of file manipulator_configuration.py.

Member Data Documentation

config_settings

Definition at line 97 of file manipulator_configuration.py.

jmc_a

Definition at line 304 of file manipulator_configuration.py.

jmc_b

Definition at line 305 of file manipulator_configuration.py.

jmc_c

Definition at line 306 of file manipulator_configuration.py.

jmc_f

Definition at line 307 of file manipulator_configuration.py.

jmc_g

Definition at line 308 of file manipulator_configuration.py.

q

Definition at line 100 of file manipulator_configuration.py.

qh

Definition at line 270 of file manipulator_configuration.py.

ql

Definition at line 269 of file manipulator_configuration.py.

qvr

Definition at line 103 of file manipulator_configuration.py.


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