Skip to content

Commit 1bfad9d

Browse files
committed
polish doco
systematic edits of DH robot doco
1 parent d72e6db commit 1bfad9d

File tree

13 files changed

+418
-167
lines changed

13 files changed

+418
-167
lines changed

docs/source/arm_dh.rst

Lines changed: 47 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,57 @@
11
Arm Type Robots - DH
2-
===================================================
2+
====================
33

44
.. codeauthor:: Jesse Haviland
55

6-
SerialLink
7-
------------
8-
.. automodule:: roboticstoolbox.robot.SerialLink
6+
A number of models are defined in terms of Denavit-Hartenberg parameters, either
7+
standard or modified. They can be listed by:
8+
9+
.. runblock:: pycon
10+
11+
>>> import roboticstoolbox as rtb
12+
>>> rtb.models.list(mtype="DH")
13+
14+
DHRobot
15+
-------
16+
17+
.. inheritance-diagram:: roboticstoolbox.DHRobot
18+
:top-classes: roboticstoolbox.Robot
19+
:parts: 2
20+
21+
The various :ref:`DH Models` all subclass this class.
22+
23+
.. automodule:: roboticstoolbox.robot.DHRobot
924
:members:
1025
:undoc-members:
1126
:show-inheritance:
1227
:inherited-members:
1328

29+
DHLink
30+
------
31+
32+
The ``DHRobot`` is defined by a list of ``DHLink`` subclass objects.
33+
34+
.. inheritance-diagram:: roboticstoolbox.RevoluteDH roboticstoolbox.PrismaticDH roboticstoolbox.RevoluteMDH roboticstoolbox.PrismaticMDH
35+
:top-classes: roboticstoolbox.robot.Link
36+
:parts: 2
37+
38+
39+
.. automodule:: roboticstoolbox.robot.DHLink
40+
:members:
41+
:undoc-members:
42+
:show-inheritance:
43+
:inherited-members:
1444

1545
Revolute - standard DH
16-
----------------------
46+
^^^^^^^^^^^^^^^^^^^^^^
1747
.. automodule:: roboticstoolbox.robot.RevoluteDH
1848
:members:
1949
:undoc-members:
2050
:show-inheritance:
2151
:inherited-members:
2252

2353
Prismatic - standard DH
24-
-----------------------
54+
^^^^^^^^^^^^^^^^^^^^^^^
2555
.. automodule:: roboticstoolbox.robot.PrismaticDH
2656
:members:
2757
:undoc-members:
@@ -30,27 +60,28 @@ Prismatic - standard DH
3060

3161

3262
Revolute - modified DH
33-
----------------------
63+
^^^^^^^^^^^^^^^^^^^^^^
3464
.. automodule:: roboticstoolbox.robot.RevoluteMDH
3565
:members:
3666
:undoc-members:
3767
:show-inheritance:
3868
:inherited-members:
3969

4070
Prismatic - modified DH
41-
-----------------------
71+
^^^^^^^^^^^^^^^^^^^^^^^
4272
.. automodule:: roboticstoolbox.robot.PrismaticMDH
4373
:members:
4474
:undoc-members:
4575
:show-inheritance:
4676
:inherited-members:
47-
48-
------------
49-
.. automodule:: roboticstoolbox.robot.DHLink
50-
:members:
51-
:undoc-members:
52-
:show-inheritance:
53-
:inherited-members:
5477

5578

56-
79+
.. _DH Models:
80+
81+
Models
82+
------
83+
84+
.. automodule:: roboticstoolbox.models.DH
85+
:members:
86+
:undoc-members:
87+
:show-inheritance:

roboticstoolbox/models/DH/Ball.py

Lines changed: 35 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,26 +10,45 @@
1010

1111

1212
class Ball(DHRobot):
13-
'''
14-
reate model of a ball manipulator
13+
"""
14+
Class that models a ball manipulator
1515
16-
Ball() creates the workspace variable ball which describes the
17-
kinematic characteristics of a serial link manipulator with 50 joints
16+
``Ball()`` is a class which models a ball robot and
17+
describes its kinematic characteristics using standard DH
18+
conventions.
19+
20+
The ball robot is an *abstract* robot with an arbitrary number of joints
1821
that folds into a ball shape.
1922
20-
Ball(N) as above but creates a manipulator with N joints.
23+
.. runblock:: pycon
24+
25+
>>> import roboticstoolbox as rtb
26+
>>> robot = rtb.models.DH.Ball()
27+
>>> print(robot)
28+
29+
Defined joint configurations are:
30+
31+
- qz, zero joint angles
32+
- q1, ball shaped configuration
33+
34+
.. note::
35+
- SI units are used.
36+
- The model includes armature inertia and gear ratios.
37+
- The value of m1 is given as 0 here. Armstrong found no value for it
38+
and it does not appear in the equation for tau1 after the
39+
substituion is made to inertia about link frame rather than COG
40+
frame.
41+
- Gravity load torque is the motor torque necessary to keep the joint
42+
static, and is thus -ve of the gravity caused torque.
2143
22-
Also define the workspace vectors:
23-
q joint angle vector for default ball configuration
24-
Reference:
25-
- "A divide and conquer articulated-body algorithm for parallel O(log(n))
26-
calculation of rigid body dynamics, Part 2",
27-
Int. J. Robotics Research, 18(9), pp 876-892.
44+
:references:
45+
46+
- "A divide and conquer articulated-body algorithm for parallel O(log(n))
47+
calculation of rigid body dynamics, Part 2",
48+
Int. J. Robotics Research, 18(9), pp 876-892.
2849
29-
Notes:
30-
- Unlike most other model scripts this one is actually a function that
31-
behaves like a script and writes to the global workspace.
32-
'''
50+
.. codeauthor:: Peter Corke
51+
"""
3352

3453
def __init__(self, N=10):
3554

@@ -43,7 +62,7 @@ def __init__(self, N=10):
4362
# and build a serial link manipulator
4463
super(Ball, self).__init__(links, name='ball')
4564

46-
# zero angles, L shaped pose
65+
# zero angles, ball pose
4766
self.addconfiguration("qz", np.zeros(N,))
4867
self.addconfiguration("q1", q1)
4968

roboticstoolbox/models/DH/Cobra600.py

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,30 @@
1010

1111

1212
class Cobra600(DHRobot):
13+
"""
14+
Class that models a Adept Cobra 600 SCARA manipulator
15+
16+
``Cobra600()`` is a class which models an Adept Cobra 600 SCARA robot and
17+
describes its kinematic characteristics using standard DH
18+
conventions.
19+
20+
.. runblock:: pycon
21+
22+
>>> import roboticstoolbox as rtb
23+
>>> robot = rtb.models.DH.Cobra600()
24+
>>> print(robot)
25+
26+
Defined joint configurations are:
27+
28+
- qz, zero joint angle configuration, 'L' shaped configuration
29+
30+
.. note::
31+
- SI units are used.
32+
- Robot has only 4 DoF.
33+
34+
.. codeauthor:: Peter Corke
35+
"""
1336

14-
# %MDL_COBRA600 Create model of Adept Cobra 600 manipulator
15-
# %
16-
# % MDL_COBRA600 is a script that creates the workspace variable c600 which
17-
# % describes the kinematic characteristics of the 4-axis Adept Cobra 600
18-
# % SCARA manipulator using standard DH conventions.
19-
# %
20-
# % Also define the workspace vectors:
21-
# % qz zero joint angle configuration
22-
# %
23-
# % Notes::
24-
# % - SI units are used.
25-
# %
26-
# % See also SerialRevolute, mdl_puma560akb, mdl_stanford.
2737
def __init__(self):
2838
deg = pi/180
2939

roboticstoolbox/models/DH/IRB140.py

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10,27 +10,34 @@
1010

1111
class IRB140(DHRobot):
1212
"""
13-
IRB140 Create model of ABB IRB 140 manipulator
14-
15-
IRB140 is a script that creates the workspace variable irb140 which
16-
describes the kinematic characteristics of an ABB IRB 140 manipulator
17-
using standard DH conventions.
18-
Also define the workspace vectors:
19-
qz zero joint angle configuration
20-
qr vertical 'READY' configuration
21-
qd lower arm horizontal as per data sheet
22-
23-
Reference::
24-
- "IRB 140 data sheet", ABB Robotics.
25-
- "Utilizing the Functional Work Space Evaluation Tool for Assessing a
26-
System Design and Reconfiguration Alternatives"
27-
A. Djuric and R. J. Urbanic
28-
- https://github.com/4rtur1t0/ARTE/blob/master/robots/ABB/IRB140/parameters.m
29-
30-
Notes::
31-
- SI units of metres are used.
32-
- Unlike most other mdl_xxx scripts this one is actually a function that
33-
behaves like a script and writes to the global workspace.
13+
Class that models an ABB IRB140 manipulator
14+
15+
``IRB140()`` is a class which models a Unimation Puma560 robot and
16+
describes its kinematic and dynamic characteristics using standard DH
17+
conventions.
18+
19+
.. runblock:: pycon
20+
21+
>>> import roboticstoolbox as rtb
22+
>>> robot = rtb.models.DH.IRB140()
23+
>>> print(robot)
24+
25+
Defined joint configurations are:
26+
27+
- qz, zero joint angle configuration
28+
- qr, vertical 'READY' configuration
29+
- qd, lower arm horizontal as per data sheet
30+
31+
.. note:: SI units of metres are used.
32+
33+
:references:
34+
- "IRB 140 data sheet", ABB Robotics.
35+
- "Utilizing the Functional Work Space Evaluation Tool for Assessing a
36+
System Design and Reconfiguration Alternatives"
37+
A. Djuric and R. J. Urbanic
38+
- https://github.com/4rtur1t0/ARTE/blob/master/robots/ABB/IRB140/parameters.m
39+
40+
.. codeauthor:: Peter Corke
3441
"""
3542
def __init__(self):
3643
deg = pi/180

roboticstoolbox/models/DH/KR5.py

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
"""
2+
@author: Gautam Sinha, Indian Institute of Technology, Kanpur (original MATLAB version)
23
@author: Peter Corke
34
@author: Samuel Drew
45
"""
@@ -8,33 +9,36 @@
89

910

1011
class KR5(DHRobot):
11-
'''
12-
KR5 Create model of Kuka KR5 manipulator
12+
"""
13+
Class that models a Kuka KR5 manipulator
1314
14-
MDL_KR5 is a script that creates the workspace variable KR5 which
15-
describes the kinematic characteristics of a Kuka KR5 manipulator using
16-
standard DH conventions.
15+
``KR5()`` is a class which models a Kuka KR5 robot and
16+
describes its kinematic characteristics using standard DH
17+
conventions.
1718
18-
Also define the workspace vectors:
19-
qk1 nominal working position 1
20-
qk2 nominal working position 2
21-
qk3 nominal working position 3
19+
.. runblock:: pycon
2220
23-
Notes::
24-
- SI units of metres are used.
25-
- Includes an 11.5cm tool in the z-direction
21+
>>> import roboticstoolbox as rtb
22+
>>> robot = rtb.models.DH.KR5()
23+
>>> print(robot)
2624
27-
Reference::
28-
- https://github.com/4rtur1t0/ARTE/blob/master/robots/KUKA/KR5_arc/parameters.m
25+
Defined joint configurations are:
2926
30-
Author::
31-
- Gautam Sinha,
32-
Indian Institute of Technology, Kanpur.
27+
- qk1, nominal working position 1
28+
- qk2, nominal working position 2
29+
- qk3, nominal working position 3
3330
34-
Define simplest line model for KUKA KR5 robot
35-
Contain DH parameters for KUKA KR5 robot
36-
All link lenghts and offsets are measured in cm
37-
'''
31+
.. note::
32+
- SI units of metres are used.
33+
- Includes an 11.5cm tool in the z-direction
34+
35+
:references:
36+
- https://github.com/4rtur1t0/ARTE/blob/master/robots/KUKA/KR5_arc/parameters.m
37+
38+
.. codeauthor:: Gautam Sinha, Indian Institute of Technology, Kanpur (original MATLAB version)
39+
.. codeauthor:: Samuel Drew
40+
.. codeauthor:: Peter Corke
41+
"""
3842

3943
def __init__(self):
4044
deg = pi / 180

roboticstoolbox/models/DH/LWR4.py

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,32 @@
77

88
class LWR4(DHRobot):
99
"""
10-
A class representing the Kuka LWR-IV robot arm.
10+
Class that models a LWR-IV manipulator
1111
12-
DH Parameters taken from
13-
http://www.diag.uniroma1.it/~deluca/rob1_en/09_Exercise_DH_KukaLWR4.pdf
12+
``LWR4()`` is a class which models a Kuka LWR-IV robot and
13+
describes its kinematic characteristics using standard DH
14+
conventions.
1415
16+
.. runblock:: pycon
1517
16-
Example::
18+
>>> import roboticstoolbox as rtb
19+
>>> robot = rtb.models.DH.LWR4()
20+
>>> print(robot)
1721
18-
>>> robot = LWR4()
22+
Defined joint configurations are:
1923
24+
- qz, zero joint angle configuration, 'L' shaped configuration
25+
- qr, vertical 'READY' configuration
26+
- qs, arm is stretched out in the X direction
27+
- qn, arm is at a nominal non-singular configuration
28+
29+
.. note:: SI units are used.
30+
31+
:references:
32+
33+
- http://www.diag.uniroma1.it/~deluca/rob1_en/09_Exercise_DH_KukaLWR4.pdf
34+
35+
.. codeauthor:: Peter Corke
2036
"""
2137

2238
def __init__(self):

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy