1
+ """
2
+ @author: Tassos Natsakis
3
+ """
4
+
1
5
import numpy as np
2
6
from roboticstoolbox import DHRobot , RevoluteMDH
3
7
from spatialmath import SE3
4
8
5
-
6
9
class AL5D (DHRobot ):
7
10
"""
8
11
Class that models a Lynxmotion AL5D manipulator
@@ -30,7 +33,6 @@ class AL5D(DHRobot):
30
33
:References:
31
34
32
35
- 'Reference of the robot <http://www.lynxmotion.com/c-130-al5d.aspx>'_
33
-
34
36
35
37
.. codeauthor:: Tassos Natsakis
36
38
""" # noqa
@@ -52,7 +54,32 @@ def __init__(self, symbolic=False):
52
54
alpha = [pi , pi / 2 , pi , pi ]
53
55
offset = [pi / 2 , pi , - 0.0427 , - 0.0427 - pi / 2 ]
54
56
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
+
56
83
links = []
57
84
58
85
for j in range (4 ):
@@ -61,7 +88,12 @@ def __init__(self, symbolic=False):
61
88
a = a [j ],
62
89
alpha = alpha [j ],
63
90
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 ]
65
97
)
66
98
links .append (link )
67
99
0 commit comments