Replies: 4 comments 5 replies
|
I have the same issue with a wobble after a turn. But nothing new with pybricks 4.x As far as I can tell it is due to the play in the motor gearing. In your example, when you turn right, your left wheel turns forwards, but your rigth wheel turns backwards. This means that for drivign straight, just as you start driving, your left wheel is engaged to drive forwards but the right wheel is not. Hence, in the very first moment of driving straight, the robot will veer right, which is then very quickyl corrected, but the effect is noticable. May what happened is that with time your motors got older and the play of the gearing got more pronounced. BTW: I am also curios as how to prevent this. Maybe turn one of the motors (not drivebase) by 1° before driving off just to engage the gearing? |
|
Are you using the gyro sensor? |
|
Thanks @joshsloat for reporting. To help pinpoint the issue, could you kindly retry this with your current robot on different firmware versions? You can easily do that with the current day Pybricks editor using these instructions. You can try it with these firmware files:
If you can see a difference, I can give more intermediate versions to further close in on which change made the difference. |
Uh oh!
There was an error while loading. Please reload this page.
Our FLL team had great success using Pybricks with our robot last season, finishing second in the robot game in the state of Michigan. We went from measuring route inconsistencies in inches to millimeters with a driving base that evolved with our Pybricks adoption. We concluded in late December '25 with Pybricks 3.6.1 and picked back up recently with 4.1. With this same driving base build and the same code base, but using the latest Pybricks, our robot is not driving with nearly the same reliability or precision. And I'm noticing it particularly with turning.
We honestly haven't identified everything that's contributing to the consistency issues, but I'm attaching a video to demonstrate one of the turning issues we did pinpoint. On a simple run where the robot drives straight forward and then does a 20 degree right turn and then drives forward again, the robot seems to do a small turn right as part of the last drive straight. And I'm certain this turn is happening with the start of the second drive straight because we've separated each drive command block with wait blocks to help isolate.
Pybricks.Turn.mp4
In this short example, if I put
waits before and after the turn andbrakeinstead ofholdafter the turn, I get something that works more like the consistency we saw with 3.6.Bad Behavior

Hack That Makes It Better

But I don't love that as a solution since it's going to add wasted time and possibly contribute to the kind of accumulated errors that
holdused to prevent.Possible Driving Base Design Implications
For our rear wheels, we use spinning discs as opposed to castors. In our testing last season, we found that these made for better straight line consistency and any drag introduced in turns was easily compensated for. At least half of the robots we saw at Worlds used this design pattern, so I'm confident it's historically been a sound approach, but I can't help but wonder if this approach is fighting with some potentially new aspect of the the internal Pybricks PID implementation (our driving base is configured to use gyro) or something along those lines.
I'm really hoping someone can provide some insights into what changed between 3.6.1 and 4.1 that could be contributing to this behavior, and consequently, what we might consider doing differently to adjust. Thanks for any insights!
All reactions