Banning replay is stifling innovation. As I said earlier, implementing effective replay code requires time and understanding of how it work to tune.
Disagree wholeheartedly. I saw many teams implement replay within seconds and have no understanding of how it works.
And how consistent was their autonomous?
It doesn’t matter. They did it and avoided programming. The point of the programming challenge is to … well, see how well teams program.
And their autonomous was better than many others that manually coded.
It matters entirely. An autonomous program that works once or twice is not a good program. If a team is downloads a rerun auton and it is inconsistent, they will most likely attempt to improve their autonomous, either by modifying the rerun library or manually coding the autonomous. If a rerun library exists that is just as effective and consistent as something like the one 5225A used in the Worlds final, and it can be implemented as easily as you say, then maybe it should be regulated. However, a rerun auto is not good enough to be competitive unless it is optimized for a specific robot. If a team wants to spend the time to create a consistent rerun autonomous, then by all means they should. Unless that code can be copied and pasted directly to another robot, there is no problem.
Could you provide an example? Either of an autonomous generated via that rerun program or an autonomous that it would beat? I don’t deny that there are many bad autons that are manually programmed, but there are plenty more that are good, and if a team wants to win, they will eventually have to learn to program with more advanced concepts.
Ultimately, this is the same argument as student-built vs mentor-built robots, with the exception that the ‘mentor-built’ robot is nearly always inferior to a ‘student-built’ one, which inherently discourages the undesirable ‘mentor-built’ option.
You are completely missing the point. In a 40 team tournament, if a team uses replay and has the 5th best autonomous. YOUR argument is that without a ton of time, it isn’t good. They will need to spend time and fine tune it to be #1.
My argument is that they did virtually nothing and beat 35 other teams that manually coded programs.
You say “if a team wants to win, they will eventually have to learn to program with more advanced concepts.” That is true, but I don’t think this is always about winning. I would like to see ALL the teams learn. IMHO, replay encourages way too many teams not to program at all which I think is against what RECF/VEX are trying to encourage.
As I mentioned above, I don’t think it is a good thing when a team can’t make a simple change because “we don’t know how to program.”
And how do you propose doing this? PROS just uses the standard arm-none-eabi toolchain.
My teams do. The one time they didn’t was at a tournament where, go figure, they were still building the robot the morning of and wanted to get some kind of auton fast. And, as I said, they were able to understand it with a brief discussion, and edited it manually.
When my teams ask how to make an autonomous, I walk them through time-based auton. When they discover how inconsistent that is, I help them find ways to add sensors. When they find out that sensors don’t alter momentum, we move on to more advanced motor control. Thing is, I have taken the time to learn enough programming to do this for my team. Not all teams have access to a mentor that can program.
Rerun programs can give developing teams a starting point. The programs that come out of them are weak, and offer no advantage over teams that learn more advanced techniques. You wrote above that it would be easy to rerun program a cone and 20 point mogo score. That is just not true. I would be shocked if it worked more than 25% of the time. If students (and their mentors) see that kind of failure rate, how can they not want to figure out how to solve that problem?
I understand what you’re saying, and I entirely agree that a team not knowing how to program is bad, but you cannot just ban an algorithm. As much as I may disagree with it, the choice to disregard programming a full autonomous is just that- a choice. Many members in my organization have no idea how to program (which gets a bit annoying when they tell me to “turn off your PIDs” when the Cortex is off, but that’s besides the point), but are exceptional builders. What if I wasn’t there? Our team would have a well-built robot that can barely move. Sure they could grab a rerun autonomous from the internet and implement it, but at the end of the day it will still be inferior to most other autons (I doubt that it could beat 35 other teams in one tournament, but I’ll give you the benefit of the doubt).
If a team has a clawbot, they aren’t going to a competition to win, they are going to learn so they can win next time. This means they are open to learning. If a team goes to a tournament with 202Z’s ITZ bot, they are competing to win, and if a rerun auton causes them to lose, they will improve their program for next time, either by improving the rerun library, or by coding an auton manually.
Sure, a rerun auton can do okay in a competition, but it will not win. If a team wants to win, they will have to learn to program. If a team does not want to win, they are at the tournament to learn, in which case they will either eventually reach the point where rerun becomes a bottleneck, or they will learn to code on their own volition.
You can’t force people to learn if they don’t want to. If you ban rerun, they’ll just ask someone else to code their autonomous, or (as @Ashwin Gupta noted), they can use other people’s function like “move x inches” or “turn x degrees”. Actually, Aswin’s whole post was really good and basically says exactly what I’m trying to say, but in better words.
We should be encouraging teams to learn to program rather than imposing limitations on what you can or can’t use. What about the team that eventually makes a rerun autonomous that is just as accurate as a hand-coded one? Should they be forced to discard their hard work to punish someone else? Should we ban clawbots because they followed instructions to build it?
So, what you are saying is that your team chose to do extra building and used replay to quickly get an auton without having to actually write code … then competed against teams that had to build AND write code?
Again, it shouldn’t be all about winning.
So, you are now comparing using replay to asking someone else to code their autonomous for them. I agree with your comparison and don’t agree with either.
Again, you and I agree. From what I have seen, however, most (not all, but most) teams using replay use it to avoid programming - which is exactly why I have a problem with it.
@action000
First of all, if rerun was as easy to implement and as successful as you say, literally every team would have it. Rerun is HARD to get working consistently, that’s why the overwhelming majority hardcodes autonomous. As a programmer, and knowing many other programmers in my program, I really doubt anyone would implement programs that they didn’t understand. By allowing rerun, and even sharing code, you open up a whole other concept to people’s consideration. By banning rerun, you are limiting teams to only learn and care about standard function based programs.
Also, as others have mentioned, whats the difference between rerun and PID libraries, autonomous function libraries, gyro integration programs, etc. You don’t strictly need to understand how PID works to implement someone else’s code, but I’m sure every programmer that uses a PID library knows how PID works.
Lastly, what if someone spends all season programming their own rerun code, taking the time to carefully code and tune everything, and they learn at worlds that they can’t use that code… because why exactly? In what way is that fair?
The first team of mine to get it running did spend some time with it. The 2nd through 20th team spent VERY little time getting it running. As it is handed down year-to-year, there would also be very little time spent on it.
Answer a question of mine - what is wrong with encouraging all kids to manually program?
Let’s look at it a different way … because replay is available, there are many teams that are using it to avoid programming. I didn’t say all teams, but many. As it becomes more widely known, many more will as well.
Is it a good thing that teams are avoiding programming or not?
imo teams can do whatever they want. the point of vex is to do your own thing within the constraints of the rules.
I’m not sure that is “the point of vex”.
I just don’t see that here: https://www.vexrobotics.com/about-us/
I am not trying to make that point.
Getting frustrated about the rerun code creating a missed opportunity for students to learn more about programming is fair, but that is an issue for those students and their mentors to police. A new team is going to make the incorrect assessment that X points of auton bonus is not worth the steep learning curve of mastering PID motor control. They need to be instructed out of that incorrect assessment.
Getting frustrated about the fairness of team A manually coding and team B resorting to rerun is disconnected from the fact that basic, time-based rerun auton code is worse than anything manually coded. It records all the driving errors at one voltage and repeats them at another… its awful.
I feel like this thread has gotten unnecessarily heated. I very much respect your point of view. I am glad you are a strong advocate for the students you instruct in STEM through vex.
Whether it is awful or not, the fact is that it is done and done by a much larger segment than it should be done by. Putting this on mentors is very unrealistic.
I ask again - what is wrong encouraging teams to manually program?
Nothing wrong with encouraging manual programming; very unreasonable to say that rerun should not be allowed. The point of the game is to develop the best possible way to score the most points- not learn the most life lessons. Using your logic, it could be argued that teams shouldn’t be allowed to run ram autos in ITZ to block their opponents. It requires very little effort to do but can be extremely strategically advantageous. They’re not learning much by making ram autos, but that’s not the point. They’re accomplishing a task in the most efficient way possible and that’s what matters. If a team feels that rerun allows them to make their autonomous more efficiently, they have every reason to do so.