Does anybody know the best algorithms/methodology for getting a very high and consistent programming skills score? For example, I know I could use PID, try again to learn Okapilib (I have tried, but found the documentation very confusing), or attempt odometry (also quite complicated). The reason I ask this question is because I want to have a very good programming base for next year. I would like to develop a system that is both simple and versatile, and is accurate enough for both match autos and programming skills. Please give your suggestions or what worked for you, anything helps.
Do you think PID has the highest / a high enough ceiling on its usefulness? Essentially, do you believe it can be used for all the things that any other algorithm can be and perform equally or more effectively? Since I want to be able to achieve a very high level of success with the system I create, I figure it is best to focus on the system that has the most potential. Currently, I am leaning towards some type of PID with slew control for the most accuracy, but I’m not sure if this will be able to keep the robot accurate enough for a full minute programming skills. I was also thinking of integrating the inertial sensor depending on next year’s challenge to boost accuracy in scoring. For example, centering on the flag in TP or centering on the tower in TT.
PID can be super useful as it will be more accurate then any other widespread auton coding like rotations and degrees and much better than timing. Personally if you have time i would try both as it would be nice to put in your EN and you would be able to find the most effective way of PID combined with sensors for your robot. Otherwise i would stick with normal PID as i have seen teams work for entire seasons on getting one sensor to work.
I feel you are asking more for a comparison between odometry and PID systems. PID systems are robot-centric. This means that all movement is dependent on the robot itself. So this allows for accurate movements but allows no real way of tracking the robot without either writing down values or creating some sort of store method. Odometry also can use PID and/or motion profiling meaning its about if not equally as accurate as compared to just PID systems. However, odometry is field centric meaning the robot is constantly tracking its current position and heading. This, unlike PID systems, allow for the robot to self-correct while running autonomous code. PID systems, since they don’t track the robot, can’t self correct. Since with odometry the robot knows where it is and where its facing, if it is pushed or turned, it can correct itself. Even though odometry is harder to code, you can code more complex auton routines and worry less about errors (not saying you won’t have errors, just less than a full PID system).
My question is more along the lines of, “what do you think will be necessary for next year in order to be successful”. I am aware of the nuances and differences between the systems, I just don’t know at what point something is overkill when trying to program an autonomous or programming skills. When I look at top skills teams, I see 2d motion profiling with pros and PID (2114x), motion profiling only (365x), and odometry (5225a and 7k), and so I am wondering how much difference there is in the successfulness of these systems, as these teams have all put up high scores. Since they all have high scores, it is hard to tell if one is objectively better than the others. Additionally, if anybody has any idea how long it takes to get PID, odometry, or motion profiling running well, I would appreciate the knowledge.
Successful has more than one definition. If successful for you is going to worlds, motion profiling and odometry are overkill (PID probably isn’t). If successful is winning Skills at Worlds, you need the most accurate and consistent programming possible. At that point, nothing that has been done in Vex as of now is overkill (in fact odometry and motion profiling are probably a must).
PID is not that time-consuming to get running well. Watching a tutorial like this could probably cut the time down to 2 hours for the basic set-up. Obviously, coding auton would still take time. I personally started working on odometry code about 1/4 of the way through last season. I was coding mostly from scratch. I got a barely functional version working about 3/4 of the way through the season. It was not accurate enough to be worthwhile. Not sure how long it would take using Okapi.