ms4ssa robotics module - wpi.edu · worcester polytechnic institute what is a program? • programs...
TRANSCRIPT
![Page 1: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/1.jpg)
MS4SSARobotics Module:Programming and Sensors
Brad Miller and Kim Hollan Worcester Polytechnic Institute
![Page 2: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/2.jpg)
Worcester Polytechnic Institute
What are we doing today?
• Talk about why to program robots • Learn about basic RobotC programming • Learn how to make the robot move in
predetermined ways • Learn how to use a sensor to understand the
robots surroundings • Give you a taste of robot programming to
experience the student excitement and engagement
![Page 3: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/3.jpg)
Worcester Polytechnic Institute
Why Program a Robot?
• Building a robot teaches many valuable skills; however, the learning doesn’t stop there
• Programming also teaches valuable life skills ─ Problem Solving ─ Creative and Computational Thinking ─ Team Building
• Robotics provides hands-on activities that help stimulate thinking, excite and engage students
• Robots help students see how what they are learning has a direct impact on the world – and how the math and engineering elements can help guide solutions for real life problems
MS4SSA Math and Science for Sub-Saharan Africa
![Page 4: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/4.jpg)
Worcester Polytechnic Institute
Why Robotics
• Students often are asked to learn concepts that they might not see applications
• In Robotics, especially with competitions, students learn because they need the concepts to win
![Page 5: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/5.jpg)
Worcester Polytechnic Institute
Why Robots?
Path planning requires trigonometry and programming
![Page 6: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/6.jpg)
Worcester Polytechnic Institute
Why Robots?
Aiming a ball shooter uses a camera and needs trigonometry to position the robot and aim
![Page 7: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/7.jpg)
Worcester Polytechnic Institute
Why robots?
• Climbing robots requires torque, gear ratios, and speed calculations
![Page 8: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/8.jpg)
Worcester Polytechnic Institute
System ComponentsMS4SSA
Math and Science for Sub-Saharan Africa
Sensors
Actuators (motors and servos)
VEX Microcontroller VEX Joystick
VEXnet Key USB Tether Cable
![Page 9: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/9.jpg)
Worcester Polytechnic Institute
What is a Program?
• Programs are steps, or instructions that you want the robot to follow
• There are many different programming languages. Today we are using the C language with RobotC
MS4SSA Math and Science for Sub-Saharan Africa
STEPS CODE
Start driving forward
Wait 2 seconds Turn for 1000ms
motor[leftMotor] = 100; motor[rightMotor] = 100; sleep(1000); motor[leftMotor] = 0; motor[rightMotor] = 0;
![Page 10: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/10.jpg)
Worcester Polytechnic Institute
Making it easier
Graphical Programming
Text Programming
![Page 11: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/11.jpg)
Worcester Polytechnic Institute
Setting motor speeds
motor[leftMotor] = 100; motor[rightMotor] = -100;
Motors and Sensors Setup
![Page 12: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/12.jpg)
Worcester Polytechnic Institute
Functions
• For the program today, we’re using these functions:
MS4SSA Math and Science for Sub-Saharan Africa
forward(time, units, motorSpeed); backward(time, units, motorSpeed); delay(milliseconds);
turnLeft(time, units, motorSpeed); turnRight(time, units, motorSpeed);
time in seconds or milliseconds units is “seconds” or “milliseconds” motorSpeed is -127 to 127 (0 = stopped)
forward(1, second, 100); turnRight(500, milliseconds); delay(2000);
Examples
![Page 13: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/13.jpg)
Worcester Polytechnic Institute
Your First ChallengeMS4SSA
Math and Science for Sub-Saharan Africa
You start with this program…
and make the robot drive in a square instead
![Page 14: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/14.jpg)
Worcester Polytechnic Institute
RobotC programs
• A RobotC program starts with task main() • Put your program in between the braces
task main() { while (true) { forward(2, seconds, 100); turnRight(900, milliseconds, 60); } }
![Page 15: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/15.jpg)
Worcester Polytechnic Institute
Repeating some steps
• Use the word “while” followed by an expression to repeat a group of program steps
• Everything in the braces is repeated while the expression is true
task main() { while (true) { forward(2, seconds, 100); turnRight(900, milliseconds, 60); } }
![Page 16: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/16.jpg)
Worcester Polytechnic Institute
Driving the robot
• Use the command, “forward” to make the robot drive forward
• You supply the time to drive, the units of time, and the speed (-127 full backwards, 0 stopped, and +127 full forwards)
task main() { while (true) { forward(2, seconds, 100); turnRight(900, milliseconds, 60); } }
![Page 17: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/17.jpg)
Worcester Polytechnic Institute
Making the robot turn
• Use the command, “turnRight” to make the robot turn right
• You supply the time to turn, the units of time, and the speed (-127 full backwards, 0 stopped, and +127 full forwards)
task main() { while (true) { forward(2, seconds, 100); turnRight(900, milliseconds, 60); } }
![Page 18: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/18.jpg)
Worcester Polytechnic Institute
Make a Square
• Now, your job is to change the program to make the robot turn in a square
Start with:
\documents\ms4ssa rawanda\drivingStraight
MS4SSA Math and Science for Sub-Saharan Africa
![Page 19: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/19.jpg)
Worcester Polytechnic Institute
Drawing a square: a solution
Fill in the program here
![Page 20: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/20.jpg)
Worcester Polytechnic Institute
How do forward and turnRight work?
• These are functions that are built-in to RobotC • What they really do is control the left and right
motors the way you said
Function What it doesforward(1, seconds, 100); motor[rightMotor] = 100;
motor[leftMotor] = 100; sleep(1000);
turnRight(500, milliseconds, 60); motor[rightMotor] = 60; motor[leftMotor] = -60; sleep(500);
![Page 21: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/21.jpg)
Worcester Polytechnic Institute
Your Second ChallengeDrive until 10cm from wall, then stop
![Page 22: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/22.jpg)
Worcester Polytechnic Institute
Use a SensorMS4SSA
Math and Science for Sub-Saharan Africa
Sensors allow the robot to understand it’s state and the world around it
Ultrasonic rangefinder gives the distance to an object in centimeters
![Page 23: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/23.jpg)
Worcester Polytechnic Institute
Edit setup to include rangefinder
TypeNamePort numbers
![Page 24: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/24.jpg)
Worcester Polytechnic Institute
Using a Rangefinder
• Start with the task main() as usual
task main() { while (true) { float distance = SensorValue[ultrasonic]; if (distance > 11) { forward(10, milliseconds, 60); } else { stopAllMotors(); } } }
![Page 25: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/25.jpg)
Worcester Polytechnic Institute
Using a Rangefinder
• Do the driving and range finding forever
task main() { while (true) { float distance = SensorValue[ultrasonic]; if (distance > 11) { forward(10, milliseconds, 60); } else { stopAllMotors(); } } }
![Page 26: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/26.jpg)
Worcester Polytechnic Institute
Using a Rangefinder
• Get the distance to the object in front of the robot
task main() { while (true) { float distance = SensorValue[ultrasonic]; if (distance > 11) { forward(10, milliseconds, 60); } else { stopAllMotors(); } } }
![Page 27: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/27.jpg)
Worcester Polytechnic Institute
Using a Rangefinder
• If the robot is greater than 11 inches from the object, then drive forward otherwise stop the motors
task main() { while (true) { float distance = SensorValue[ultrasonic]; if (distance > 11) { forward(10, milliseconds, 60); } else { stopAllMotors(); } } }
![Page 28: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/28.jpg)
Worcester Polytechnic Institute
What went wrong?
• Inertia carries robot past 10 cm • What can we do?
─ Stop 12cm from wall to allow 2cm of coasting?
• What’s wrong with this strategy?
─ Differences in battery charge
─ Differences in driving surface
─ Differences in slope
─ etc…
Use proportional control!
MS4SSA Math and Science for Sub-Saharan Africa
![Page 29: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/29.jpg)
Worcester Polytechnic Institute
Proportional Control
Compute the distance from the set point and call it the error
We want the robot to stop 10cm from the wall so the target distance or set point is 10
Make the robot driving speed proportional to the error. As the error gets smaller, the robot drives more slowly. The speed is a function of the error.
12cm16cm24cm 8cm10cm
error=14 error=6 error=2 error=0 error=-2
MS4SSA Math and Science for Sub-Saharan Africa
![Page 30: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/30.jpg)
Worcester Polytechnic Institute
Proportional Gain
8cm12cm16cm24cm 10cm
error=14 error=6 error=2 error=0 error=-2
These error values are too small to make the motors moveSolution:
We can multiply the values by some constant (Kp) to make the values big enough to drive the motors
for example: Kp = 3
speed = 42 speed = 18 speed = 6 speed = 0 speed = -6
MS4SSA Math and Science for Sub-Saharan Africa
![Page 31: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/31.jpg)
Worcester Polytechnic Institute
What if Kp is too small?
Kp = 1
error=16 speed=16
MS4SSA Math and Science for Sub-Saharan Africa
![Page 32: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/32.jpg)
Worcester Polytechnic Institute
What if Kp is too small?
Kp = 1
error=3 speed=3
MS4SSA Math and Science for Sub-Saharan Africa
![Page 33: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/33.jpg)
Worcester Polytechnic Institute
What if Kp is too small?
Kp = 1
error=2 speed=2
A speed of 2 is too little to make the motors turn
MS4SSA Math and Science for Sub-Saharan Africa
![Page 34: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/34.jpg)
Worcester Polytechnic Institute
What if Kp is too small?
Kp = 1
error=2 speed=2
The robot never reaches the set point!
MS4SSA Math and Science for Sub-Saharan Africa
![Page 35: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/35.jpg)
Worcester Polytechnic Institute
What if Kp is too large?
Kp = 10
error=24 speed=240
MS4SSA Math and Science for Sub-Saharan Africa
![Page 36: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/36.jpg)
Worcester Polytechnic Institute
What if Kp is too large?
Kp = 10
error=5 speed=50
MS4SSA Math and Science for Sub-Saharan Africa
![Page 37: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/37.jpg)
Worcester Polytechnic Institute
What if Kp is too large?
Kp = 10
error=2 speed=20
MS4SSA Math and Science for Sub-Saharan Africa
![Page 38: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/38.jpg)
Worcester Polytechnic Institute
What if Kp is too large?
Kp = 10
error=0 speed=0
But we’re going so fast that the robot can’t stop
MS4SSA Math and Science for Sub-Saharan Africa
![Page 39: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/39.jpg)
Worcester Polytechnic Institute
What if Kp is too large?
Kp = 10
error=-2 speed=-20
Now the value is negative, and big, so the robot starts backing up at high speed
MS4SSA Math and Science for Sub-Saharan Africa
![Page 40: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/40.jpg)
Worcester Polytechnic Institute
What if Kp is too large?
Kp = 10
error=2 speed=20
Now the value is big and positive again, so the robot starts driving forwards fast
MS4SSA Math and Science for Sub-Saharan Africa
![Page 41: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/41.jpg)
Worcester Polytechnic Institute
Finding the right value
• Keep increasing Kp until the system oscillates then back it down a little
• There are other techniques, look online at PID control
MS4SSA Math and Science for Sub-Saharan Africa
![Page 42: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/42.jpg)
Worcester Polytechnic Institute
Adding Proportional Control
const float Kp = 1.0; const float setPoint = 11;
task main() { while (true) { float error = SensorValue[ultrasonic] - setPoint; forward(10, milliseconds, error * Kp); } }
Compute the error
Drive at a speed proportional to the error
![Page 43: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/43.jpg)
Worcester Polytechnic Institute
Modify Program 2
• Edit the program that is provided to that it stops on the line. • Modify the Kp value to find a value that doesn’t
oscillate or stop short of the line • Try smaller and larger values of Kp and observe
what happens if it’s too big or too small
\documents\MS4SSARwanda\ultrasonicNoProportional
![Page 44: MS4SSA Robotics Module - wpi.edu · Worcester Polytechnic Institute What is a Program? • Programs are steps, or instructions that you want the robot to follow • There are many](https://reader033.vdocument.in/reader033/viewer/2022041500/5e21908ea869a150cb5076a1/html5/thumbnails/44.jpg)
Worcester Polytechnic Institute
What we accomplished
• Talked about why robot programming • You wrote programs to drive the robot and use
sensors for understanding the world around the robot