We were testing our bot and found that our shooting was highly inconsistant due to a variety of factors, some including but are not limited to:
Constantly fluctuating battery
Speed of flywheels (And the fact they take a while to reach max speed)
Ball compression between wheels
The time it takes fly wheels to reach it’s set speed.
I’ve read somewhere that PID controllers might help, given we have encoders mounted on our shooters, would anyone be so kind as to link me to some documentation about that? We’re using Java, if that helps.
How are teams doing with their shooting? If anyone teams have very consistant shots, would it be possible to enlighten the rest of us on some key things to look out for?
I’ve heard that no matter how hard to try to make things accurate, the balls on court will be very different and that will skew everything.
Make your ball shooting mechanism work the same regardless of variations in ball surface texture, squishiness, center of mass, color, temperature, dielectric constant,…
I’ve seen two different shooters up close. They are not at all similar. Both of them are quite repeatable in giving the ball a consistent initial trajectory. They can’t account for differences in wind resistance, and a significant change in ball mass can throw them off, but otherwise they seem quite good.
The only common feature is that they throw the ball in the manner of a catapult.
First of all, to successfully implement PID control, you have to tune it properly. We found that we needed multiple PID settings based on set point to give the most desirable control response. You can find information on PID tuning by googling it. There’s plenty of info out there to help you get started.
Secondly, you always have to account for a certain amount of settling time. This means that you have to allow your motors time to get up to the desired speed and then reach a steady state at that speed for a consistent shot result. Nothing is instantaneous, no matter how good your PID tuning is. You can account for the appropriate required delay using various programming techniques.
Lastly, the delay required to account for settling time will vary based on several factors. Current battery charge and the desired set point being two critical ones. If you are clever, you can also account for these factors by tracking them and implementing corrections/adjustments in your code.
Make sure to focus on properly accounting for the factors that you can control (battery charge, desired speed, etc.) and minimizing the effect of the ones that you can’t control (variations in ball mass, ball surface consistency, drag, etc.).
We have had a little bit of trouble with our single wheeled shooter not being completely consistent. But it does ok. We have a feedback loop to control motor speed based on encoder data. We also designed it to give the ball a lot of backspin, with a relatively flat trajectory (we shoot straight at the backboard above the goal), so our distance from the goal is not critical. It works pretty well in testing with balls in highly varying condition, but we wont know how it does on the playing field with the “real” balls until a week from now in San Diego…
After the scrimmage this past weekend I noticed when we got our balls back they were no longer air tight. You could squeeze them and hear air escaping. Back in 2006 I noticed the same thing. There was a muzzle velocity measurement during inspection in 2006. The results on this test depended on the balls they used. Balls that were no longer air tight shot at slower muzzle velocities. In 2006 we shot a lot of balls so it was easy to adjust your aim for this. With fewer balls this year it’s going to be harder to do.
My team had a very accurate shooter. We can shoot in the same spot many many many times. The only bad thing that messes us up is when balls get squishy. What we are going to do is change the set speed as the games go on. So if our setting at the start of the games is .60 for close range we might change it to .65 with flatter balls.
We found that our accuracy increased greatly when we properly fed the balls into the shooter, directly on their center. (We have a dual wheel single axle shooter with a hood). PID control was the final step, and now we are very confindent in our repeatability.
Remember that the speed the ball enters the shooter has just as much effect as the speed of the shooter wheels themselves.
We found that how the balls were fed in significantly effected the concistancy of the shooter. In prototyping we found that wheeled shooters generally are much more sentitie than the design that we ended up using, a belted shooter.
Try to eliminate as many variables as possible before concluding the shooter is at fault.