Archive for the ‘vex’ tag
Final Robot Virtual World Google Hangout Tonight!

We will be hosting our final April Robot Virtual Worlds Google hangout tonight at 6pm EST! We will be discussing the competition environments in RVW. This will be your last chance to enter the ROBOTC annual license drawing and get your 15% off discount code for Robot Virtual Worlds! Join us at http://www.robotc.net/hangouts
If you missed any of that past hangouts, check them out here …
Week 1 – What is RVW?
Week 2 – Curriculum Companion
Week 3 – Level Builder with Model Importer
Week 4 – Gaming Environments
Week 5 – Competition Environments
VEX Toss Up Virtual World Available!
This past weekend, VEX Robotics announced their 2013 – 2014 challenge, VEX Toss Up at their World Championship. It was an exciting event that our team was happy to be a part of. We’re also very happy to make our brand-new VEX Toss Up Robot Virtual World available to download.
This years competition field features a higher level of interactivity and simulation than ever before. Several new robots designed specifically for Toss Up have been added to the line-up, and are fully programmable through ROBOTC.
New Robots
Check out Ballerbot pulling itself up on the hanging bar and capping one of the goals with a big ball:
Intakebot can hold two of the smaller buckyballs at a time. It’s retractable arm make it great for scoring the buckyballs or pushing any of the game obects into a scoring area on the floor:
User Interface
The new and improved user interface allows you to switch between the robots, game modes, starting points, and tells you where the growing list of motors and sensors are connected:
Controlling the Robots
Sample code for programming the robots to move autonomously or via a USB Remote control is installed with the virtual world. You will find it by going to File > Open Sample Program > VEX Toss Up.
Don’t have a USB Remote Control? No Problem! We’ve also added keyboard control for the robots in the “ROBOT SKILLS” game mode! Ballerbot and Intakebot are pretty different, but they use the same set of keys for control:
- W key: Robot moves forward
- A key: Robot turns left
- S key: Robot moves in reverse
- D key: Robot turns right
- { and } keys: Actuator 1 movement
- < and > keys: Actuator 2 movement
- ; and ‘ keys: Actuator 3 movement
- + and - keys: Actuator 4 movement
Support
We want to make sure that you’re well supported as you use the new game. Great resources can always be found at RobotVirtualWorlds.com and there’s an active community ready to answer your questions at the ROBOTC.net forums. We’ve also produced a video that will help get VEX teams started, and help them think of ways they can program their real robots:
Future Enhancements!
We’re extremely excited about this release, but we’re not done yet. Check out some of the enhancements that are on their way!
Summer of Learning Competition on CS2N
We are hosting two competitions with VEX Toss Up: one during the summer, and one during the 2013-3014 school year. Use the special CS2N mode to launch a 2-minute, autonomous-only version of the challenge. You will be able to submit your high score to a leaderboard on CS2N. Winners will be awarded prizes like robot kits, software, or even college scholarships. Full details can be found on CS2N.
Multi-player!
The VEX Toss Up RVW will be our first world to support multiple players. You will be able to connect with up to 3 additional players from anywhere in the world to play head-to-head matches. We will be releasing beta versions this summer, with a finalized version set for September 1st, 2013.
Additional Robots
Ballerbot and Intakebot are incredible robots, but we want to make sure that there’s lots of variety for for the multi-player matches. We will be adding additional robot models, each with their own characteristics this summer.
The VEX Toss Up game cane be downloaded from CS2N.org (sign-in required) or RobotVirtualWorlds.com.
VEX Worlds 2013 Recap
We had so much fun at the 2013 VEX World Championships last week! We saw some great matches, met tons of fantastic people, and got a chance to share some big news with everyone throughout the week. We will be posting more detailed information on our news next week, so keep an eye out for that. Thank you to every one who stopped by to say hi and congrats to EVERY team. You all did an amazing job. Also thank you to VEX Robotics and the REC Foundation for inviting us to be a part of such an awesome event. We look forward to next year!
Check out our short recap video:
And if you haven’t had a chance, head on over to our Facebook page to check out our photo album – VEX Worlds 2013.
VEX Worlds 2013
Hello! We are sorry for being so quiet on the blogs this week. We are in Anaheim, CA at the 2013 VEX World Championship! Below are some pictures from the last few days. Follow us on our ROBOTC Facebook and Twitter page for up-to-date pictures and videos all day.
If you are at VEX Worlds, stop by our booth, say hi, and try out Robot Virtual Worlds!
Next week, we will be at the FIRST Championship in St. Louis, MO!
VEXduino by Prof Mason
Martin Mason, professor of Physics and Engineering at Mt. San Antonio College and ROBOTC user, has developed a new VEXduino Shield. He created a board that you can plug in VEX sensors but, combined with ROBOTC, uses an Arduino to control the robot instead of a Cortex or PIC. Combining the Shield with an Arduino, some VEX parts, and a small breadboard is a perfect recipe for teaching electronics with the ROBOTC for Arduino!
Daily Ingenuity: VEX Auto-Clicker
Just like many of you, we have to get creative with the tools we have around us for different tasks. Today was no different. Tim is reformatting a computer today, and long story short, needed to click the “retry” button every time a window pops up. To make sure we didn’t have him wasting his day pushing a button (you’d like ROBOTC 3.6 released one day, right?), we made a VEX ‘auto-clicker’ to get the job done.
Check out our picture and short video …

Live Broadcast of the National Mexico VEX Tournament
Check out the live broadcast of the National Mexico VEX Tournament going on now! All of the teams are using ROBOTC. The broadcast is brought to you by Reeduca, a company dedicated to implementing new technology and robotics education in Mexico.
ROBOTC 3.59 BETA is Here!
The ROBOTC team is happy to announce the ROBOTC 3.59.0 BETA release. We’ve made a number of enhancements and repaired a number of user issues. Some of the major updates are:
- Added support for proxy server when activating ROBOTC.
- Add watchdog timer support to VEX Cortex to alleviate processor crashes that can occur with static.
- Fixed a bug in the NXT color sensor that now allows you to read individual RGB values.
- Updated with the latest version of the 3rd party sensor drivers for NXT. (Thanks Xander!)
See below for the more detailed changelog. You can download ROBOTC 3.59.0 here!
Remember, we could not do this without your support and feedback. We hope you’ll continue to share your comments with us, either in the forums or on our Facebook or Twitter page.
3.54 to 3.59 BETA Changelog
VEX:
- Add watchdog timer support to VEX Cortex. This will allow the VEX Cortex User Processor to “restart” automatically once the processor crashes/is halted. Useful for any potential static issue that may cause the User Processor to “crash”.
- Change watchdog implementation from “windowed” watchdog to standard watchdog (no window, reset any time). Increase watchdog timeout to 0.75 seconds.
- In Debugger Motors display the last motor was not always properly updated. Fixed.
- Enable emulator for VEX PIC. Fix subsequent bug with “Motors” debugger display for VEX PIC locking up IDE when emulator is enabled; this bug should be limited to VEX PIC Emulator only.
- VEX PIC downloading was failing when master firmware was out of date. Getting stuck in a repetitive loop that wasn’t exiting. Fixed.
- VEX PIC was not executing user programs. Bug was that “start of flash file system VTOC” needed to be aligned on 4-byte boundary. Previous change had added a 1-byte field to the header preamble and there was not a corresponding 3-byte file added for VEX PIC. ARM platforms worked OK. This may also have broken Arduino (i.e. any 8-bit) platform).
- Added a Conditional Compile flag for tUARTs to avoid confusion between uartOne and UART1
- There are two separate flags for “allow any serial port for communications” — one for VEX Cortex and one for all other platforms. This was not obvious. Preferences “Environment” tab was only updating flag for non-Cortex; this has been changed to update the appropriate flag based on platform setting. The VEX Cortex flag can also be updated in the “VEX Cortex” tab.
- User configurable UART setup was screwed up for the platforms whose “uart 0″ is fixed as non-configurable and usable only for system communications port to PC — i.e. VEX Cortex, VEX PIC. The ROBOTC IDE was storing the data in the persistent data table (at start of flash file system) offset by one entry. I.E. data for “uart 1″ on VEX Cortex was stored in “uart 2″, etc.
LEGO:
- NXT color sensor read RGB individual values broken with pointer implementation. Change “getMemoryParmXXX” function calls to “getCommonParamaterValueXXX” function calls. Check rest of firmware for same mistake.
- New feature for 3rd Party Sensor Driver Suite to set the two digital I/O lines on NXT sensors. Added two new sensor types (sensorCustom, sensorCustom9V) for this along with two new property intrinsic variables to set I/O line direction and values; these intrinsic variables are bit masks (2-bits) for the two lines.
- “setPixel” intrinsic (and corresponding “clearPixel” and “invertPixel”) take “unsigned” parameters. But implementation was using “signed” parameters and not properly range checking if parameters were negative. If negative, then should do nothing. Instead they were incorrectly wring to invalid buffer address which eventually caused a firmware crash.
Arduino:
- Fix issue for “Motors” tab for Arduino in “Motors and Sensors Setup” property sheet. Was incorrectly trying to setup “encoder information for motor”, but Arduino platform does not “associate encoder sensor with motor” — which is currently only a feature for VEX Cortex.
General:
- Added Support for Proxy Server when activating ROBOTC – Users can set Proxy preferences under “Detailed Preferences – General – Environment”.
- Incorrect generation of compiler error message when double pointer (i.e. “**”) is used.
- “Print” a range of pages was not working when the starting page was not ’1′. Fixed.
- Remove incorrect error message from error “Assignment between two different pointer types” when one side of ‘=’ is a ‘void *’.
- Compiler was incorrectly generating error message for “Expected a pointer expression in a pointer expression with ‘++’ or ‘-+’ operand. Compiler was incorrectly checking to verify the right operand was an integer value.
- Compiler was incorrectly generating error message for “Invalid pointer expression” in a pointer expression with ‘+’ or ‘-’ operand. One operand of the expression must be a pointer and the other operand must be an integer (without implied conversion of a pointer to an integer). Compiler was incorrectly checking for the integer — the expression incorrectly had a “!” in it!
- Change code generation of ‘var arg’ for pointers to be consistent with standard C — i.e. the value of the pointer is placed in the argument. This may result in an additional instruction generated when argument is a ‘string’; previously RobotC got too cute trying to save this extra instruction which only worked for “%s” format codes but was broken for “%d” on a pointer.
- In ‘sprintf” implementation for “%s” and “%p” format codes– change from “get Address of parameter” to”get value of parameter” to match corresponding change in compiler code. Also minor cleanup of “%s” and “%p” format codes.
- Assignment expressions of “<char * variable> = <char constant> were generating compiler error because the “<char constant>” was evaluated as a “string” type. Added code in “get expression type” to check for this and not generate error as the compiler auto converts “string” to “char *” during code generation.
- Fixes an issue with the Live Start Page and “check for updates” that may have caused crashes.
- Improved validation of pointer expressions. Fix bug in calculating expression type of pointer expressions like “<ptr sub-expression> + <numeric constant>”; the result was (always?) incorrectly set as “long *”? Also added check that “=” of pointer is from a pointer of the same type – otherwise generate error message.
- Fixed consistency in implementation of “random” intrinsic property.
- Eliminate compiler error message in constant expression evaluation of sub-expressions using “*” operator. If either of the two operands is ‘zero’ then result is zero regardless of whether the other operand is a compile time constant.
- Do not generate additional errors — “too many parameters” specified — when procedure is “compiler generated undefined symbol”.
- When switch between “real robots” and “emulator”, the function that calculates “size of RAM pointer variable” was not being called. It adjusts between 2-byte (VEX PIC, Arduino) and 4-byte (Emulator, VEX Cortex, NXT) pointer sizes. No issue with VEX Cortex and NXT as they only use 4-byte pointers. But a problem with VEX PIC and Arduino where real robots use 2-byte RAM pointers! Added the appropriate call to function setup.
- Small code optimization for “postfix –”/postfix ++” operators to avoid temporary. In some cases they can be simplified to prefix operands.
- Incorrect initialization of static variables in “inner scope” for local procedure. They were initialized every time inner scope block was accessed rather than once on program startup.
- Debugger Panes for “Locals” and “Globals” (especially Globals) was not properly handling updates to ‘long’ and ‘float’ variables. Globals was completely broke — only lower two bytes of 4-byte variables was being updated which broke ‘long’ and ‘float’ variables. In both, ‘char’ variables were updating a short value — i.e. overwriting following characters.
- Fix problem with incorrect user code using a “short” variable and “sprintf” format code of “%f”. This can crash ROBOTC VM firmware if the short variable is not aligned on a 32-bit boundary.
- Add additional entries for StringFind for Character Constants and added test program.
- Redefine datalog opcodes and intrinsics. Legacy datalog incompatible with 3.5x VM operands which split memory variables and intrinsic properties into separate items.
- Firmware for all platforms now call “datalogHandlerInit()”. Conditional compile will define as NULL macro if a platform does not support Datalog. Datalog support is now conditionally compiled via “bHasDatalog” define rather than hard-coded as NXT only.
- Fix incorrect compiler type checking error when string constant is assigned to a char pointer.
- Fix bug in check for “is this a preprocessor string comparison expression”.
- Eliminate preprocessor string comparisons in Natural Language and replace with “defined(_Target_XXX_) where “_Target_XXX_” are three new system defined preprocessor variables — “_target_Robot_”, “_Target_Emulator_” and “Target_VirtWorld_”. Sample programs modified appropriately. Legacy user programs using legacy definitions will still work but will generate a compiler warning about non-standard extension.
- Add registry flag to enable compiler extension to allow preprocessor expressions support for string comparisons. Generate compiler error message if encountered without the flag being set.
- “cast” code generation fix. Previously when cast changed sign of result the ‘cast’ was applied before expression was converted to ‘int’ size used during a calculation. So casting a “ubyte” to “int” incorrectly converted it to a “signed char”. What should happen is “ubyte” expression gets evaluated into an “int” as part of expression evaluation (all expressions are evaluated at ‘int’ (or higher) level in “C”) and then the cast to “int” has no additional effect.
- Function to extract numeric “COMxxx”. Expanded syntax to support successful parsing of “(COM99)” previously would not accept extraneous characters.
- Add improved Dialog for selecting Communications Port. It uses a list box to display information about the port. Add check box to select any communications port.
- Compiler crash when parsing invalid syntax of ‘?’ expression. Compiler was not handling the case when “NULL” pointer returned from parsing sub-expression. The “NULL” was incorrect.
FTC Ring It Up and VEX Sack Attack v1.50 Now Available!
Following up from an earlier post, new versions of the FTC Ring It Up and VEX Sack Attack Virtual Worlds are now available!
In version 1.50 of Ring It Up, all arm, wrist, and gripper motors now include encoders, allowing you to get feedback and implement precise control over the robots. We’ve also swapped the Compass Sensor for the Gyroscope, which was highly requested by FTC teams. New Sample code for the encoders and gyroscope is installed with the world.
In version 1.50 of Sack Attack, we’ve added encoders to the arm motors on all of the robots, and a potentiometer to the scooper motor on Scooperbot, giving you very precise control. All robot models have also had the Compass sensor replaced with a Gyroscope, better aligning them with the real world VEX system. As with the Ring It Up world, Sample code for all of the new functionality is included.
We genuinely appreciate all of the feedback and comments we’ve received about these worlds, and we hope that these changes show that we’re listening. Keep the feedback coming!
Adding support for all of the new inputs required a significant update of our back end, so these versions require ROBOTC 3.54 or later to be installed. Happy programming!
RVW Update: VEX Sack Attack v1.2.1 Now Available!
Attention all VEX teams! We just released a substantial update to this year’s VEX Sack Attack virtual world. Download it here, or on the RVW Level Packs download page. Here’s what’s new:
New Robot: Clawbot
- Clawbot features a 4-wheel, 2-motor drive system, an arm motor, a gripper, and the full array of sensors. Best of all, it’s fully programmable in ROBOTC!
- Additional sample code for Clawbot is installed with the update, and can be downloaded here.
Pre-loads and Automatic Scoring
- Both Gripperbot and Scooperbot can be pre-loaded with a sack! You can control what side the robot starts on, whether it gets a pre-load, and enable the autonomous duration all from the main menu.
- Scoring is fully implemented in this new version.
- Earn normal points from sacks, bonus points from bonus sacks, and even more bonus points from the autonomous bonus and “parking” your robot before time runs out.
- A cool, new timer and scoreboard keeps track of the match in the top-left corner of the window. Compete with your classmates or teammates to see who can get the highest score before time runs out!
- Driver Control loads are also implemented once the autonomous period ends. Introduce them into the playing field by clicking on the green sack icons in the top-right corner.
Sensor View
- Ever wonder why your Ultrasonic sensor “sees” the values that it does? Enable the new Sensor View to see what’s triggering the Ultrasonic sensor and the heading of your compass.
Additional Enhancements
- We’ve improved the robot-sack interaction on all of the robots.
- The lighting and contrast of the game have been enhanced, making it easier to grab and score the sacks.
- Lots of small tweaks and adjustments.
To view the original post for the VEX Sack Attack virtual world (complete with video), visit this link.































