Driving PID on Holonomic Drive

Are they ways to program a PID (or other control mechanism) into a holonomic drive? Has anyone done this before, and would they be willing to share their method/experiences. This has come up with my team in regards to planning Autonomous.

Thanks!

Yes I have.

https://github.com/csmith105/VEX-Toss-Up-Robot-Code-PROS

We had turning working perfectly and were well on the way to having any x/y offset with any final orientation working. Code was slow, writing all of it alone two weeks before worlds without ever having the robot in my possession was a bad idea.

If you want to Skype about it, PM me.

Yes, you have to do the PID on the X and Y axis separately. Tune each axis on its own, then plug int he numbers for each direction you want to move. If you have an X drive, the X and Y are 45 degrees offset from the field coordinates. It works fine, just change your frame of reference.

Without any fancy path planning, it will get to the X and Y values independently so you see it curve until the first variable is within range.

Try not to turn and move at the same time unless you get pretty advanced in the programming.

I did this approach for a class at WPI once and finding the optimal path is actually very difficult. Without holonomic capabilities the different paths from 1 point to another has thousands of different “reasonable” paths to take. For long distances it makes sense to just turn and drive straight but for short distances it makes sense to do arcs to save time standing still. The question is scaling the arc so that you find the best route to any distance. Take a look at all these paths and try to honestly say which is best.

Long story short, don’t arc unless you really know what you are doing.