270 likes | 309 Views
Today's Topics. Braitenberg Vehicles Art of Lego Design Notes from Jason Geist, Carnegie Mellon University Differential Drive Notes from Zachary Dodd, Harvey-Mudd College ROBOLAB Control structures Data & containers. Goals:. Build better robots Minimize mechanical breakdowns
E N D
Today's Topics • Braitenberg Vehicles • Art of Lego Design • Notes from Jason Geist, Carnegie Mellon University • Differential Drive • Notes from Zachary Dodd, Harvey-Mudd College • ROBOLAB • Control structures • Data & containers
Goals: • Build better robots • Minimize mechanical breakdowns • Build robots that are easy to control • Encourage good design strategy • Strive for elegant, clever solutions • Know your materials • Plastic bricks since 1949 (wooden blocks prior) • On average, 2100 different parts each year • Manufacturing tolerance: 1/1000 of an inch • Number of ways of combining six 8-stud bricks: 102,981,500 • Widely used by scientists and engineers as a rapid prototyping tool
Geometry • Three plates = 1 brick in height • 1-stud brick dimensions: exactly5/16” x 5/16” x 3/8” (excluding stud height 1/16”), • This is the base geometry for all LEGO components
Structure • The right way:
Connector pegs • Black pegs are tight-fitting for locking bricks together. • Grey pegs turn smoothly in bricks for making a pivot
Structure • LEGO bricks are finicky: • They HATE duct tape. • They HATE hot glue. • They HATE super glue. • They HATE epoxy. • You should never need adhesives to build reliable LEGO structures
Braitenberg Vehicles • How do people ascribe behavior? • The inferred properties may be more more complicated than known structure • Emergent behavior of interacting pieces • Fear and Agression • Excitatory connections • 2 sensors • 2 motors
Drivetrain • LEGO Gears 40T 8T 16T Bevel 1T Worm 24T 24T Crown
Worm Gears • Pull one tooth per revolution 3 1 2 • Result is a 24:1 gearbox • Not back driveable! 4
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
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!
Differential drive Most common kinematic choice - difference in wheels’ speeds determines its turning angle All of the miniature robots… Khepera, Braitenberg VL VR
Differential drive Most common kinematic choice - difference in wheels’ speeds determines its turning angle All of the miniature robots… Khepera, Braitenberg Questions (forward kinematics) Given the wheel’s velocities or positions, what is the robot’s velocity/position ? VL Are there any inherent system constraints? VR
Differential drive Most common kinematic choice - difference in wheels’ speeds determines its turning angle All of the miniature robots… Khepera, Braitenberg Questions (forward kinematics) Given the wheel’s velocities or positions, what is the robot’s velocity/position ? VL Are there any inherent system constraints? VR 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 drive 1) Specify system measurements y - consider possible coordinate systems VL x q l VR (assume a wheel radius of 1)
Differential drive 1) Specify system measurements y - consider possible coordinate systems 2) Determine the point (the radius) around which the robot is turning. VL x q l VR (assume a wheel radius of 1)
Differential drive 1) Specify system measurements y - consider possible coordinate systems 2) Determine the point (the radius) around which the robot is turning. - to minimize wheel slippage, this point (the ICC) must lie at the intersection of the wheels’ axles VL x - each wheel must be traveling at the same angular velocity q l VR ICC “instantaneous center of curvature” (assume a wheel radius of 1)
Differential drive 1) Specify system measurements y - consider possible coordinate systems 2) Determine the point (the radius) around which the robot is turning. w - to minimize wheel slippage, this point (the ICC) must lie at the intersection of the wheels’ axles VL x - each wheel must be traveling at the same angular velocity around the ICC q l VR ICC “instantaneous center of curvature” (assume a wheel radius of 1)
y x Differential drive 1) Specify system measurements - consider possible coordinate systems 2) Determine the point (the radius) around which the robot is turning. w - each wheel must be traveling at the same angular velocity around the ICC VL 3) Determine the robot’s speed around the ICC and its linear velocity l VR ICC w(R+l/2) = VL R w(R- l/2) = VR robot’s turning radius (assume a wheel radius of 1)
y x Differential drive 1) Specify system measurements - consider possible coordinate systems 2) Determine the point (the radius) around which the robot is turning. w - each wheel must be traveling at the same angular velocity around the ICC VL 3) Determine the robot’s speed around the ICC and then linear velocity l VR ICC w(R+d) = VL R w(R-d) = VR robot’s turning radius Thus, w = ( VR - VL ) / l R = l ( VR + VL ) / ( VR - VL ) (assume a wheel radius of 1)
y x Differential drive 1) Specify system measurements - consider possible coordinate systems 2) Determine the point (the radius) around which the robot is turning. w - each wheel must be traveling at the same angular velocity around the ICC VL 3) Determine the robot’s speed around the ICC and then linear velocity l VR ICC w(R+d) = VL R w(R-d) = VR robot’s turning radius Thus, w = ( VR - VL ) / l R = l ( VR + VL ) / 2( VR - VL ) So, the robot’s velocity is V = wR = ( VR + VL ) / 2
y x Differential drive 4) Integrate to obtain position Vx = V(t) cos(q(t)) w(t) Vy = V(t) sin(q(t)) VL l VR ICC R(t) robot’s turning radius with w = ( VR - VL ) / l R = l( VR + VL ) / ( VR - VL ) What has to happen to change the ICC ? V = wR = ( VR + VL ) / 2
y x Differential drive 4) Integrate to obtain position Vx = V(t) cos(q(t)) w(t) Vy = V(t) sin(q(t)) Thus, x(t) = ∫ V(t) cos(q(t)) dt VL y(t) = ∫ V(t) sin(q(t)) dt l q(t) = ∫w(t) dt VR ICC R(t) robot’s turning radius with w = ( VR - VL ) / l R = l ( VR + VL ) / 2( VR - VL ) V = wR = ( VR + VL ) / 2
y x Differential drive 4) Integrate to obtain position Vx = V(t) cos(q(t)) w(t) Vy = V(t) sin(q(t)) Thus, x(t) = ∫ V(t) cos(q(t)) dt VL y(t) = ∫ V(t) sin(q(t)) dt l q(t) = ∫w(t) dt VR ICC Kinematics R(t) robot’s turning radius with w = ( VR - VL ) /l R = l ( VR + VL ) / 2( VR - VL ) What has to happen to change the ICC ? V = wR = ( VR + VL ) / 2
Questions • For each of the following, describe what the sequence of ROBOLAB commands should do?
Control structures • Forks • Loops • Tasks
Sharing resources • Sensors • Motors