# Commits

committed f4bcdd0

• Participants
• Parent commits 0e91547
• Branches dev-DH

# File ars/model/robot/dh.py

T = \operatorname{}^{0}A_1 \cdot \operatorname{}^{1}A_2 \cdots \operatorname{}^{n - 1}A_n

"""
-from ars.utils.mathematical import sin, cos
+from ars.utils.mathematical import sin, cos, matrix_multiply

def theta(self):
"""Synonym of :meth:angle."""
return self._angle
+
+
+
+	"""Serial chain of links (intances of :class:DHLink).
+
+	It contains a list of them. A chain is created this way:
+
+
+	"""
+
+
+	###########################################################################
+	# properties
+	###########################################################################
+
+	@property
+
+	@property
+	def T(self):
+		"""Synonym of :meth:calc_transform."""
+		return self.calc_transform()
+
+	###########################################################################
+	# methods
+	###########################################################################
+
+	def calc_transform(self):
+		r"""Calculate chain's homogeneous transformation matrix.
+
+		Matrix T defines the pose (position and orientation) of the end
+		effector with respect to the base.
+
+		.. math::
+
+			T = \operatorname{}^{0}A_1 \cdot \operatorname{}^{1}A_2 \cdots \operatorname{}^{n - 1}A_n
+
+		:return: 4x4 matrix
+		:rtype: tuple of tuples
+
+		"""
+		T = ((1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), ( 0, 0, 0, 1))
+
+		"""Attach serial_link to the end of this object.
+		:type serial_link: :class:SerialLink