Team CoeBotics Seattle, WA USA Robot Engineering Overview
Robot Strategy Simple effective mission strategy: Go for easy to reach targets - missions that always score versus going for everything, but accruing high amount of potential touch penalties Use base to reset between missions Use sensors when they help and can adjust robot course Use the walls as the robots friend - straighten out the robot
Mission Strategy 1. Get the blue truck, and bring it to base. 2. Get the cat and the dog to base. 3. Shake the tree branch free 4. Get water bottle and release plane 5. Release the Tsunami 6. Go get Josh and the fuel can 7. Push the ambulance to the yellow zone (with blue truck on arms) - on way back shake earthquake building, return to base.
Robot Sensors Color Sensors - three - to detect various black lines to initiate turns. Gyro Sensor to make a number of precise turns. Gyro Sensor Three Color Sensors
Robot Design Simple Effective Attachments K.I.S.S Design principles
Gyro Sensor Intended use: when robot is placed in a know position in base, the Gyro is reset to obtain the 0 angle of the robot. (see diagram 1) This angle can then be used throughout the whole robot run to calculate the angle of subsequent turns in relationship to the known starting angle if distant traveled (rotation count of wheels) in a known course relative to the starting heading is known. In essence creating a robot INS (inertial Navigation System). (see diagram 2) It is possible to turn the robot at any given location on the course in certain direction based on the initial 0 angle at the start of the run. (see diagram 3 and diagram 4)
Gyro Sensor Diagram 1: Robot squared against wall, Gyro pointing forward. If Gyro is reset in this position, then the the direction of the red arrow is the 0 angle. 0 degree Angle - reference angle
Diagram 2: Gyro Sensor Turn robot to be 90deg turned in relation to starting angle of 0 degrees First angle turned - 20deg. Gyro use: Even if the robot arrives not under 20degree angle based on the initial turn, because we know how much the robot may have turned in relation to the 0 point, we should be able to turn the robot to a position where it is now facing 90degrees relative to the initial starting position. Using a simple turn robot until angle = 90 degree program sequence 0 degree Angle - reference angle Observation: This does not work! After the initial turn in base, the Gyro will become confused is is unable to make the robot turn consistently in relation to the 0 angle. Expected Causes: Gyro Drift caused by the movement and shaking of table as robot travels, robot increasing slowly angle traveled as it is underway.
Diagram 4: Gyro Sensor Turn robot using standard odometer based rotation First angle turned - 20deg. Instead of relying on the gyro to make the turn to the perfect 90 degree angle in relation to the starting position of the robot, we use the wall. We drive on purpose into the wall to straighten the robot. Observation: When we do this the gyro will get absolutely confused! To then afterwards use the gyre, it requires a gyro reset (re-zeroing the angle) BUT it also requires a 1 ~ 2 sec wait to make sure the rest finish executing and stabilizing the gyro. Also drift may need to be cancelled out. 0 degree Angle - reference angle Conclusion: The gyro is difficult to rely on at best the further the robot travels from it s initial starting position. It can be used with success along the course, if prior to initiating a turn it is reset, and does the turn becomes relative to the current position of the robot.
Gyro Sensor The Gyro Sensor is extremely sensitive to drift. This is caused by a variety of things, the biggest being shaking of the table, the gyro not being perfectly still when EV3 is powered up. RESULT: turns will no longer be precise - a 90degree turn maybe 115degrees or 74degrees depending on the amount of drift effecting the Gyro Sensor SOLUTION: we have developed two solutions - we created a gyroreset program which we can run when we setup our robot for the first time at our robot game time. We use the gyro reset function when we rely on the gyro for precise turns and after we intentionally bump the side wall. We measure actual turn prior to calculating new turn and use it as an offset.
Diagram 3a: Gyro Sensor Observations: The robot will not make a turn to position itself in perfect 90 degree angle as it relates to the 0 starting position. It will either turn way to far as much as 35 or more degrees past the 90 degree angle, or it will start spinning uncontrollable. Conclusion: unreliable use of gyro! turndemo1 program in gyrodemos Project
Diagram 3b: Gyro Sensor Observations: After resetting (zeroing) the gyro, giving it a second to settle, a turn at given angle can be made. Conclusion: If the robot has drifted anything of course of the initial 20degree angled course, the subsequent turn will be off as well! turndemo2 program in gyrodemos Project
Gyro Sensor More Reliable use of Gyro: Slow the turn speed down, this will ensure that the robot does not surpass the maximum d/s angular motion of 400deg/s. Read the angle of the actual previous turn right before resetting the gyro, and use it to calculate the new offset for the subsequent turn.
Diagram 3c: Gyro Sensor Observations: record the final angle the robot is under just prior to doing a reset and zeroing the gyro. Use this angle to calculate the new offset for the subsequent turn using a math block. (either add - neg. turn or subtract pos. turn based on direction we want to turn.) Conclusion: This will dramatically improve the accuracy of subsequent turns, when used in combination with other known waypoints on the course. turndemo3 program in gyrodemos Project
gyroreset Program After the robot is initially booted up in a perfect still position, sometime the gyro will get so confused and build up intolerable drift that a full reset maybe required. We have learned by experimentation that changing the gyro sensor from angle mode to angle+rate mode and waiting 3seconds between those state changes, the EV3 will recalibrate the Gyro sensor, canceling out all drift. Caution: robot must be standing still, no table shaking then run gyroreset.
gyro use in programs In a program where we will extensively use the Gyro to make precise turns, we start with a Gyro Reset so that we know it has zeroed the angle. After we bump a wall, we execute a gyro reset, so that we know the angle is yet again zeroed and drift removed. HOWEVER: we have now lost all references to the initial starting position!!!
Gyro Sensor In Conclusion: We can use gyro safely in base to turn the robot in a desired angled course. If we want to use the gyro to make precise turns anywhere else on the course we need to: first we need to locate another precise known point second reset the gyro - zeroing it - and then can make a precise turn from the know precise reference point. third we can improve these turns by using (reading) the angle the robot has turned right before the reset and use it to calculate a new turn offset. Overall the conclusion is that the gyro is a less useful sensor as first expected, yet knowing it limitations and using it within those parameters, an help improve the accuracy of our robot.
Blue Truck Mission Text
Blue Truck Mission Right color sensor as seen from front is aligned with the 9 hash mark on the base border wall. The robot is aligned into a straight path with the truck bed.
Blue Truck Mission Attachment used: Simple rake,which captures the truck, and will also rake the content of the truck bed, if they fall out into base.
Cat and Dog Mission
Cat & Dog Mission The cat & dog mission, uses a simple rake. The robot is aligned with the color sensor on the first hash mark, as shown. It uses the color sensor to find a black line and use it to slowly move towards the cat & dog in a precise motion. Does eliminating the error of the robot being slight further back then is ideal.
Shake the Tree Mission
Shake the Tree Mission The shake the tree mission, uses a simple fork which goes around the tree trunk. Once around the trunk, the robot slowly moves arm up and down and loosens the branch. The robot is aligned against he base side line as shown, and the red arm centered by eye wit the tree trunk.
Plane - Water Mission
Plane Water Mission For this mission we use a lineup jig. The jig is positioned so that one end is in the corner where the two base lines intersect. The robot front wheel is aligned with the black pin as show in picture.
Plane Water Mission The attachment used for this mission - as well as for other missions where we are trying to pick up items with a loop, uses a lego swivel wheel. The purpose, we will always know exactly the distance from the table, helping us with lining up a pickup stick in the right spot. Swivel Wheel Stick to launch the plane. Stick to pick up water bottle etc.
Plane BackupMission
Plane Backup Mission For this mission we use a lineup jig. The jig is positioned so that one end is in the corner where the two base liens intersect. The robot front wheel is aligned with the black pin as show in picture.
Tsunami Mission
Tsunami Mission
Josh & Gas Can Mission
Josh & Gas CanMission The Robot is lined up against the wall, and using the LEGO as shown. The extra pin is added to the grey arm. Robot has two arms attached.
Ambulance Mission
Ambulance Mission Blue truck on arms, guides down under angle. Make sure not touching the floor. Change attachments to simple arms. The Robot is lined up against the wall, and using Automation as line up.
Red Zone Mission
Red Zone Mission Basket installed and filled with supplies - make sure cat, dog etc are on the loop The Robot is lined up against the wall, and using Automation as line up.
Robot Programs
Program: bluetruck Program: catdog Program: tree
Program: plane Program: tsunami
Program: joshallgyro
Program: ambulance
Program: redzone
Program: gyroresetmyblock