We used the Talon Srx + mag encoder in all of our systems last year and successfully implemented motion magic in our system to bring our structure to scoring locations.
However there was still an option in our joystick to just “open loop run” the mechanisms to a positive and negative direction and I was wondering if that is even necessary since our drivers barely used it.
We ran into some trouble integrating both the closed and open loop modes.
When we ran the intake arm open loop, when we stopped moving we needed to send some power to the arm to counterbalance it against gravity, however when we ended the motion command the setpoint sent to the controller was not current since the arm was still decelerating and the mechanism would jump backwards awkwardly to the set point.
I figured that if we just ran a closed loop that moved the arm in a positive or negative direction we wouldn’t have that problem. since the jumping didn’t happen when we ran the intake arm on a closed loop.
Even for our drivetrain which always seemed to me like a classic case of an open loop use (for most of the teleop period), our robots over the years always had troubles driving straight, now we are working on improving the mechanical side, but from a programming point of view I figured we can just convert joystick values to velocity and run a velocity control, it should feel a whole lot smoother.
My fear of close looping everything is that if we over relay on our sensors and one of them malfunction mid game that mechanism will be dead for the rest of the match. However last year we had no problems of that kind except for one game when a robot collision broke off our intake arm encoder.
I was wondering how other team approach this topic, since my thoughts right now is that if quality sensors are mounted correctly on your mechanisms I don’t see advantages of ever using an open loop control.