PROS or VCS? I’m not a beginner at coding but what should the beginners in my club be using?
RobotMesh Studio C++
Definitely not PROS for people new to programming unless they’re willing to actually learn C/C++ first; PROS is not a reasonable means for learning programming basics.
I haven’t actually used either VCS or RMS for any meaningful length of time, but I have gotten the impression that, while both are well supported by their companies, RMS is a more polished product at this time. Plus, RobotMesh has already delivered more cross-platform support than what is merely promised for VCS.
As we know vex’s promises carry a lot of credibility
How similar is RobotMesh Studio C++ to RobotC? How difficult is it to learn for someone with no knowledge compared to robotC? I’m a fairly inexperienced coder and I’m struggling with the same questions. Thank you!
I don’t have any experience with RobotMest Studio C++, but C++ and C are quite different. The main difference is that C++ is object oriented (like Java) whereas C is a procedural language. The key concepts such as if statements and loops generally stays the same between a lot of languages except for some minor syntax changes. C++, in my opinion, is a little harder to learn than C simply because object oriented languages can be complicated to learn at first. If you’re willing to put in some serious time though and try some basic projects in C++ before moving straight into the robotics aspect, it will definitely pay off and can be done.
Well, unfortunately, only PROS publicizes a C API. And, as I said before, PROS is not the right tool for you unless you’re comfortable with moderately advanced programming and/or willing to put in the necessary work to properly learn C first.
My best answer for you is to simply take a look for yourself at the many example projects for RMS C++ for V5, listed primarily on the RMS homepage in the Featured tab (for example, Clawbot code).
Also, I fully agree with what @The Electrobotz said: learning the language first, independently from robotics, will almost certainly pay off.
P.S. Python isn’t really suited for embedded systems programming, so I wouldn’t advocate RMS Python unless you have a really good reason to use Python. Also, visual/block-based “programming” is definitely not going to be as relevant as a real language that’s actually used in industry, so don’t even consider that option coming from RobotC.
Slight aside from the main point of the thread, but still relevant:
If someone would be willing to send me some V5 electronics (presumably beta parts that are now of negligible value to many), I’d be willing to put together beginner-friendly tutorials with PROS and/or RMS C++. PM me to sort out the details.
So far, we have been very pleased with RMS using Python. Love the added capability of being a teacher and being able to login and see the students programs (and to provide them feedback … “comment, comment, comment”).
The only miss for RMS right now on the V5 is the offline capabilities since it is web-based. That is supposedly coming by the end of the month.
Robot Mesh Studio today. All of these are available in the same user interface, no need to run separate programs:
V5: Blockly, Python, C++ (RMS and VCS use the same API calls in C++ to the low-level firmware, with minor differences. You could copy-and-paste source code from RMS into VCS and vice versa and have it work.)
Cortex: Python, Blockly and Flowol
VEX IQ: Python, Blockly and Flowol
RMS also includes Controller Express, which is a very simple way to create your first program by mapping buttons on the Controller (Joystick in Cortex) to motors on the robot.
Runs on a cloud server and programming is done in a browser (preferably Chrome) on Windows, Mac OS, and Chromebooks. Browser-based development means teams can work on projects any time, anywhere, without having the team’s one programming computer available. No more “leaving the computer back at the school” at a tournament. No installing applications software on school computers.
If you are just getting started, take a look at Blockly and Python. It’s about learning programming, not about getting an embedded device programmer job. I encourage beginners to learn programming fundamentals first, then proceed to more-complex options.
Future, very soon:
An offline version that allows you to program at venues without Internet access. Projects can be moved back and forth from the cloud to the desktop.
Future:
Javascript for V5
iPad support
What else should we be working on? Java for V5?
I’d love to see Java for V5, though I’m not sure we’ll see a JVM on the V5 brain anytime soon.
If RMS relies on the utility in VCS to program color signatures into the Vision Sensor, you should make a cross-platform version of that utility for everyone not using Windows or Mac
It’s included in the RM Studio user interface for V5 projects. In the device panel, add a vision sensor, then click on the gear next to it to launch the setup function. Are you thinking Linux?
i thought this wasn’t feasible because of the difficulty in creating a custom JVM for vexOS?
It’s one of the things we are looking at. Would it be of interest?
Yes, Linux, Chrome OS, etc. I wasn’t sure how RMS handled this; I just knew PROS unfortunately relied on VCS.
The RMS version of the utility would theoretically work fine with PROS, right? You download the signatures into the Vision Sensor from RMS, and then PROS can test for them by their signature number?
The PROS team have standalone versions of the vision utility for Mac and Windows. At some point we will find time to figure out how to integrate it a bit better, it’s just been low priority for us.
Yes. I’d be very interested. Think Java is a friendlier language to introduce.
It certainly is for my FRC teams.
@OscarMNOVA12 I’ve found C++ to be comparable to or easier than Java as long as you stay out of the bit-level and pointer deep ends of C++'s C roots. I learned C at about the same time I learned Java. Java does force a little more structure on the programmer, though with beginners I’m always torn as to whether or not that’s a good thing or not. If you want super-beginner level, there’s also block languages like our Blockly implementation or VEX’s Modkit. (After all, most of learning programming is learning how to think about and solve problems rather than learning how to remember semi-colons.)