Sorry for the undescriptive name, but there’s no real way to describe this with my high-school math knowledge.
We’ve noticed that when our robot goes at a speed, and then moves in the opposite direction at the same speed, it starts tipping over. As such, we’d like the joystick, when it is set to a certain value (let’s say 1), to slowly ramp up toward that value, instead of immediately going to it.
Also, with the Jaguar v.101 firmware, you can set the speed controllers to automatically ramp up the values by simply turning the limit switch jumpers sideways. You don’t need to be using CAN to do this, either, only the firmware is needed.
Just add this VI to your Teleop loop. All you have to do is wire your joystick input (which must be between -1 and 1) to the “joystick input” side, wire the output to your motor control VI, and pick a constant for scaling. Start with 0.1 and tune it in to what you think is best.
Once you have that, repeat for the other axis and you’re done!
There is a pre-built “PID” function in LabView that does exactly this. Search for “rate limit”.
We are using this to keep us from stripping gears on our ball pickup if we reverse directions quickly on it.
Find a control value that works well by experimentation. For our ball pickup, a value of 45 is good. For drive control, you may want a higher number.
Could you please post a PNG? I don’t have LabVIEW installed here.
I’m wondering how you get a maximum rate limiter using only a P controller, without affecting the dynamics of commands which do not exceed the desired limit.
There are several methods in this whitepaper: http://thinktank.wpi.edu/article/140, including Ether’s method, a reference to the PID Output Rate Limiter, and some introduction to low pass filters.
OK then. For the benefit of students reading this thread, it’s not the Proportional § section of a PID block. It’s a slew rate limiter, and it’s identical to the one in the WPI paper Joe linked to.
*
*