ROBOTC.net forums
http://robotc.net/forums/

I need help with PID controllers
http://robotc.net/forums/viewtopic.php?f=11&t=8150
Page 1 of 1

Author:  Luke323X [ Fri Mar 07, 2014 2:49 pm ]
Post subject:  I need help with PID controllers

Hello everyone!

I am Luke - one of the team members on 323X. We are a first year team, and no one on our team has even seen vex prior to this season. I say that only to emphasize how much of noobs we are. I just started coding a couple weeks ago, and I feel like I've been picking it up pretty well.

At the last few meetings, I've been talking with the rest of my team about what we want to do before the world championship. We all agreed that we need some sort of straightening code. We also agreed that we need to have some sort of code that will keep the lift from falling, even when there is pressure applied to it. I have been reading some threads and seen that people have used PID controllers for those two things as well as several other things that we would like to do.

I have a vague understanding of what PID controllers do, but I have no clue how to use them. What I'm looking for is an in depth explanation of what they do, how they work, what they can be used for, and how to correctly use them.

We are using RobotC and the Vex Cortex, so please only reply with answers regarding that. We have potentiometers and integrated motor encoders. Thanks in advance for your help!

P.S. I did write code that did what we wanted it to...sorta. It didn't work as well as the code that teams like 323Z (who I know for a fact are using PID controllers) have written. If you would like, please comment and I can include both functions that I wrote.

Author:  Kevin Selavko [ Sat Mar 08, 2014 6:26 pm ]
Post subject:  Re: I need help with PID controllers

I really liked my arm holding code from this year.

Code:
void stopArm()                 
{
   if(armPosition() < midHeight && armPosition() > cutoff)      //Gives it a little power to keep the arm up
      armAtSpeed(20);
   else if(armPosition() < highHeight && armPosition() > cutoff) // Less power is needed towards the top
      armAtSpeed(10)
   else                          // Dont want to have it push itself over when it is near the top or use power when the arm is resting on the robot
      armAtSpeed(0);
}

Page 1 of 1 All times are UTC - 5 hours [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/