|
Re: Information on PID Control
Yes, but we'd like to have some on-field time to really tune it up and prove that it is good enough to share. It was worked out on a white-board and ground into code, which remains the only documentation that we have at this point. Our students glaze over when I talk about accelerations and velocities being derivatives of position. We've kept it simple by limiting rates of velocity change (effective max. acceleration), and generalizing by using finite time slices given by periodic task loops. We've been working with our base from our old Logo-motion robot as a stand-in for our current one, so we know that the code is working well.
Our goal this year was to make the best field-centric control that we could, where anyone on the team could drive well. We do not have dedicated drivers, due to historical events and precedents in our team. Some students could do OK if we left it open-loop and scaled down the inputs (.5 for linear, .25 for rotational). Other students had difficulty with this, and would cause the robot to lurch about, losing the ball.
A friend of the team remarked that the open-loop control reminded him of the helicopters he flew in Vietnam, requiring very slight movements of the stick. Reduced gains limited the top-end performance of the robot, and we just don't have enough time for everyone to become skilled drivers with the typical open-loop system. That gave birth to our "bad driver filter" which was driven by physical limits of wheel friction and gyro rate.
Overall, it took a lot of work. We had to go to a new gyro that had a higher rate (posting code for this in a moment), and had to make an intermediate model for rotation. In the end, we want to share all of this, but we don't want to lead others down a blind alley of thought process that seems valid now, before being fully vetted.
|