1+ """
2+ @author: Tassos Natsakis
3+ """
4+
15import numpy as np
26from roboticstoolbox import DHRobot , RevoluteMDH
37from spatialmath import SE3
48
5-
69class AL5D (DHRobot ):
710 """
811 Class that models a Lynxmotion AL5D manipulator
@@ -30,7 +33,6 @@ class AL5D(DHRobot):
3033 :References:
3134
3235 - 'Reference of the robot <http://www.lynxmotion.com/c-130-al5d.aspx>'_
33-
3436
3537 .. codeauthor:: Tassos Natsakis
3638 """ # noqa
@@ -52,7 +54,32 @@ def __init__(self, symbolic=False):
5254 alpha = [pi , pi / 2 , pi , pi ]
5355 offset = [pi / 2 , pi , - 0.0427 , - 0.0427 - pi / 2 ]
5456
55- # mass data not yet available
57+ # mass data as measured
58+ mass = [0.187 , 0.044 , 0.207 , 0.081 ]
59+
60+ # center of mass as calculated through CAD model
61+ center_of_mass = [
62+ [0.01724 , - 0.00389 , 0.00468 ],
63+ [0.07084 , 0.00000 , 0.00190 ],
64+ [0.05615 , - 0.00251 , - 0.00080 ],
65+ [0.04318 , 0.00735 , - 0.00523 ],
66+ ]
67+
68+ # moments of inertia are practically zero
69+ moments_of_inertia = [
70+ [0 , 0 , 0 , 0 , 0 , 0 ],
71+ [0 , 0 , 0 , 0 , 0 , 0 ],
72+ [0 , 0 , 0 , 0 , 0 , 0 ],
73+ [0 , 0 , 0 , 0 , 0 , 0 ]
74+ ]
75+
76+ joint_limits = [
77+ [- pi / 2 , pi / 2 ],
78+ [- pi / 2 , pi / 2 ],
79+ [- pi ,2 , pi / 2 ],
80+ [- pi / 2 , pi / 2 ],
81+ ]
82+
5683 links = []
5784
5885 for j in range (4 ):
@@ -61,7 +88,12 @@ def __init__(self, symbolic=False):
6188 a = a [j ],
6289 alpha = alpha [j ],
6390 offset = offset [j ],
64- G = 1
91+ r = center_of_mass [j ],
92+ I = moments_of_inertia [j ],
93+ G = 1 ,
94+ B = 0 ,
95+ Tc = [0 ,0 ],
96+ qlim = joint_limits [j ]
6597 )
6698 links .append (link )
6799
0 commit comments