ROBOTC 4.03 Beta released

ROBOTC V4.03 beta was released on Nov 1, I had missed that due to a very busy weekend but had time to take a look for about an hour this morning. This version supports the cortex as well as Vex IQ, the release notes from robotc.net are as follows.

The main differences from V3.6 I see so far are as follows.

The PID control from last years beta release are now included, this is mostly for driving at a defined speed and also to a destination target. I have not tried any of this on real hardware yet, it was working reasonably well last year but, as usual with PID, careful tuning is needed.

Support for PIC dropped as expected (although there are many remnants of this still visible in the system include files). Support for the old 3-wire motors also appears to have been dropped.

It looks like there will some functions for simple drive train control with joystick. That is, if you want, for example, a four motor arcade drive using channels 2 and 3 on the joystick there will be a single function to do this. Again, I have not tried this yet but the functions are there.

The preferences dialog is back to a single window.

Some functions have had their names changed, StartTask is now startTask, this causes all sorts of warnings with old code including the competition template. They have also deprecated some functions which also cause lots of warnings, one or two of these may be a mistake, for example, bIfiRobotDisabled is deprecated but still used by Vex_Competition_Includes.c, probably just a mistake.

The PID control is going to break the smart motor library, I will look into this but there may not be much that can be done (except not using PID). The problem is that not the PID controller will have final say on the command value being sent to the motors and may not be able to be overridden by the current limiting code in the smart motor library. I had discussed a potential solution to this with the developers last year, not sure if that was implemented or if they are even interested in adding that at this stage.

I will evaluate this version over the next few days and see what else is working or broken. I wonder what the upgrade price from 3.6 to 4.X will be ?

According to their blog:

I for one, hope this changes, because I purchased ROBOTC in December 2012.

I need to spend more time with the new version, however, for cortex only users I’m not seeing a compelling reason to upgrade yet. Obviously if you are using Vex IQ then the opposite applies.

I see some differences with the Vex IQ implementation, less tasks allowed (5 at present) and fewer global variables (1000 vs 15000 on the cortex). I still didn’t get hold of any Vex IQ parts (I have no involvement with elementary school students), but my understanding is it’s based on a Tiva C serial SOC, if so then less RAM and flash unless Vex added some externally. It had the potential to be much more powerful than the cortex but lack of memory may cripple that, anyway, just speculation on my part for now. Perhaps Foster could open up his and post some pics of the internals.

I haven’t had the time to void the warranty.

Art Dutra IV posted in the VEXIQ forum

Which is super cool, the fact they have extra wires in for digital, analog, I2C and power and are using them is neat. The possibility for sensors is pretty much limitless.

V4.05 was released today, looks like this one is out of beta.

So has anyone played with the built in PID yet? I’ve not had any time to do this beyond looking at the new functions available, probably won’t be able to do much more until after thanksgiving.

There are some problems I see already the first being I can find no way to turn PID off in code, only in the motors and sensors setup dialog. When I tested last years beta (the old 3.61 PID beta), I found that PID was useful when in autonomous for the drive but not so good when used in driver control. There need to be a way to detect if PID is used for a particular motor port and turn it on and off.