18 from packages.nima.robotics.kinematics.jacobian
import jacobian
as jaclib
19 from packages.nima.mathematics.algebra
import vectors_and_matrices
as vecmat
20 from packages.nima.mathematics.geometry
import metric, trajectory
as trajlib
24 refernce point only for introducing an endeffector position
26 reference_position == Reference Position + Target Point for this reference position + actual position for this point
28 "reference_position" is a class or data structure containing properties by which a point in the task space of a chained link manipulator is defined.
30 TASK POSITION is RELATIVE to the "FRAME" of the link,
31 the "FRAME" of the link is determined via DH parameters and the zero configuration
34 def __init__(self, config_settings, link_point_list):
36 link_point_list == WEIGHTING
38 Create and define the default values for class properties
43 self.
lp = link_point_list
56 self.
error = metric.Position_Metric()
60 self.error_jacobian.clear()
65 self.geometric_jacobian.clear()
69 s =
" Actual Position (mm): " + vecmat.vector_to_str(1000*(self.
position())) +
"\n"
70 s +=
" Desired Position (mm): " + vecmat.vector_to_str(1000*(self.
rd)) +
"\n"
71 s +=
" Position Error (mm): " + vecmat.vector_to_str(1000*(self.error.value)) +
"\n"
81 assert len_H == self.config_settings.DOF, genpy.err_str(__name__, self.__class__.__name__,
'set_transfer_matrices',
'The number of given transfer_matrices is: '+str(len_H)+
' which does not match the settings DOF ('+str(self.config_settings.DOF)+
')')
87 self.geometric_jacobian.clear()
88 self.error_jacobian.clear()
92 self.
ra = numpy.zeros((3))
93 for j
in range(0, len(self.
lp)):
94 x = numpy.dot(self.
H[self.
lp[j].ln], vecmat.extend_vector(self.
lp[j].pv))
95 self.
ra = self.
ra + self.
lp[j].w * x[0:3]
def set_transfer_matrices
def set_analytic_jacobian