@@ -3,44 +3,90 @@ Elementary transform sequence (ETS) models
3
3
4
4
.. codeauthor :: Jesse Haviland
5
5
6
- A number of models are defined in terms of elementary transform sequences.
7
- They can be listed by:
6
+ Elementary transforms are canonic rotations or translations about, or along,
7
+ the x-, y- or z-axes. The amount of rotation or translation can be a constant
8
+ or a variable. A variable amount corresponds to a joint.
9
+
10
+ Consider the example:
8
11
9
12
.. runblock :: pycon
13
+ :linenos:
10
14
11
- >>> import roboticstoolbox as rtb
12
- >>> rtb.models.list(mtype = " ETS" )
15
+ >>> from roboticstoolbox import ETS
16
+ >>> ETS .rx(45 , ' deg' )
17
+ >>> ETS .tz(0.75 )
18
+ >>> e = ETS .rx(0.3 ) * ETS .tz(0.75 )
19
+ >>> print (e)
20
+ >>> e.eval()
21
+
22
+ In lines 2-5 we defined two elementary transforms. Line 2 defines a rotation
23
+ of 45° about the x-axis, and line 4 defines a translation of 0.75m along the z-axis.
24
+ Compounding them in line 6, the result is the two elementary transforms in a
25
+ sequence - an elementary transform sequence (ETS). An ETS can be arbitrarily
26
+ long.
27
+
28
+ Line 8 *evaluates * the sequence, substituting in values, and the result is an
29
+ SE(3) matrix encapsulated in an ``SE3 `` object.
30
+
31
+ The real power comes from having variable arguments to the elementary transforms
32
+ as shown in this example where we define a simple two link planar manipulator.
33
+
34
+
35
+ .. runblock :: pycon
36
+ :linenos:
37
+
38
+ >>> from roboticstoolbox import ETS
39
+ >>> e = ETS .rz() * ETS .tx(1 ) * ETS .rz() * ETS .tx(1 )
40
+ >>> print (e)
41
+ >>> len (e)
42
+ >>> e[1 :3 ]
43
+ >>> e.eval([0 , 0 ])
44
+ >>> e.eval([90 , - 90 ], ' deg' )
45
+
46
+ Line 2 succinctly describes the kinematics in terms of elementary transforms: a rotation around the z-axis by the
47
+ first joint angle, then a translation in the x-direction, then a rotation around
48
+ the z-axis by the second joint angle, and finally a translation in the
49
+ x-direction.
50
+
51
+ Line 3 creates the elementary transform sequence, with variable transforms.
52
+ ``e `` is a single object that encapsulates a list of elementary transforms, and list like
53
+ methods such as ``len `` as well as indexing and slicing as shown in lines 5-8.
54
+
55
+ Lines 9-18 *evaluate * the sequence, and substitutes elements from the passed
56
+ arrays as the joint variables.
13
57
14
- :references:
58
+ This approach is general enough to be able to describe any serial-link robot
59
+ manipulator. For a branched manipulator we can use ETS to describe the
60
+ connections between every parent and child link pair.
15
61
16
- - https://petercorke.com/robotics/a-simple-and-systematic-approach-to-assigning-denavit-hartenberg-parameters/
62
+ **Reference: **
63
+
64
+ - `A simple and systematic approach to assigning Denavit-Hartenberg parameters <https://petercorke.com/robotics/a-simple-and-systematic-approach-to-assigning-denavit-hartenberg-parameters >`_.
65
+ Peter I. Corke, IEEE Transactions on Robotics, 23(3), pp 590-594, June 2007.
17
66
18
67
ETS - 3D
19
68
--------
20
- .. automodule :: roboticstoolbox.robot.ETS
21
- :members:
69
+
70
+ .. autoclass :: roboticstoolbox.robot.ETS.ETS
71
+ :members: rx, ry, rz, tx, ty, tz, eta, eval, T, joints, axis, jtype, config, __getitem__, __mul__, __repr__, __str__
22
72
:undoc-members:
23
73
:show-inheritance:
24
- :inherited-members:
25
- :special-members:
26
- :exclude-members: count, index, sort, remove, __dict__, __weakref__, __add__, __init__, __repr__, __str__, __module__
27
74
28
75
ETS - 2D
29
76
--------
30
- .. automodule :: roboticstoolbox.robot.ETS2
31
- :members:
32
- :undoc-members:
33
- :show-inheritance:
34
- :inherited-members:
35
- :special-members:
36
- :exclude-members: count, index, sort, remove, __dict__, __weakref__, __add__, __init__, __repr__, __str__, __module__
37
-
38
- ET
39
- ------------
40
- .. automodule :: roboticstoolbox.robot.ET
41
- :members:
77
+
78
+ .. autoclass :: roboticstoolbox.robot.ETS2.ETS
79
+ :members: rx, ry, rz, tx, ty, tz, eta, eval, T, joints, axis, jtype, config, __getitem__, __mul__, __repr__, __str__
42
80
:undoc-members:
43
81
:show-inheritance:
44
- :inherited-members:
45
- :special-members:
46
- :exclude-members: count, index, sort, remove, __dict__, __weakref__, __add__, __init__, __repr__, __str__, __module__
82
+
83
+ ETS Robot models
84
+ ----------------
85
+
86
+ A number of models are defined in terms of elementary transform sequences.
87
+ They can be listed by:
88
+
89
+ .. runblock :: pycon
90
+
91
+ >>> import roboticstoolbox as rtb
92
+ >>> rtb.models.list(mtype = " ETS" )
0 commit comments