If I put turn 90 degrees, and a 100% turning speed block, it will turn 85 degrees at 100% speed, then for the last 5 degrees, it will go at 1-10% speed. If anyone can help me, please give some help. Can anyone tell me if it’s just me, or if other people have had this problem before. Also if you know the solution, please tell me.
so this is actually kinda normal. its PID doing its thing. There is no robot in the world that can just automatically go to 90degree while running at 100%. so what PID portion of code does is that it makes it go fast for the first portion and then slows down more and more as it gets closer and closer to the main value to make sure it doesnt over shoot and if it does over shoot it should correct back. withough this your motions wont be as accurate or conistent making auton really hard to tune
This is where coding your own PID control (or some subset of those letters) can be better than using the standard blocks. Our teams can’t stand the “oscillate back and forth” they often get with “Turn to heading.” So our top teams use Gyro Turn and PStraight from Caution Tape’s videos. Gyro turn might not end up exactly right, but when combined with PStraight, it will usually aligns very well after you’ve driven forward a bit.
GyroTurn: https://www.youtube.com/watch?v=FKmr9p1it6s&t=371s&pp=ygUWY2F1dGlvbiB0YXBlIGd5cm8gdHVybg%3D%3D
PStraight: https://www.youtube.com/watch?v=YkUDSFs0m4U&t=25s&pp=ygUWY2F1dGlvbiB0YXBlIGd5cm8gdHVybg%3D%3D
One note is that we’ve also gone from a P turn to a PD turn (which better accommodates for if you’re turning say 45 degrees vs 135 degrees) without having to change the “momentum” part from Caution Tape.
These videos are the best overall explanation of what’s happening with PID I’ve seen:
CJR (sup CJR we are a MD team too) already explained it pretty well, but if you aren’t using PID, the same thing happens if you use the turn to block built into vexcode. However, I heavily advise against using it, as it is unreliable compared to a real self coded PID, and I would rather just use standard hardcoding methods over the vexcode turn to block.
Have you tried using omni-wheels, because if you are using high-friction wheels or low-friction wheels in their own, then that can cause problems. These wheels are good, but only when used together with omni-wheels. On a seperate note, in the original post, PID was never mentioned. PID can cause these sorts of problems, but only when intentionally coded into the script.