- •1. TABLE OF CONTENTS
- •2. AN INTRODUCTION TO UNIX
- •2.1 OVERVIEW
- •2.2 UNIX
- •2.2.1 Using UNIX Workstations in general:
- •2.2.2 Directories, Files, Etc.
- •2.2.3 Advanced Concepts
- •2.3 THE NETWORK
- •2.4 GOOD MANNERS
- •3. THE INTERNET
- •3.1 NETWORKS
- •3.1.1 Computer Addresses
- •3.2 NETWORK TYPES
- •3.2.1 Permanent Wires
- •3.2.2 Phone Lines
- •3.3 NETWORK PROTOCOLS
- •3.3.1 Mail Transfer Protocols
- •3.3.1.1 - Attachments
- •3.3.1.2 - Mail Lists
- •3.3.2 FTP - File Transfer Protocol
- •3.3.3 News
- •3.3.4 HTTP - Hypertext Transfer Protocol
- •3.3.5 Chat
- •3.3.6 Novell
- •3.3.7 Security
- •3.4 DATA FORMATS
- •3.4.1 HTML - Hyper Text Markup Language
- •3.4.1.1 - Publishing Web Pages
- •3.4.2 URLs
- •3.4.3 Hints
- •3.4.4 Specialized Editors
- •3.4.6 Encryption
- •3.4.7 Compression
- •3.5 PULLING ALL THE PROTOCOLS AND FORMATS TOGETHER WITH BROWSWERS
- •3.6 OTHER STUFF
- •3.6.1 Clients and Servers
- •3.6.2 Java
- •3.6.3 Javascript
- •3.6.5 Searches
- •3.6.6 ActiveX
- •3.6.7 Graphics
- •3.6.8 Animation
- •3.6.9 Video
- •3.6.10 Sounds
- •3.6.11 Other Program Files
- •3.6.12 Fancy Stuff
- •4. TEACHING WITH THE INTERNET
- •4.1 LECTURES
- •4.1.1 Equipment
- •4.1.2 Techniques
- •4.2 ON-LINE NOTES
- •4.3 ON-LINE MARKING
- •4.3.1 Web Pages
- •4.3.2 email
- •4.4 The Time-Line For My First On-Line Course (Fall 1996)
- •5. WWW and HTML
- •5.1 Why Bother?
- •5.2 Where to Find Netscape
- •5.3 How to Get Your Own Home Page
- •5.4 How to Create a file
- •5.5 Resources
- •6. A BASIC INTRODUCTION TO ‘C’
- •6.2 BACKGROUND
- •6.3 PROGRAM PARTS
- •6.4 HOW A ‘C’ COMPILER WORKS
- •6.5 STRUCTURED ‘C’ CODE
- •6.6 ARCHITECTURE OF ‘C’ PROGRAMS (TOP-DOWN)
- •6.7 CREATING TOP DOWN PROGRAMS
- •6.8.1 Objectives:
- •6.8.2 Problem Definition:
- •6.8.3 User Interface:
- •6.8.3.1 - Screen Layout (also see figure):
- •6.8.3.2 - Input:
- •6.8.3.3 - Output:
- •6.8.3.4 - Help:
- •6.8.3.5 - Error Checking:
- •6.8.3.6 - Miscellaneous:
- •6.8.4 Flow Program:
- •6.8.5 Expand Program:
- •6.8.6 Testing and Debugging:
- •6.8.7 Documentation
- •6.8.7.1 - Users Manual:
- •6.8.7.2 - Programmers Manual:
- •6.8.8 Listing of BeamCAD Program.
- •6.9 PRACTICE PROBLEMS
- •7. GUI DESIGN
- •7.1 PRACTICE PROBLEMS
- •8. AN EXAMPLE - BEAMCAD
- •9. PROGRAMMING IN JAVA
- •9.1 OVERVIEW
- •9.2 THE LANGUAGE
- •9.3 OBJECT ORIENTED PROGRAMMING
- •9.4 REFERENCES/BIBLIOGRAPHY
- •10. DATABASES
- •11. MESSAGE PASSING ON NETWORKS
- •12. MATHEMATICAL ELEMENTS OF COMPUTER GRAPHICS
- •12.1 INTRODUCTION
- •12.2 PIXELS
- •12.2.1 The Perspective Transform
- •12.3 LINE DRAWING
- •12.3.1 Hidden Lines
- •12.4 POLYGON DRAWING
- •12.5 SHADED POLYGONS
- •12.6 COLORS
- •12.6.1 Color Maps
- •12.6.1.1 - Quantization with an Octree RGB Cube
- •12.6.1.1.1 - Algorithm and Implementation
- •12.6.1.1.2 - Color Quantization Data Structures
- •12.7 DITHERING
- •12.7.1 A Model for Light Ray Reflection
- •12.7.2 A Model for Light Ray Refraction:
- •12.7.3 A Model for Specular Reflection of Point Light
- •12.8 RAY TRACING
- •12.8.1 Basic Ray Tracing Theory
- •12.8.1.1 - A Model for Diffuse Reflection of Ambient Light
- •12.8.1.2 - A Model for Diffuse Reflection of Point Light:
- •12.8.1.3 - Collision of a Ray with a Sphere:
- •12.8.1.4 - Collision of a Ray With a Plane:
- •12.8.1.5 - Mapping a Pattern
- •12.8.2 Ray Tracer Algorithms
- •12.8.3 Bounding Volumes
- •12.8.4 Shadows
- •12.8.5 Aliasing
- •12.8.6 Advanced topics
- •12.9 RADIOSITY
- •12.10 ADVANCED GRAPHICS TECHNIQUES
- •12.10.1 Animation
- •12.11 REFERENCES
- •12.12 PRACTICE PROBLEMS
- •13. NEW TOPICS
- •13.1 VIRTUAL REALITY
- •13.2 MULTIMEDIA
- •14. VISIONS SYSTEMS
- •14.1 OVERVIEW
- •14.2 APPLICATIONS
- •14.3 LIGHTING AND SCENE
- •14.4 CAMERAS
- •14.5 FRAME GRABBER
- •14.6 IMAGE PREPROCESSING
- •14.7 FILTERING
- •14.7.1 Thresholding
- •14.8 EDGE DETECTION
- •14.9 SEGMENTATION
- •14.9.1 Segment Mass Properties
- •14.10 RECOGNITION
- •14.10.1 Form Fitting
- •14.10.2 Decision Trees
- •14.11 PRACTICE PROBLEMS
- •15. SIMULATION
- •15.1 MODEL BUILDING
- •15.2 ANALYSIS
- •15.3 DESIGN OF EXPERIMENTS
- •15.4 RUNNING THE SIMULATION
- •15.5 DECISION MAKING STRATEGY
- •15.6 PLANNING
- •15.7 NEURAL NETWORK THEORY
- •16. ARTIFICIAL INTELLIGENCE (AI)
- •16.1 OVERVIEW
- •16.2 EXPERT SYSTEMS
- •16.3 FUZZY LOGIC
- •16.4 NEURAL NETWORKS
- •16.4.1 Neural Network Calculation of Inverse Kinematics
- •16.4.1.1 - Inverse Kinematics
- •16.4.1.2 - Feed Forward Neural Networks
- •16.4.1.3 - The Neural Network Setup
- •16.4.1.4 - The Training Set
- •16.4.1.5 - Results
page 220
LOUD_NOISE = { 0.0 0.1 0.5 1.0 }
QUIET_NOISE = {1.0 0.5 0.1 0.0 }
FAST_SPEED = { 0.0 0.2 0.7 1.0 }
SLOW_SPEED = { 1.0 0.5 0.2 0.0 }
SAME_SPEED = { 1.0 1.0 1.0 1.0 }
The sets are considered normalized from minimum to maximum. For example is the NOISE sets were from 20dB to 100dB, then a noise level of 80dB would result in a value of 0.5, or a 50% memebership. This way you can say if the noise is ‘absolutely loud’, giving a value of 1.0, or ‘a bit loud’ giving a value of .5.
•The matrices are combined using the rules to get a result matrix
•Because the conditions (like LOUD_NOISE) are defined with a sort of weight, or memebership rules are easier to make up.
•Fuzzy logic controllers have been very successful at solving control problems.
16.4 NEURAL NETWORKS
16.4.1 Neural Network Calculation of Inverse Kinematics
• Objectives: To give insight into the neural network solution of the inverse kinematics problem.
16.4.1.1 - Inverse Kinematics
• Forward ematics for a 3-link manipulator
page 221
|
|
|
|
|
θ 1 |
||
|
|
|
|
|
|||
|
|
|
|
|
|||
|
|
|
|
|
a2 |
|
|
|
|
|
|
|
|
||
θ 2 |
|
|
|
|
|
|
a3 |
|
|
|
|
|
|
||
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
θ 3
a1
(px, py, pz) z
x y
Allows the end of the robot to be located in space relative to the base of the robot. The calculations are done to convert joint coordinates (joint angles) to cartesian coordinates.
px = cosθ 1 (a3 cos(θ 2 + θ 3) + a2 cosθ 2) py = sinθ 1 (a3 cos(θ 2 + θ 3) + a2 cosθ 2) pz = a3 sin(θ 2 + θ 3) + a2 sinθ 2 + a1
• Inverse Kinematics for a three link manipulator
page 222
|
|
|
|
|
|
|
|
|
|
|
θ 1 |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
a2 |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
θ 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a3 |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a1 |
|
|
θ 3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(px, py, pz) |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
z |
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
x |
|
|
|
|
|
|
|
y |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Allows the joint coordinates of the robot to be determined by a point in space. In most cases there four possible ways to reach most points in space.
α = √ |
|
|
|
|
|
|
|
|
|
β |
= α 2 + a 2 - a 2 + p 2 |
||||||||||||||
2 |
|
|
2 |
|
|||||||||||||||||||||
|
px |
+ py |
|
|
|
|
|
|
2 |
|
3 |
z |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2a2 |
|
|
|
|
||
θ 1 = atan(py / px) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
θ 2 |
= atan |
|
|
|
|
|
β |
|
|
|
|
|
|
|
- atan |
|
|
α |
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
± √ |
|
|
|
|
|
|
|
|
|
|
pz |
|
||||||||||
|
|
|
px2 + α |
2 - β 2 |
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
θ 3 |
= atan |
|
|
|
|
pz |
− a2 sinθ 2 |
|
|
|
- θ 2 |
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
α |
- a2 cosθ 2 |
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
•Inverse Kinematics techniques
-explicit, with exact solution (as for the 3 link manipulator)
-iterative, for use when an infinite number of solutions exist.
page 223
•Problems that occur when doing inverse kinematics with these methods are,
-both methods require a computer capable of mathematical calculations
-the methods do not adapt to compensate for damage, calibration errors, wear, etc.
-solutions may be slow, especially for iterative solutions
-solutions are valid only for a specific robot
•advantages of using these methods are,
-both solutions will yield exact answers
-properties of both of these methods are well known
16.4.1.2 - Feed Forward Neural Networks
•A feed forward neural network was used with a sigmoidal activation function
•the back propagation learning technique was used.
•disadvantage of these network is
-unpredictable errors occur in the soltuion
-discontinuous problem spaces cause problems for the networks
-training may be very slow
-these networks are not well understood
-neuro computers are not commonly available
• advantages
-the architecture is fault tolerant
-faster calculations
-can be adjusted for changes in the robot configuration
-the controllers are not specific to a single robot
16.4.1.3 - The Neural Network Setup
• The figure below shows how the neural network was configured to solve the problem
page 224
Px |
|
|
|
|
|
Inverse |
|
|
|
|
|||
Py |
|
|
|
|
|
Kinematics |
|
|
|
|
|
Neural |
|
Pz |
|
|
|
|
|
Network |
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
1st Error |
|
|
|
|
|
|
|
|
|
|
|
|
|
Correction |
|
|
|
|
|
|
Neural |
|
|
|
|
|
|
Network |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
nth Error Correction Neural Network
θ
θ
θ
∆θ
∆θ ∆θ
∆θ
∆θ ∆θ
1
2
3
1
2
3
1
2
3
• The first neural network estimates the proper inverse kinematics. This will contain a small error, therefore a second net is used to estimate the errors. Additional correction networks can be added after this.
Px |
θ 1 |
P |
θ 2 |
y |
θ 3 |
P |
|
z |
|
|
+1 |
• The networks were generally connected with