Minds and Computers 1.1 What is a robot? l 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 l Components of a robot system?
Minds and Computers 1.2 History l 1921: Karel Capek’s play, Rossum’s Universal Robots l 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. l 1948: Weiner wrote “Cybernetics” l 1961: General Motors’ puts UNIMATE online (first industrial robot) l 1970: SRI’s Shakey : first AI mobile robot
Minds and Computers 1.3 Uses of robots l Where and when to use robots? ä Tasks that are dirty, dull, or dangerous ä Where there is significant academic and industrial interest l Ethical and liability issues l What industries? l What applications?
Minds and Computers 1.4 Agents and Environments
Minds and Computers 1.5 Control basics l 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 l Open-loop control ä Compute trajectory a priori and make necessary actions to complete task l Closed-loop control ä Use sensors to provide feedback to modify the trajectory and actions
Minds and Computers 1.6 Computer architecture von Neumann model l Memory: random access memory (RAM) for program instructions and data l ALU: includes set of registers for performing calculations l Control: responsible for fetching and decoding instructions l Input & output l Bus: various internal pathways Control arthmetic/ logic Memory Processor Input Output
Minds and Computers 1.7 LEGO Mindstorms NXT l Atmel 32-bit ARM processor l 4 inputs/sensors (1, 2, 3, 4) l 3 outputs/motors (A, B, C) l 256 KB Flash Memory l 64 KB RAM l USB 2.0 Communication l 4 programmable buttons l 100x64 b/w LCD Display l Sensors ä Active: Old light and rotation ä Passive Touch, sensors for NXT ä Digital Ultrasonic l 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 left motor Spin right motor Wait until the motors have spun two rotations Stop left motor 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 motor2. Spin right motor 3. Wait for 2 rotations 4. Stop left motor5. 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 l Don’t forget, the comments you include in your program don’t actually have any effect on what your robot will do. l 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 l Incremental design ä Test components parts as you build them Drivetrain Sensors, sensor mounting Structure ä Don’t be afraid to redesign ä KISS l 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 l Build for accurate, precise control ä Slow vs. fast? ä Gear backlash ä Stability ä Skidding l Have fun l Be creative, unique l Strive for cool solutions, that work! l Aesthetics: it’s fun to make beautiful robots!
Minds and Computers 1.15 Differential drive Most common kinematic choice All of the miniature robots… Scribbler, Braitenberg - difference in wheels’ speeds determines its turning angle VRVR VLVL
Minds and Computers 1.16 Differential drive Most common kinematic choice All of the miniature robots… Scribbler, Braitenberg - difference in wheels’ speeds determines its turning angle VRVR VLVL 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 ) 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 drive Most common kinematic choice All of the miniature robots… Khepera, Braitenberg - difference in wheels’ speeds determines its turning angle VRVR VLVL 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 ) Specify system measurements Differential drive VRVR VLVL (assume a wheel radius of 1) x y l - consider possible coordinate systems
Minds and Computers ) Specify system measurements Differential drive VRVR VLVL (assume a wheel radius of 1) x y l - consider possible coordinate systems 2) Determine the point (the radius) around which the robot is turning.
Minds and Computers ) Specify system measurements Differential drive VRVR VLVL (assume a wheel radius of 1) x y l - consider possible coordinate systems 2) 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 ) Specify system measurements Differential drive VRVR VLVL (assume a wheel radius of 1) x y l - consider possible coordinate systems 2) 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 ) Specify system measurements Differential drive VRVR VLVL (assume a wheel radius of 1) l - consider possible coordinate systems 2) 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 R robot’s turning radius 3) Determine the robot’s speed around the ICC and its linear velocity R+l/2) = V L R- l/2) = V R x y
Minds and Computers ) Specify system measurements Differential drive VRVR VLVL (assume a wheel radius of 1) l - consider possible coordinate systems 2) 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 R robot’s turning radius 3) Determine the robot’s speed around the ICC and then linear velocity R+l/2) = V L R-l/2) = V R Thus, = ( V R - V L ) / l R = l ( V R + V L ) / ( V R - V L ) x y
Minds and Computers ) Specify system measurements Differential drive VRVR VLVL l - consider possible coordinate systems 2) 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 R robot’s turning radius 3) Determine the robot’s speed around the ICC and then linear velocity R+d) = V L R-d) = V R Thus, = ( V R - V L ) / l R = l ( V R + V L ) / 2( V R - V L ) x y So, the robot’s velocity is V = R = ( V R + V L ) / 2
Minds and Computers ) Integrate to obtain position Differential drive VRVR VLVL l ICC R(t) robot’s turning radius (t) = ( V R - V L ) / l R = l( V R + V L ) / ( V R - V L ) V = R = ( V R + V L ) / 2 What has to happen to change the ICC ? V x = V(t) cos( (t)) V y = V(t) sin( (t)) with x y
Minds and Computers ) Integrate to obtain position Differential drive VRVR VLVL l ICC R(t) robot’s turning radius (t) = ( V R - V L ) / l R = l ( V R + V L ) / 2( V R - V L ) V = R = ( V R + V L ) / 2 V x = V(t) cos( (t)) V y = 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 ) Integrate to obtain position Differential drive VRVR VLVL l ICC R(t) robot’s turning radius (t) Thus, = ( V R - V L ) /l R = l ( V R + V L ) / 2( V R - V L ) V = R = ( V R + V L ) / 2 What has to happen to change the ICC ? V x = V(t) cos( (t)) V y = 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