We are starting a vex metal team for middle schoolers (7th and 8th grade here) and one thing that is really making my bones itch is the $300 price tag on a 6 seat pack for ROBOTC. I did notice, however, mention of PROS, an eclipse based programming environment, one with no price tag attached.
Coming from FRC, where text-based programming was switched entirely to eclipse, this excited me quite a bit.
1,) Is it competition legal?
2,) Is it reliable? Does it break easily?
3,) Do other teams have experience teaching it to younger students? I want to be clear that I intend to teach a text based programming approach either way. I was simply wondering how teachable PROS was in comparison to ROBOTC.
it has no built in debugger or kernel to prevent you from corrupting the stack from buffer overflows or using sprintf wrong but unless you plan on using arrays/pointers this isnt an issue
i havent had much experience teaching programming because its hard to find people who are dedicated as much to programming as i am
the UI might have a larger learning curve at first vs robotc because the documentation is in a .h file instead of in a side panel, and eclipse is generally harder, but this is the closest thing to “real world” programming
they should definitely have an option though, because the reason i switched to PROS was because it used a better compiler, if the kids cant appreciate the difference then its best to stick with RobotC
code-wise they are pretty much the same for beginners, PROS would be a little better because of its descriptive error messages and because some kids get confused when using brackets for sensors and motors, and parentheses for other things
So I may be biased on this as I was one of the original developers for PROS but the reasoning behind the development was to give teams an alternative to RobotC and EasyC that was purely text based and let teams utilize it to the best of their abilities.
To answer your questions as well:
As PixelToast pointed out yes it is competition legal.
PROS is stable and reliable in its execution. However, it is C programming and comes with all the positives and negatives of that.
I think you maybe the first to teach to this young of a population but I hope you follow through. If you have any feedback I would be very interested in hearing it. Our primary user base to date that I am aware of have been very software centric high school teams and many of the US college teams.
We also have our documentation available online as well http://purdueros.sourceforge.net/doc/a00002.htm. I prefer using this as I have found it easier to read and allows me to find what I am looking for faster.
Thanks! The kids I have have been coming in for another technical program here for a while and I think that they will pick this up pretty easily as long as I stick around often enough to explain all of the annoying tidbits of c. I’ll be going through this to make sure I presonally understand it well enough to teach it, and to make sure I can adapt my Robot-C plan for PROS. Ill get back to you when we get our team going. Thanks again!
I’ve also been looking at robotmesh, also free. It runs Python which is a giant plus for me since it’s generally a much easier language to learn, while still being heavily used in… pretty much anything. The web based IDE has autocomplete functions, is responsive, and it seems that the API is simple enough. I’m going to be evaluating both today (read: writing basic drive and PID code to see how much I like it.) but would like to hear from others: Have your teams used this? Have you had any major issues with it?
The current version (I should say the one I evaluated in December) was IMHO unusable, very slow, has memory management problems. They are working on improving speed, but I have not heard if it has been improved enough for typical competition use.
The developer is aware of the performance issues and has plans to address them.
ROBOTC is the only programing solution with a viable debugger, this is possible due to its use of a virtual machine. I would still recommend ROBOTC for middle school students over any of the other options.
Just a quick note, we do offer a six-seat annual license option for teams that are looking to get started for $149; we understand that it’s sometimes hard to come up with the cash for a perpetual set of the licenses, and try to price the product as low as we can.
The 6 seat Perpetual licenses are priced to be around $50 per seat, while the 365-day licenses are half that (at $25 a seat).
After reviewing the offerings, I’ll give you my 2 cents:
I would stick with C, if you are hoping to teach kids embedded systems. It may be a struggle at first, but I think means more in real-time controls. Just my opinion, but I’m not hiring anyone other than C programmers for real-time stuff presently.
A couple things about RobotC really annoy me, but we are presently using it and are making do. First, if you buy an annual license, it expires without warning. We have had this happen twice, once the morning of the competition and really put us in a bad spot. I really feel this is unacceptable, and if it happens to your kids when you aren’t there to immediately purchase another one online, you’re screwed (and many competitions turn off WiFI due to interference so you may find yourself attempting to get hooked up via your phone to get it done). A nag screen for a week would be very helpful. Second, I hate the bad habits our kids are learning by “including” C files, I wish it had a simple project manager instead of this crutch. Third, we stopped using IEM’s and went to quad-encoders, whether it is the IEM’s fault or the I2C drivers in RobotC, it doesn’t seem very robust.
Almost went with PROs this past season, but they made the decision to not publish the code so it wasn’t worth the effort since the kids were used to RobotC. I was really hoping to evaluate the drivers and interrupt structure for robustness, as well as, teach the kids about ADC sampling, Nyquist, I2C, and other sensor sampling setups. This would be a HS thing for sure, but not beyond juniors and seniors. For some reason they seemed determined to keep this stuff private, which is their right, but I think they could probably learn a lot from the mentors on the forum. Maybe they have changed their mind on this? I stopped following it.
ConVex really looked nice, especially the open source, but I’m a bit short on time so it was something I had to put off, may look at it this summer though.
Not to divert from the original topic of the thread but tridragon could you elaborate more on this comment? Possibly PM me? We have sample code in our documentation. Or are you referring to the kernel and library source code that was not released?
Not to be argumentative, but why would you say to stay with ROBOTC instead of PROS? I spent a lot of time in ROBOTC this year (getting the hang of coaxial swerve programming and ironing out the math on a platform that could be built in a day) and after spending some time today in PROS I found it a lot easier to get the hang of. (Especially with the fantastic auto-complete I had been dying without in ROBOTC)
The simple kind of code that normally runs on VEX robots looks the same if not simpler, and code written for PROS more closely mirrors code written for FRC robots, which some of these kids will likely go on to work with. Are there any “ease of use” things that I am missing that ROBOTC has on PROS?
One thing I can see is the comparatively large amount of resources online for ROBOTC, (although Cody’s PROS video tutorials seem to be pretty adequate if not great resources for a team to learn enough to get going in C, and I can fill in the blanks for the API)
I’m really liking PROS right now, but don’t want to miss something and have to rush to find $150.
Ok, to put this in context. I’m a professional engineer who designs hardware and writes software for a living. I’ve programmed computers costing from $0.40 to $400,000 in all sorts of languages. I’m the author of ConVEX, an open source project that leverages the power of ChibiOS/RT (an embedded RTOS) with a runtime library for the cortex.
PROS, ConVEX and EasyC all use essentially the same compiler, gcc. If code written using this compiler crashes the only tool that’s really available for debugging are printf statements, you cannot add breakpoints, you cannot view variables, sensors, motors or anything else. For an experienced programmer this may not be a problem, I don’t find it a problem and most of the code I write for myself is done using the ConVEX API.
ROBOTC has a pretty good debugger that I find really helpful when working with students. ROBOTC helps protect students from many of the small mistakes they often make, tasks that do not yield and hog the cpu, some syntax errors, array bounds checks, things like that. It does not have quite the performance of native C code, it does not follow all of the ansi standards, it has some small problems. It does allow code to be tested in an emulation mode on the PC, it does have the “virtual worlds” simulations that students can use (yes, additional cost). It has real tech support. ROBOTC has been designed to be used in an educational setting.
Only you can decide what is best for your group of students, you know their capabilities. I know that the students I mentor would not be ready to use PROS or ConVEX without help. There is no right or wrong answer here, this is just a personal opinion. ROBOTC has a 30 day trial, try both and see what works better for your team.
It’s not about what we find easy to use, have the students try both.
I believe he said why he would recommend it? The debugger is by far the most valuable tool RobotC has to offer and the other platforms don’t have such an easy to use system for problem solving.
The resources available online for RobotC allow students to self teach far easier compared to the less popular Pros. The consumer base for RobotC being so large even means that at most competitions I volunteer at I will help teams with programming problems but if a team were to run Pros no one at the competition would be able to assist them. This applies even more so at worlds when RobotC has a booth dedicated to helping teams.
Whenever I code in “real” languages (C++, C, Java) I constantly wish I had the RobotC debugger.
I was speaking about the libraries, et. al. I was really excited about it at first, but didn’t see the benefit if we couldn’t review drivers and such to customize sensor and motor operations, and fix bugs.
tabor473 and jpearman (congrats on the award) make the best points. RobotC has legs and it makes the most sense as a mentor when helping other teams at a competition (which happens at every competition). As well, the kids from team to team can interact and mentor each other.
Javid, from what you told me you may have been better off with ROBOTC Did you figure out what the issue with V4.25 was? I ran a few tests but didn’t see any problem.