I'll have a hard time answering these but I'll give it a shot; my ability to converse intelligently about programming is very limited.
Quote:
Originally Posted by Ether
1) what was your driver interface? e.g. did you just give the driver direct access to the 3 degrees of freedom (fwd/rev, strafe R/L, rotate), or did you put a layer on top of that to abstract it to a more intuitive level? one mode or several? etc
|
Just two modes:
Robot-centric control allowed the the driver to adjust the setpoint of the PID loops for the 3 DOFs you listed.
Field-centric control added a layer of abstraction: the translation DOFs became north/south and east/west.
My understanding is that teams attempt these kind of field-centric control schemes all the time, but the drift in FRC-grade gyros often makes them unusable after ~10 seconds. Our original intent was to counteract this by integrating the data from multiple gyros with robust "sensor fusion."
Quote:
Originally Posted by Ether
2) Did you derive the inverse kinematics from first principles, or did you refer to available papers on this topic?
|
I made sure the literature was provided, but I'm fairly certain my programming student derived everything from scratch. I believe he also threw out a couple of the WPI libraries and rewrote them. The often-spotlighted Matt Kline quote comes to mind: "A good programmer can look at a library, decide he hates it, and code everything from scratch. An amazing programmer can look at a library, decide he hates it, but realize the time it will save him and learn to use it." I hope to work on this with him next year.
Quote:
Originally Posted by Ether
3) Why was field-centric problematic? Were you having gyro drift problems, or did you encounter difficulties with the programming?
|
I believe even the KOP gyro was fairly stable. Two main problems stick out in my memory:
-- Issues with communicating with the IMUs via any of the available protocols. One of the IMUs had an on-board microprocessor that supposedly provided built-in sensor integration, but we were never able to get access to this predigested data. We lost ~2 weeks on this. We ended up duplicating this capability by building a Kalman filter that ran on the cRio, ready to recieve the raw input from multiple sensors. I don't quite remember the rest of the story, but in the end we were using only the KOP gyro.
--
Whatever this was. We lost another 1.5 weeks on this.