Minds and Computers 1.1
What is a robot?
Definitions Webster: a machine that looks like a human
being and performs various acts (as walking and talking) of a human being
Robotics Institute of America: a robot is a reprogrammable multifunctional manipulator designed to move material, parts, tools, or specialized devices through variable programmed motions for the performance of a variety of tasks
What’s our definition
Components of a robot system?
Minds and Computers 1.2
History 1921: Karel Capek’s play, Rossum’s Universal
Robots 1942: Asimov wrote Runaround which contained the
“Three Laws of Robotics” 1. A robot may not injure a human being or through
inaction allow a human being to come to harm.2. A robot must obey the orders given it by human
beings, except where such orders would conflict with the First Law.
3. A robot must protect its own existence, as long as such protection does not conflict with the First or Second Law.
1948: Weiner wrote “Cybernetics” 1961: General Motors’ puts UNIMATE online (first
industrial robot) 1970: SRI’s Shakey: first AI mobile robot
Minds and Computers 1.3
Uses of robots
Where and when to use robots? Tasks that are dirty, dull, or dangerous Where there is significant academic and
industrial interest Ethical and liability issues
What industries?
What applications?
Minds and Computers 1.4
Agents and Environments
Minds and Computers 1.5
Control basics
Some definitions: Control system: arrangement of physics components
connected or related in such a manner as to form and/or act as an entire unit
Kinematics: the description or study of the geometry of motion
Dynamics: the description or study of the forces that affect the motion of objects
Open-loop control Compute trajectory a priori and make necessary
actions to complete task Closed-loop control
Use sensors to provide feedback to modify the trajectory and actions
Minds and Computers 1.6
Computer architecture
von Neumann model Memory: random access
memory (RAM) for program instructions and data
ALU: includes set of registers for performing calculations
Control: responsible for fetching and decoding instructions
Input & output Bus: various internal
pathways
Control
arthmetic/logic
Memory
Processor
Input
Output
Minds and Computers 1.7
LEGO Mindstorms NXT Atmel 32-bit ARM processor 4 inputs/sensors (1, 2, 3, 4) 3 outputs/motors (A, B, C) 256 KB Flash Memory 64 KB RAM USB 2.0 Communication 4 programmable buttons 100x64 b/w LCD Display Sensors
Active:• Old light and rotation
Passive• Touch, sensors for NXT
Digital• Ultrasonic
Motors 170 RPM 360 RPM for old
motors, why?
Minds and Computers 1.8
Challenges
1. Make a car Build a vehicle that will reliably go backwards
and forwards 2. Getting there
Using Pilot 1 - program your car to move for 1 sec
Measure the distance it went Predict distance for n sec Run and check model
3. Touch-activated Your robot should start when the touch sensor
is pressed and stop when it hits something Can you keep your robot from running off the
table with a sensor?
Minds and Computers 1.9
Preview
Spin leftmotor Spin right
motor
Wait until the motors have spun two rotations
Stop leftmotor Stop right
motor
What five steps would the robot have to take in order to go forward for 2 rotations?
Minds and Computers 1.10
Preview
Now lets examine what that would look like in the NXT Educational Programming Software.
1. Spin left motor 2. Spin right motor
3. Wait for 2 rotations
4. Stop left motor 5. Stop right motor
Minds and Computers 1.11
Preview
While programming your motor blocks, make sure you select the proper output ports, and set both motors to the same direction and power level.
Minds and Computers 1.12
Preview
Don’t forget, the comments you include in your program don’t actually have any effect on what your robot will do.
Comments simply act as reminders for you when you edit your program. Here, the “wait for 1440 degrees” won’t do anything because the actual Wait Block is set to wait for 720 degrees.
Minds and Computers 1.13
Design Strategy
Incremental design Test components parts as you build them
• Drivetrain• Sensors, sensor mounting• Structure
Don’t be afraid to redesign KISS
Testing Don’t wait until you have a final robot to test
• Interaction of systems • Work division (work concurrently)
Develop test methods Repeatability
Minds and Computers 1.14
Philosophy
Build for accurate, precise control Slow vs. fast? Gear backlash Stability Skidding
Have fun Be creative, unique Strive for cool solutions, that work! Aesthetics: it’s fun to make beautiful robots!
Minds and Computers 1.15
Differential driveMost common kinematic choice
All of the miniature robots…
Scribbler, Braitenberg
- difference in wheels’ speeds determines its turning angle
VR
VL
Minds and Computers 1.16
Differential driveMost common kinematic choice
All of the miniature robots…
Scribbler, Braitenberg
- difference in wheels’ speeds determines its turning angle
VR
VL
Questions (forward kinematics)
Given the wheel’s velocities or positions, what is the robot’s velocity/position ?
Are there any inherent system constraints?
Minds and Computers 1.17
1) Specify system measurements
2) Determine the point (the radius) around which the robot is turning.
3) Determine the speed at which the robot is turning to obtain the robot velocity.
4) Integrate to find position.
Differential driveMost common kinematic choice
All of the miniature robots…
Khepera, Braitenberg
- difference in wheels’ speeds determines its turning angle
VR
VL
Questions (forward kinematics)
Given the wheel’s velocities or positions, what is the robot’s velocity/position ?
Are there any inherent system constraints?
Minds and Computers 1.18
1) Specify system measurements
Differential drive
VR
VL
(assume a wheel radius of 1)
x
y
l
- consider possible coordinate systems
Minds and Computers 1.19
1) Specify system measurements
Differential drive
VR
VL
(assume a wheel radius of 1)
x
y
l
- consider possible coordinate systems2) Determine the point (the radius) around which the robot is turning.
Minds and Computers 1.20
1) Specify system measurements
Differential drive
VR
VL
(assume a wheel radius of 1)
x
y
l
- consider possible coordinate systems2) Determine the point (the radius) around which the robot is turning.
ICC “instantaneous center of curvature”
- to minimize wheel slippage, this point (the ICC) must lie at the intersection of the wheels’ axles- each wheel must be traveling at the same angular velocity
Minds and Computers 1.21
1) Specify system measurements
Differential drive
VR
VL
(assume a wheel radius of 1)
x
y
l
- consider possible coordinate systems2) Determine the point (the radius) around which the robot is turning.
ICC “instantaneous center of curvature”
- to minimize wheel slippage, this point (the ICC) must lie at the intersection of the wheels’ axles- each wheel must be traveling at the same angular velocity around the ICC
Minds and Computers 1.22
1) Specify system measurements
Differential drive
VR
VL
(assume a wheel radius of 1)
l
- consider possible coordinate systems2) Determine the point (the radius) around which the robot is turning.
ICC
- each wheel must be traveling at the same angular velocity around the ICC
Rrobot’s turning radius
3) Determine the robot’s speed around the ICC and its linear velocity
R+l/2) = VL
R- l/2) = VR
x
y
Minds and Computers 1.23
1) Specify system measurements
Differential drive
VR
VL
(assume a wheel radius of 1)
l
- consider possible coordinate systems2) Determine the point (the radius) around which the robot is turning.
ICC
- each wheel must be traveling at the same angular velocity around the ICC
Rrobot’s turning radius
3) Determine the robot’s speed around the ICC and then linear velocity
R+l/2) = VL
R-l/2) = VR
Thus, = ( VR - VL ) / l
R = l ( VR + VL ) / ( VR - VL )
x
y
Minds and Computers 1.24
1) Specify system measurements
Differential drive
VR
VL
l
- consider possible coordinate systems2) Determine the point (the radius) around which the robot is turning.
ICC
- each wheel must be traveling at the same angular velocity around the ICC
Rrobot’s turning radius
3) Determine the robot’s speed around the ICC and then linear velocity
R+d) = VL
R-d) = VR
Thus, = ( VR - VL ) / l
R = l ( VR + VL ) / 2( VR - VL )
x
y
So, the robot’s velocity is V = R = ( VR + VL ) / 2
Minds and Computers 1.25
4) Integrate to obtain position
Differential drive
VR
VL
l
ICC
R(t)robot’s turning radius
(t)
= ( VR - VL ) / l
R = l( VR + VL ) / ( VR - VL )
V = R = ( VR + VL ) / 2
What has to happen to change the ICC ?
Vx = V(t) cos((t))
Vy = V(t) sin((t))
with
x
y
Minds and Computers 1.26
4) Integrate to obtain position
Differential drive
VR
VL
l
ICC
R(t)robot’s turning radius
(t)
= ( VR - VL ) / l
R = l ( VR + VL ) / 2( VR - VL )
V = R = ( VR + VL ) / 2
Vx = V(t) cos((t))
Vy = V(t) sin((t))
with
x
y
x(t) = ∫ V(t) cos((t)) dt
y(t) = ∫ V(t) sin((t)) dt
(t) = ∫ (t) dt
Thus,
Minds and Computers 1.27
4) Integrate to obtain position
Differential drive
VR
VL
l
ICC
R(t)robot’s turning radius
(t)
Thus,
= ( VR - VL ) /l
R = l ( VR + VL ) / 2( VR - VL )
V = R = ( VR + VL ) / 2
What has to happen to change the ICC ?
Vx = V(t) cos((t))
Vy = V(t) sin((t))
x(t) = ∫ V(t) cos((t)) dt
y(t) = ∫ V(t) sin((t)) dt
(t) = ∫ (t) dt
with
x
y
Kinematics