I looking to improve my autonomous routines for the next season.
To help you improve we need to know what you have right now.
Well, for example for turns I am using the gyroscope and ROBOTC sample code. Is there a more accurate approach to this? Thanks for answering so quickly.
Control loops using the values you get from sensors is what you want. This is to say “how far away am I from where I am” and then “how do I stop darn near exactly on the spot I want”?
Start with proportional control and that will get you pretty far. AFter that, you can lear to tune PID or other control loop types.
For gyroscopes specifically, look at the old QCC2 code for calibrating the gyroscope correctly. Do this with your robot now and you can apply this on your robot you build for next season. The concepts are completely transferable.
Gyroscopes are really the most accurate way to do turns. Ultimately, to improve your autonomous routine, you ought to move toward greater sensor use. The same autonomous programmed based off of time will fail more often then one that relies on sensor values. Granted, there are several considerations that need to be made so that an autonomous written using sensors will succeed consistently.
- Redundancy: Even if you check the value of your potentiometers one thousand times before the start of programming skills, the values might be distorted just enough to render your entire routine useless. We’ve had issues where the claw can’t close to the desired angle so the claw motors burn out while the robot just sits in the middle of the field. Have a back-up if a certain amount of time elapses to ensure that no step stops you.
-Resiliency: In a similar way, having systems that can make sure that nothing goes off track can work wonders. Find that launching stars over the fence during the autonomous leads to a high rate of flipping? Have an additional task of moving backwards to counteract that. I have also worked on a few lines that reorient the angle of the robot after every case that it seemed to get turned.
-Speed: You need to have some system to allow you to code quickly. If code takes too long, you lack time to test and retest for consistency. Additionally, being slow could also prevent you from using all of the time allotted. Functions are a good way of calling repeated tasks, and with the inclusion of parameters can be used to write a full routine.