Pybricks for FLL Teams: One-year review #1329
Replies: 7 comments 9 replies
-
Well done team! Congratulations on your results for this season. We're honored that you used Pybricks, and glad that it worked well for you! 😄 |
Beta Was this translation helpful? Give feedback.
-
Thanks for sharing your experiences with PyBricks in FLL competition! My main reason to switch to PyBricks was frustration with the LEGO software, combined with managed school Chromebooks. Advantages of PyBricks I see:
|
Beta Was this translation helpful? Give feedback.
-
We also used pybricks. I do not know if you programmed a teleop mode but such is very helpful as you can then use the odometry and such to take measurements or you can try out new mission strategies and attachments on the fly. We scored 470/won the robot game in our state tournament but did not advance further. Sounds similar to you. I do think with the built-in gyro support there is a bit of an advantage. We did create a starter pack for new teams to use that is done in the block coding and includes the teleop mode (note we actually used the text-pybricks). If teams are used to lego scratch it can be a bit hard to just jump into Pybricks. https://github.com/MonongahelaCryptidCooperative/FLL-Block-Code block code |
Beta Was this translation helpful? Give feedback.
-
Hi! I'm looking at using pybricks this year with my FIRST team. The main reason is that I think Lego maybe didn't set up the gyro in the Spike Prime correctly-- it is glitchy and jumps around, making the gyro unusable. We did a lot of testing last year, when our Spike Prime robots were new. And the internal gyro doesn't work at all using Lego programming. (Two complete circles with a series of 90 degree turns should wind up in same position, it was very much off) But... It looks like Pybricks figured it out? Maybe?? Can anyone confirm the gyro will make accurate turns with the gyro using pybricks? Thanks so much. That is really the only reason we might use it. We used Python last year in LEGO's setup and everything worked well and copied well except the gyro problem. This would make a world of difference if it works! |
Beta Was this translation helpful? Give feedback.
-
We have Pybricks working! It took some time to try to figure out how to
"remove" the block code (we used Python last year in Lego's format) and
woowoowww that is neat. The gyro WORKS!! This is amazing!! Thank you for
getting us to try Pybricks!!
A question: the motor.stop is supposed to let the motors go... make them
spin freely? We would like to figure this out so we can just move the bot
around freely to figure out our missions. Is this possible? Or do we just
have to make a similar model, sans motors? (we would rather just switch the
motors to spin freely!) Thanks for any help there! Maybe it isn't possible?
-Carrie
…On Fri, Sep 6, 2024 at 7:28 AM laurensvalk ***@***.***> wrote:
had the gyro working so well that if the robot ran over a Lego, and got
off course, it would self correct
Right, that's even a builtin function with Pybricks. If you use straight()
with the gyro enabled, it's going to self-correct.
I am really impressed with your video
We should probably make more of these. I like this video
<https://www.youtube.com/shorts/OWmU6iIPLU0> from coach @ggramlich
<https://github.com/ggramlich> a lot (reposted on our channel with
English subs with permission. Original is here
***@***.***>.)
—
Reply to this email directly, view it on GitHub
<#1329 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BLB5FCM2OSWFLHYHX4BJYG3ZVGNWFAVCNFSM6AAAAABAQROIG6VHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTANJWHA3TSMA>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Yes, I think we might need to just make a "free spinning" model. It's only
in one direction, and for a short time it seems.
Thanks again!
…On Tue, Oct 1, 2024 at 8:48 AM laurensvalk ***@***.***> wrote:
I'm glad to hear it! 😄
A question: the motor.stop is supposed to let the motors go... make them
spin freely
Compared to the motors holding position, then yes, stop() makes them spin
"freely", but you'll still need to push them a bit to overcome friction
internal to the motor. If the wheels have enough grip, usually pressing
gently on the robot will drag the wheels along.
—
Reply to this email directly, view it on GitHub
<#1329 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BLB5FCMZPZWMR272ZLXOEXDZZKR2LAVCNFSM6AAAAABAQROIG6VHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTAOBQHE2DMMA>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Hello Laurens!
We have started PyBricks block code with our FLL team of 6. We loooove the
gyro functionality!! This is what we have been looking for ever since w
started using the Spike Prime! Thank you so very much for getting us
started with PyBricks.
We figured out how to start with color blocks in Python via a menu. But we
haven't been able to figure that out yet in block code. And guess what, our
team chose to use block code. Is it possible to begin a run with color? I
saw you have this:
https://pybricks.com/project/spike-hub-menu/#multiple-programs-on-other-hubs
And it seems you have to switch to Python at one point, and I'm wondering
if a color start menu is the same situation? Is it even possible to do
menuing with color in a block code program?
Then the other thing, my team is wanting to work on both sides of the table
at the same time. They have duplicated their bot. Is it possible for them
to run and make changes to the same single program at the same time? The
saving seems to happen on the computer (we have two computers) and they
struggle with the saving bit. (I'm not sure at all how to help there!) I am
used to saying python code to a Google drive. We can't do that with block
code though, correct?
We have forgotten computers several times at competition in the past two
years, so it makes sense to keep a current code online somewhere. Plus,
working with two computers, it makes sense to take the updated program at
the start, on either device. Is there instructions for saving?
Maybe we need to do two completely different programs for practice, then
combine them before competition. Not ideal, but I don't think we can create
independent runs like you can with Lego, correct?
The start up of PyBricks has been a challenge, but they are excited. Thank
you for any direction here!
Best wishes,
Carrie Czerwonka and the Lobster Mafia
***@***.***
…On Tue, Oct 1, 2024, 8:48 AM laurensvalk ***@***.***> wrote:
I'm glad to hear it! 😄
A question: the motor.stop is supposed to let the motors go... make them
spin freely
Compared to the motors holding position, then yes, stop() makes them spin
"freely", but you'll still need to push them a bit to overcome friction
internal to the motor. If the wheels have enough grip, usually pressing
gently on the robot will drag the wheels along.
—
Reply to this email directly, view it on GitHub
<#1329 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BLB5FCMZPZWMR272ZLXOEXDZZKR2LAVCNFSM6AAAAABAQROIG6VHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTAOBQHE2DMMA>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
How we used pybricks for our FLL team
We are FLL Team 24277 from Norfolk, Virginia, and this year was our first year usiing pybricks. It was our second year using python though, so we had some experience coming in. We use Spike Primes, so I can't really speak for EV3s with pybricks, but it seems that a lot of the functionality is the same. We are a middle school team, which means 12-14 years old.
We just completed our 2023 Season, Masterpiece. We had second place in robot performmance at our local regional event, and did advance to the state tournament, where we actually got first place in robot performance (400 points official, although we did have a 455 unofficial practice run).
Pybricks worked really well for us. We have ten practice robots, and I was worried about bluetooth performance in the classroom where we practice, but that really wasn't a problem. We do see sometimes when we go to upload a program to the hub that sometimes it requires turning the hub off and back on again, but pybricks boots so quickly this is never a problem. The kids do complain that the "timeout" for when the robot turns itself off (presumably to save the battery) seems to be too quick, and we do wish we could configure that.
I think there are still some features that we would like to try out, but never got around to it. For example, we just learned about Stop.NONE and how it can be used to "chain" some movement commands like straight() and curve() and you can really save some time without having to stop between every movement command. I am sure there are some other cool commands that we haven't tried out yet, but we probably should.
Over the summer last year we wrote a BaseRobot class that implements the DriveBase and assigns all of the motors and sensors to the correct ports, so the team won't have to mess with that. It also sets the color sensor parameters and some default speeds that we liked. We wrote wrapper methods for most of the things we will do a lot (like straight and curve) just to make it easier for the programmers. If you decide that you want to use pybricks for your team, I would definitely recommend doing it this way. You can also make a master program that launches your individual mission files as regular python imports, which makes it really easy to keep each mission in its own file.
I was also concerned that importing so many programs would take up too much memory, which would be really problematic and hard to troubleshoot. This turned out to not be a problem for us at all. All of our code totals about 650 lines of code, with probably 80% of that being comments, so call it 200 lines of executable code. Absolutely no problem for pybricks and the hardware to handle.
We also use VS Code and GitHub, which really makes it much easier for the kids to collaborate and share the code that they have written, such as the BaseRobot class. The kids have said that they like programming this way, and I think it is preparing them for advanced robotics programs like FTC and FRC, as well as just being used to using those tools for programming classes, etc.
I'm not sure that pybricks gave us a competitive advantage. I think I could create all of the functionality that pybricks offers within the block coding that comes from Lego. However, sharing that code is very challenging, and that alone sells me on using pybricks.
In all, pybricks seemed very reliable and accurate. Every time we thought we had some problem with pybricks, it turned out to be an error on our part. As for recommending it to other teams, that is hard to say. Since we are talking about 12-14 year-old kids, and coaches that may not have experience with python, I definitely wouldn't recommend it for everyone. If you are a coach that has motivated kids that want to learn python, and you have the means to support them, I would really recommend it.
Here is our GitHub repository for this season.
Beta Was this translation helpful? Give feedback.
All reactions