Why Won't My Robot Run Straight!
This is the most frequently asked question we've received over the years. Here are the reasons:
- USING PUFFY WHEELS: The basic pneumatic wheels that come with the starter kits compress easily and therefore constantly change diameter. The are also lumpy on the tread area. A robot of even moderate weight will force the wheel to compress as it drives creating unpredictable and uncorrectable changes in direction. The solution: Find wheels with hard, solid treads.
- USING A SINGLE AXLE MOUNT: If your wheel is attached by an extended axel only (not supported on both ends) then you again, create unpredictable and uncorrectable changes in direction. Why? The LEGO axles are very flexible, and the motor drivers have play in them as well. Wheels must have a rigid, matching mount on both sides to ensure stability.
- IMPRECISE TRACKER WHEELS OR GLIDES: Similar to "SINGLE AXLE MOUNT," if you have trailing wheels or glides (ball bearing or sliders or wheels) that are imprecise and not firmly mounted, it will wobble as you drive and respond to variations on frictional coefficient of the surface. This is particularly present in caster type wheels.
- NON-CALIBRATED MOTORS: The NXT and EV3 motors are all amazing, powerful, and precise. But they are not all the same. We published a very simple way to calibrate your motors.
- OUT OF BALANCE ROBOTS: Try to make your robots center of gravity in the center, seriously. A robot with a very heavy attachment or device on one side will cause the robot to track erratically.
- TEST TEST TEST: After you have followed all the steps above do multiple line runs on a smooth surface twice the length of the table. Try to isolate what is causing any drift and correct with that setup. Then document it.
- IMPLEMENT A GYRO SENSOR: This is very difficult to do and the Gyro sensors have their own drifting issues. However, there are hundreds links on Google on how to do this. Check them out: https://www.google.com/search?q=using+ev3+gyro+sensors+to+run+straight
________________________________________________________________
Why Master EV3 Software (or any robotics programming system)
We got involved in FLL in 2003. Since that time I have coached a dozen or so teams, judged multiple tournaments, and served as a tournament director for since 2010.
Of the thousands of teams I've observed, most are using only rudimentary programming skills. I call it brute force programming.
This includes only the basic commands.
- Drive for N rotation or degrees.
- Turn with the turn function.
- Run some other motor.
This type of programming will almost always get you the basic challenges. The ones that are close to base and easy to access. I can get you over the threshold for awards. However, it is generally frustrating for the students for the following reasons:
- It is at all times unpredictable. A minor change in battery charge, change in humidity (effecting traction), a bump in the table surface, human variance/adrenaline, and more, all combine to make it hard to run repeatable missions.
- The imprecise mechanical properties of LEGO robotics. Even if you follow all the recommended construction techniques which include axles mounted with holders on both sides, wheels that don't compress, tightly installed motors, good center of balance, it is still an imprecise system.
- Variations in tables from event to event. Even thought all tournament directors strive to make sure the tables are competition ready and field kits are setup according to the guidelines, there are slight variations. Therefore, programming that relies on a precise positioning of the mat will fail.
- The speeds required to complete some challenges will cause wide variations in directional performance.
To excel and demonstrate precision in robot programing teams need to learn more advanced techniques with sensors. The advance functions will allow for repeatable, precise, predictable results. These include:
- Use of light sensors and all the related functionality. In particular, to capture and follow a line, follow one edge of a lines and switch edges, count objects, stop at a color or shape, measure with precision variations in color or shade, and how to calibrate them to the lighting at the event.
- Use of touch sensors in conditional programming. They need to know how to use them to stop at an object, confirm an action.
- Use of gyro sensors. These sensors have their own touchy issues, but they can be used effectively to keep the robot running straight and making precise turns.
- Use of ultrasonic sensors. While these are not effective at distance, they do work well in close quarters.
And they need to learn advanced programming techniques. The EV3 and NXT software packages provide a full range of modern programing features beyond the linear programming use by most teams.
- Conditional looping and switching.
- Branching.
- Parallel tasks.
- Use Loops and Switches to avoid an obstacle
- Navigate using Motor Rotation sensor feedback
- Navigate using Gyro Sensor feedback
- Simplify programs using My Blocks
- Simplify programs using Arrays
- Storing and transferring variable values from step to step.
- Doing calculations based on stored values.
- And more.
The best way to understand this is to watch high scoring robots from years of FLL events. Watch some of the videos at this YouTube search link.
And look at some of the images at a google image search for "advanced ev3 programming"
An astounding set of courses available to educators.
**So that is your mission. The good news is your robot will not self-destruct after this message**
________________________________________________________________
Best Way to Train -- Use Robotics Mats!
There are a lot of options so here are some suggestions.
- General Skills Mat
- Counting and Targets Mat
- Line Following Mat
- Or the three Table Top Versions
- Light Sensor Mania