Robodox 2012 Rebound Rumble Season Completed

Robodox April 2012 Newsletter tells the story  of team 599 at San Diego and Long Beach regional competitions. They performed well  but came up a little short of qualifying for nationals.   This was one of our better robots and the team should be proud that it functioned just as designed.

The rest of the season will see the team at the Vex world championships at Anaheim convention center near Disneyland in mid April and building an awesome T-shirt pneumatic cannon robot.   We will continue to improve the Radiologist to clean up some open performance issues…. namely getting the shooter PID function to work as designed.   We had to run it open loop at the competitions because of encoder problems and some strange timing issues.   If it works, this will be the first 599 velocity PID using the WPILIB PID controller function.   I wrote several blog posts on how to set gains on a velocity PID function but some how software issues have plagued us and we have not been able to use the theory.

Advertisements

8 Responses to Robodox 2012 Rebound Rumble Season Completed

  1. matthewfl says:

    I don’t know if this helps, but on our shooter, I modified the output from the PID to prevent the shooter motors from being run in reverse. I found that when it was running in reverse it was causing some sort of skipping sounds and not being terrible efficient.

    Additionally with the values on the PID, I found that you really only need the P value. The I value can be somewhat helpful depending on how the shooter is reacting. And for rate controlled PID, you should not be using the D value as it basically becomes a useless value.

    • vamfun says:

      Thanks for your reply.�
      Glad you were able to get your shooter working ok. A few questions:
      Did you use the WPILIB PID or your own code?
      Did you use a Victor or a JAG for your motor controller?
      Did you control the speed of your shooter with range or just have a few fixed ranges that you shot from where you knew the speed setting from trial testing?
      How long did you need to wait for the shooter speed to stabilize?
      Re your comments.
      I think you limited your PID output to only positive (increase speed) based upon your comment. This would work fine except you will have to coast to slow down and hence you are dependent upon the friciton drag of your installation. This is ok if you are happy with the slower deceleration response time.
      I am in full agreement with your other comments. See my�Note on velocity PID. If you use a JAG then having just a KP feedback will result in a steady state speed equal to the commanded speed multiplied by a factor of KP/(1+KP) . This can be compensated for with a slight increase in command or adding a feedfoward term to the PID output. The KI term compensates for this automatically. This assumes that the speed is normalized to the maximum speed (w_max) before being multiplied by KP. If you are feeding back an non normalized speed , then the factor is KP*w_max/(1 + KP*w_max). If you are using a Victor, then the steady state speed is nonlinear with input. It is typically higher than the commanded speed and is somewhat compensating for the KP/(1+KP) factor.

      FRC/Vex 599 Engineering Mentor

      • matthewfl says:

        We are using Jaguars with the CAN bus, but we are using the encoder connected to the digital sidecard because we are using two motors on the shooter. However, when prototyping with the shooter and one motor, we used the PID on the Jaguar without problems. Something along the lines of .01 P and .001 I if I remember correctly.
        When it came to slowing down, our shooter was able to go from about max speed to near stopped in about 3 seconds with the motors were set to coast. Additionally we are using two RS-550 with about a sight torque ratio, and the mass of our shooter+flywheel is about 5 lbs, and we found that attempting to force the motors in reverse on this configuration at high speeds caused a lot of current spikes and unnecessary heating up of the motors.***
        When it comes to shooting various distances, the idea was to take a number of shoots at a number of different know, set speeds. We then took this data and loaded it excel and fit a function to the data. With our prototype shooter we got this to work fairly well with distances that we did not directly test. However with the shooter that is currently on the robot, we ended up a behind schedule and instead have “lower quality data that was gathered from quick practice match sessions at competition.”
        As for feed forward, we did not use any on our shooter.

        *** we developed a logging mechanism this year which allowed us to constantly monitor our motors and allowed us to see the current spikes.

  2. vamfun says:

    Matthew, I just figured that you are a member of our good friends the Nerd herd. Sorry you had so many mechanical troubles in Long Beach.

    Just for fun, I would like to derive PID gains from my simulation and see how they matched yours. To do this I need to estimate the moment of inertia of your shooter wheel unless you have it?
    How much of the 5lbs are rotational?
    What is the gearing ratio of shooter?
    What is the shooter wheel radius (guessing 8 in) and how many wheels?
    What are the speed units that are multiplied by KP gain? (rps??)

    Although you used the CAN, where was the PID software from? WPILIB or your own?

    What do you code in? If it is CPP, I would be interested in the logging software that you used.

    • matthewfl says:

      We used the PID in the WPILib.

      For estimating our shooters moment of inertia, we used two 8″ diameter (4″ radius). As for the extra mass, we made our own evenly distributed (solid disk) flywheel. Based off my estimate, I get .0155 Kg/m^2 for the moment of inertia. However, note that even the 5 lbs that I said before is my own rough estimate of the mass.

      As for our logging system, we custom-built it during this season. We are now opening up our code because our season is over, however the code did receive a few battle scars this last weekend that I will be cleaning up over the next week or so.
      https://github.com/nerdherd/frc-2012

      • matthewfl says:

        I forgot to add that the ratio on the shooter is about 3:1 for torque. It is something in the 19:60 range but I believe it might be about 14:45 ish.

  3. Gold Wave Table…

    […]Robodox 2012 Rebound Rumble Season Completed « Vamfun's Blog[…]…

  4. Charlie says:

    Just finished reading your report on scissor lifts and now I know a lot more about it and now I know what=what and now I’m amazed because I’m the top of my class and then something comes along and I don’t know it! I think you’re blog is what all the robot builders like me need😀😎

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: