MAGIKS
1.1
Manipulator General Inverse Kinematic Solver
|
This class represents a model of the joint configuration of a chained-link manipulator. More...
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 | |
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.
def __init__ | ( | self, | |
settings | |||
) |
The Class Constructor:
settings | An 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.
def config_str | ( | self | ) |
Use this function to see the current configuration of the manipulator.
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
.
A | numpy vector of size njoint containing the actual values of all the joints |
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.
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.
i | An integer between 0 to 6 specifying the joint number to be checked |
qi | A float parameter specifying the value for the i-th 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.
direction | A numpy array of size DOF specifying the direction of change |
max_speed | A float parameter specifying the maximum feasible speed for a joint change. (Set as infinity by default) |
delta_t | The step time in which the change(correction) is to be applied. |
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.
qd | A numpy array of size DOF containing the values to be checked |
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.
qs | A numpy array of length DOF containing the values of free joints in the virtual joint-space. |
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.
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.
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.
qd | A numpy array of size 7 containing the desired joint values to be set |
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.
qvrd | A 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.
ql | A numpy array of length njoint containing the lower bounds of the joints |
qh | A numpy array of length njoint containing the upper bounds of the joints |
Definition at line 117 of file manipulator_configuration.py.
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.