//FIXME: this is kinda horrible do an actual implementation
I think the only thing wrong with the implementation is the name of the variable. It looks like a hack at first, but in reality it reads as the best way to trigger a sensor reset upon arrival at the point.
Really nifty stuff in this code. Looks like that indexer code took a bit more to get done than we conjectured.
What units are typically used for things like DriveToPoint? inches, cm, etc, ticks?
I love reading code for great robots with a high level of automation. You can tell just how much time was spent optimizing everything.
One question. I noticed in your autonomous driving code, you do some compensation for voltage level:
Vect output = new Vect(xOut*12.5/voltage, yOut*12.5/voltage);
Did you find that this made a significant difference in your application as opposed to just outputting xOut and yOut directly? It looks like you had both modes available, so you must have done some sort of comparison.
The compensation for battery voltage is in an unused version of the driveToPoint method. We played around with limiting the output based on current speed and battery voltage to reduce wheel slip but we eventually settled on linearly ramping the output over time.
This puts my Kiwis PID loop to shame. I love going through your Code, it’s so clean and organized. If I had the chance to redo my code, I would make it similar to yours, but surprisingly mine actually works somewhat nicely. I may redo parts of it, and make it look more like this, but my biggest problem would be encoders on the wheels. I’m currently only using a gyro to fix problems. I find it fun to compare the two different ways of implementing kiwi drives. If I had the chance(and parts), parts of my code would look more like yours! Awesome Job!
The code was written in the eclipse IDE and would be best viewed from that program, however you can go to src>org>simbotics>simbot2015 and you will find all of our .java files which can be opened in any text editor but I would recommend notepad++.
Thanks Simbotics for releasing this! Code Orange, 3476, is in the process of learning Java in order to use it for the 2016 season instead of our usual LabVIEW efforts. These really help us!