Skip to content

Commit ce92125

Browse files
committed
Added doco and examples
1 parent 27bc9bb commit ce92125

File tree

1 file changed

+72
-26
lines changed

1 file changed

+72
-26
lines changed

docs/source/arm_ets.rst

Lines changed: 72 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,44 +3,90 @@ Elementary transform sequence (ETS) models
33

44
.. codeauthor:: Jesse Haviland
55

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:
811

912
.. runblock:: pycon
13+
:linenos:
1014

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.
1357

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.
1561

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.
1766

1867
ETS - 3D
1968
--------
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__
2272
:undoc-members:
2373
:show-inheritance:
24-
:inherited-members:
25-
:special-members:
26-
:exclude-members: count, index, sort, remove, __dict__, __weakref__, __add__, __init__, __repr__, __str__, __module__
2774

2875
ETS - 2D
2976
--------
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__
4280
:undoc-members:
4381
: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

Comments
 (0)