I notice that lots of high level teams can shoot accurately, and fast. At the haunted finals, every single team could shoot 3 discs in ~1 second. How would you do this properly? We’ve tried adding the vex flywheel weights, but it still doesn’t keep the momentum.
Another question I have is how you keep your flywheel at the same speed. I notice that my flywheel keeps oscillating, and when you’re standing at the same place it sometimes makes it, but sometimes not.
I think the main ways to make the flywheel faster and more consistent are to add more weight and if you are using a one-motor flywheel and second motor might help. Also having a faster rpm by using a higher gear ratio for speed might help.
You probably just need more moment of inertia. This thing was more than enough and we needed up taking some weight off of it. I guarantee this will be enough though.
If you are using percent speed control, switch to voltage. If your already using voltage, then your flywheel build quality is probably laking. Make sure you have bearing flats and ensure you flywheel isn’t cantilever.
Also something you can do with your code to help recovery times, run your flywheel at a lower speed normally, assuming a 3600rpm flywheel for this example, you could run it at 3300 which is normally enough. Then right before a disk touches the flywheel (most teams doing this rn use a sensor to detect this), change your target velocity to the max value just for a tiny bit so it recovers faster
You could also write a PID loop to help get rid of the oscillation. Lets say you are running a direct drive 3600 rpm 3" wheel and you input 75%. Because of the inertia, the wheel will over shoot the target pct. To fix this, you will first turn the kP, then the kD. The kD term will be the most help in this scenario.
That’s a lot of weight… brings up a possible safety issue. Those bolts will remove skin pretty rapidly if you get a finger in there. Likewise… if one of them comes loose (plastic fails, bolt shears off), you’re going to have a serious projectile. This will throw the whole thing off balance, which could lead to more issues… a cascading failure.
Used unlocks at the end and we have never had an issue with them coming off. Been using it for over 3 months.
Not sure as it’s on the bot. The biggest thing is, it’s weight is towards the outside of the bot, so the moment of inertia to mass ratio is height than something like the flywheel weights.
Has anyone tried a one-sided P loop? That is, zero voltage if flywheelRPM > flywheelTargetRPM, and voltage = (flywheelTargetRPM-flywheelRPM)*kP if the flywheelRPM < flywheelTargetRPM? I’d think in this application you’d never actually want to be applying a negative voltage. Seems like a great way to overheat your motor. Maybe in practice it spends so little time above the target RPM that it doesn’t matter.
There are probably better control algorithms for flywheels than PID. Bang-Bang and Take-Back-Half may be better, and simpler. Not every control problem is best solved by PID
To be honest, you generally know when the disc is going to hit the flywheel (e.g. trigger pulled - bonus points for a sensor to detect the disc just prior to hitting the flywheel). I think someone else posted, just max out the voltage to the flywheel in that 20-50ms range prior to the disc contacting your flywheel, and you may get much better results.