I was just wondering what tips/advice you guys have for a one person team, seeing as I have just became a solo team and barely know any programming.
You can do an amazing amount with blocks. Itâs easy to learn and they teach block language in Code Clubs in schools and libraries.
The first thing I would personally do is to research videos on building tips and then also look up programming tutorials
I have 2 tips for a solo team I would give, first being use JAR template, or Lemlib, or other premade program templates with PID, Odom, etc. This will save a huge amount of time since you dont need to do the RnD for the code by yourself. Secondly, use Discord. There are so many helpfull places online where people are happy to help and share, which can really speed up brainstorming.
A person that has zero programming skills and this is the path they should go? Talk about the deep end of the pool.
Is block coding reliable? I asked around and barely anyone in my org uses blocks.
You have five key tasks:
- Designing - you are doing all the designing for the robot
- Build - all of the sourcing parts, cutting, assembling, etc
- Code - need to code an auto function and driver control
- Notebook - documentation is key this year, judged robot awards require a notebook.
- Strategy and Drive - top teams spend hours on the joysticks.
Task 3 is hard, you have minor experience and itâs something that you can cut down on. You should be able to code a robot for driving in about 1-2 hours with blocks with including some sophistication. You are looking for things the robot can do for you (move to specific heights, recycle shooters, etc.) for driver control.
Once you get a driver control built that works well, then you should have the key ideas on what the code can do to help you build an auto routine. Blocks will be fine for these tasks.
Teams often take two paths 1) they spend way too much writing complicated code that doesnât work well at the expense of build or spend too much time building and no time at the end to code. Iâll bet youâll be the latter. With build done, crunch time will be code. Blocks gives you the ability to write something solid, but not top tier, in a short amount of time.
Reading the first part of this note shows your key weakness, time management. You will need to decide how much time, create a schedule and manage to that schedule. On the bright side, notebook judges are looking for exactly that, so document what you did on planning and how you stuck to or adjusted the plan.
Are they using Python? Remember that you can push the block code into Python with a button push. So later in the season when mechanical things are buttoned up and you can drive the robot like Verstappen at Monza then you can turn your attention to improving the code. And remember, nothing in the rules stops you from talking to them, getting them to teach you new tricks, etc. They just canât code the robot for you.
Good luck
How I miss the edit function
I want to add to this the rules for this year want teams to show that for code that they use, they UNDERSTAND what the code does. So for the a team that doesnât know coding gets dropped into an awkward pit interview:
âDid you use any templates in your codeâ âWhy yes, I used JAR and PIDâ âCool, what is PID and how does it workâ âUmmm P is for Programmed, I is for internal and D is for decision, so itâs the Programmed Internal Decision that is used to decide things.â sad trombone (made up example, not harshing on @DreadNauts )
Remember, all of us have a single goal, help people succeed. This new rule about understanding the library code that they use is going to pull a lot of teams up short. Since Iâm not doing Event Partner stuff this year, but focusing on getting better judging, asking questions to cover the library usage will become pretty standard.
Blocks work really well, for driver sections, for autonomous you can do a basic command and it should suffice, but if you are doing more complex autonomous run and want to have more control of your robot, then go with Lemlib, etc.
18% of the voters of my post do block coding, and many established that block code is not a limiting factor, and can still be used to create similar results to text code in most functionality.
not programming related, but as a general rule of thumb, focus on intake. this year, its pretty simple, but even so, a bad intake will absolutely ruin your chances of success, even if the rest of the robot is good. Last yearâs First Tech Challenge game was a good example of this- teams had to have a good way of picking up and placing the scoring elements, and since this was a pretty involved process (placing small flat hexagons on an angled board), there were massive scoring gaps between teams based on their ability to do this.
I believe block code is a stepping stone to learn programming, but I do not believe it will even come close to the power of text functionality as a whole. Looking beyond the block code aspect, if you are using C++ you can use a lot of open source solutions to develop your own unique system, not only learning how to code but also gain invaluable experience learning how to adapt open source solutions to your own system. For example, there are really good path generation algorithms that you can apply odometry and pure pursuit algorithm towards, that can take your robot beyond just the realm of this mere community. You can use open source C++ motion algorithms to smoothly move your motor. As long as you learn how the alrogithms work that you use from open source providers, copying the license, giving the authorâs name and the link to the repository on github, you are all set.
There is a lot of power by learning C++ and header files. I would suggest hunkering down to learn learncpp.com and the first 6-8 chapters to learn the fundamentals, then use the remaining chapters as a resource whenever you donât recognize particular verbiage in C++ (via the websiteâs search bar). This would take roughly 1-2 weeks to learn the 6-8 chapters.