ROBOTC.net Blog  

ROBOTC News

Archive for the ‘FTC’ Category

Cool Project: ColumnBot

without comments

We recently asked a group of engineering students from the University of Aalborg in Denmark to write about their experience using ROBOTC on a recent project. Check it out below!

——————————————————————————————————————————————————————————

A model of the robot we built.

A model of the robot we built.

Hi all! We are 6 software engineering students from the University of Aalborg in Denmark. As part of our Bachelor’s degree, we had to design and implement an embedded system, and we chose to design and implement a robot that would solve the Simultaneous Localization And Mapping (SLAM) problem. We called the robot ColumBot.

The hardware we were issued were LEGO NXT bricks and sensors as well as a few from MindSensors. MindSensors provided libraries for use with ROBOTC, which was one of the reasons why we ended up choosing ROBOTC as our IDE.

This shows the generated map for TestCourse.

This shows a map of the test course we ran.

Work in Aalborg is group-based and many of the other groups spent the first weeks trying to get their NXT bricks set up for the firmwares they were using, but ROBOTC allowed us to have the part of the project kept to a minimum. ROBOTC provided us with a strong and versatile tool in solving our project, and was of great help.

Using ROBOTC, we were able to implement a mapping robot with a drive queue, with enough memory for 100m2, as well as a particle filter to correct the inaccuracies that arose from sensing when mapping. All this functionality was scheduled using a real time scheduling scheme. We do not believe this would have been possible with some of the IDEs used by the other groups.

This shows a map of the test course we ran.

TestCourse map.

ROBOTC has its quirks, namely much of the documentation is faulty. [Editor’s Note: ROBOTC recently went through a complete documentation overhaul to address issues like these – take a look at our help docs here.] As the focus of our project was to fit as much functionality as possible into the limited space, this problem mainly arose with the sizes of different types, where the documentation deviated from the reality. But the community is fantastic and many answers to difficult questions were found in the forums during the project period. The most useful features in our project were the Bluetooth Communication and the Debug Stream, which allowed us to monitor the robot remotely and communicate with it.

We would recommend ROBOTC to anyone attempting a build of the same size as ours, but advice you to be wary and test things for yourself, because this was sometimes a problem for us.

Check out one of our test runs here:

Written by Cara Friez

February 23rd, 2015 at 11:01 am

ROBOTC for LEGO MINDSTORMS Updates 4.30 and 3.65 Available Today!

with 2 comments

ROBOTC 4-30
The ROBOTC Development Team is excited to announce not one, not two, but three updates this week! Yes, earlier in the week we announced our 4.29 update, but we’ve taken care of a few more bugs along with a 3.65 update. These updates are for the LEGO MINDSTORMS (NXT and EV3) robotics systems and includes new features, functionality and a load of bug fixes. You can download them here! Read more below …

4.29 -> 4.30 Change Log

  • (EV3) LEGO NXT Sensors that are normally auto-ID’d no longer have their autoID flag disabled for that port.
  • (EV3) Fixed an issue with the EV3 remote screen may have caused a ROBOTC crash.
  • (ALL) Rebuilt firmware to version 10.30. All platforms will require a firmware update.
  • (ALL) Prevent Graphical files from asking to save if the “Save On Compile” flag is set to false.
  • (ALL) Update all standard models to have correct drive train setting.
  • (ALL) Fixed an issue where a “sprintf’ varArg list contains a string constant the compiler was generating incorrect code causing a firmware crash.
  • (ALL) Compiler Fix: ‘long’ pointer temporary variables were sometimes being allocated as type ‘signed’ instead of ‘unsigned’.
  • (ALL) Checking for “divide by zero” exception forgot to check in the “module” opcodes; it was only checking the “divide” opcodes. Fixed.
  • (ALL) Fixed issues where the first time the Debugger “Local Variables” window is painted with values (rather than blank) the address field displays “0xCDCDCDCD” rather than the offset.
  • (ALL) Graphical Interface now support “multiple selection” using Shift/Control keyboard modifiers (drag select coming soon!)
  • (ALL) Fix for DebugStream which was adding \r to the String as it was written to file.

3.64 -> 3.65 Change Log

  • (All) Fixed issue with licensing system when an unexpected error code (i.e. server is available but service is down) would cause ROBOTC to crash.
  • (All) Fixed issue with ‘Check for Update’ functionality where a hotel/school wifi login screen might cause a ROBOTC crash with unexpected XML parameters.
  • (All) Fixed issue with licensing system where a license could not be used on the same computer twice.

To read more about the updates from 4.29, visit our post from earlier this week. Happy Programming!

Written by Cara Friez

February 18th, 2015 at 9:30 am

Tons of Robot Virtual Worlds Updates Available Today!

with 2 comments

RVWThe Robot Virtual World team is happy to announce our latest updates are available for Ruins of Atlantis, Palm Island, and Operation Reset! We’ve included updated sample program to support all platform types (VEX CORTEX, VEX IQ, EV3, and NXT) within ROBOTC. You can also choose what type of sample program you would like to use from Graphical, Natural Language, or Standard.

Thanks again to everyone who has provided feedback! Please continue to do so at the ROBOTC.net Forums. Happy programming!

 

 

 

Written by Cara Friez

February 17th, 2015 at 8:10 am

ROBOTC for LEGO MINDSTORMS 4.29 Available Today!

without comments

ROBOTC 4-29

The ROBOTC Development Team is excited to announce our latest update, ROBOTC 4.29! This update is for the LEGO MINDSTORMS (NXT and EV3) robotics systems and includes new features, functionality and a load of bug fixes.

This new build of ROBOTC for LEGO Mindstorms includes a number of new features for the EV3 platform, including USB Joystick Support, File I/O (reading and writing files on the EV3), and also Datalogging while using the EV3 platform. Take a look at the sample programs folder for examples on how to use all of the new features with ROBOTC and the EV3 platform!

Click here to download 4.29!

Important Setup Information for ROBOTC 4.29:

LEGO NXT Users:

  • Simply update to the latest ROBOTC firmware from inside of ROBOTC.

LEGO EV3 Users:

  • All users will need to update the  LEGO EV3′s Kernel by connecting the EV3 and selecting “Robot Menu -> Download EV3 Linux Kernel” from inside of ROBOTC. The version number is the same to keep alignment with the EV3 Programming Software and LEGO’s releases, but the Kernel has bug fixes to increase sensor reliability.
  • After updating your EV3′s Linux Kernel, you’ll also need to update the ROBOTC firmware from inside of ROBOTC.

ROBOTC 4.28 BETA –> 4.29 Change Log:

  • (EV3) Add additional message traces when enumerating Casper devices — generate a message about each device that is found during enumeration.
  • (EV3) Hide “Poll LEGO Brick” from EV3 – not currently supported.
  • (EV3) EV3 motors now use correct motor speed/power functions, depending on the PID flag in the setup pragma/dialog.
  • (EV3) Added intrinsic (getMotorRPM()) to calculate the RPM of a motor, updated 10x per second
  • (EV3) Added intrinsic to sync two motors for an infinite amount of time (setMotorSync)
  • (EV3) modeNXTTemperature_F was incorrectly setting mode to sensorSONAR
  • (EV3) Example of how to use the getMotorRPM() function. Displays a cool RPM meter on the screen.
  • (EV3) convertPCFileNameToFileName_LINUX() uses getMaxFileNameSize() to retrieve max filename size.
  • (EV3) File names exceeding 31 chars are now truncated to prevent errors.
  • (EV3) Fixed the Friendly_IRBeacon.c program, some code was commented out, which shouldn’t have been
  • (EV3) Added a stall detection example which uses the getMotorRPM() function
  • (EV3) Convert legacy NXT I2C types into EV3 equivalents.
  • (EV3) Added “moveMotorTarget” to Graphical
  • (EV3/NXT) Driver Suite updated to the latest version in Git. Note that there’s an identical copy in both the NXT and EV3 folders
  • (NXT) Fixed issue in “Motors and Sensors Setup” the code that compared configuration against the various standard models was not working when “External Controllers” are used.
  • (ALL) “Test Communications Link” dialog was not properly storing/retrieving the registry value for the “Ping Type” variable.
  • (ALL) Debug stream fixed so that “Clear Debug Stream” clears the IDE’s Window at the proper location; previously it was possibly erasing the screen at a spot well after the actual “clear” function was called.
  • (ALL) Enhance Debug Stream handling to better support (1) Buffer overflow conditions and (2) proper visual appearance on IDE when “Clear Debug Stream” intrinsic is used.
  • (ALL) Adjustments so maximum size of messages transferred between IDE and emulator increased to 10K from 1K.
  • (ALL) Fix bug when maximum message size now exceeds maximum flash sector size.
  • (ALL) Joystick buttons had different enums for real and virtual robots. This affected the joy1Btn() command.
  • (ALL) Upissue Firmware Version to 10.29 / Upissue IDE Version to 4.29
  • (ALL) Contents of DebugStream window can now be saved through the menu
  • (ALL) Automatically select RVW package if one is not selected.
  • (ALL) Increase number of RVW Packages available to 40 potential options – allows for future level packs.
  • (ALL) DebugStream can now also be saved as a *.csv file
  • (ALL) DebugStream Window contents can now be saved to a file.
  • (ALL) User models (from Motors and Sensors setup) can now use relative filenames for user models.
  • (ALL) Fix crashing issue when CheckForUpdates get a malformed XML file (typically hotel login pages)
  • (ALL) Fix crash issue when Version XML file download is corrupted by school/hotel/conference “login” screens.
  • (ALL) Fix crash issue when licensing libraries return an unexpected return value – error message string formatting command was invalid causing a crash.
  • (ALL) Added pipe symbol to the LCD Printing Libraries fonts.
  • (ALL) Fixed backslash character in small font.
  • (ALL) Better parsing of “If” and dangling “else” clauses. Prevents a compiler crash when bad syntax in the “if” condition clause.
  • (ALL) Support in GUI for use of user-defined “motors and sensor configuration data files”.
  • (ALL) New “registry flag” to indicate whether user defined “configuration model” files are allowed.
  • (ALL) Previously breakpoints could not be defined in header files. This is now fixed.
  • (ALL) Benign. Enhance output in message trace window for “set breakpoint” message.
  • (ALL) Command line based activation / deactivation commands. Implemented but not fully tested yet – documentation to follow.

ROBOTC 4.27 -> 4.28 BETA Change Log:

  • (ALL) Updated Help System Documentation for new commands and features.
  • (ALL) Updated Firmware for 10.28 / 4.28 compatibility.
  • (ALL) Added a compiler error when ‘switch’ expression was illegal.
  • (ALL) Support for optional “int” keyword as in the declaration “short int” or “int short” in addition to “short”.
  • (ALL) Add USB Joystick control to Graphical (in loop blocks)
  • (EV3) Fixed user reported bug in Synchronized Motor Movements commands.
  • (EV3) Disabled setting sensor ports to typeNone/modeNone when initially configuring port. This prevented sensor ports from being reconfigured manually afterwards inside a program.
  • (EV3) Added Joystick support for EV3.
  • (EV3) Fixed BMP files not displaying properly on the EV3 screen.
  • (EV3) Added Datalogging for the EV3. It is file based and saves the data in a CSV format under prjs/rc-data/
  • (EV3) Added EV3 file operations for reading/writing to files. Commands are available for reading/writing all types and raw data. Files are saved in the standard ROBOTC projects folder and cannot be saved elsewhere for security/safety reasons.
  • (EV3) Fix EV3 issue of USB connected brick disconnected when COMM link is open and IDE cannot recover when USB link is reconnected.
  • (EV3) Changed ramp up/down parameters to 0 for EV3 motors, as per the LEGO programming environment. This is a feature ROBOTC was using but isn’t supported well by the EV3.
  • (EV3) Fixed issue where motor speed was not normalized to -100 to 100 when values exceeding the maximum were provided.
  • (EV3) Adjusted I2C read and write commands to use standard LEGO ioctl. The calls are non-blocking.
  • (EV3) setSensorTypeModeFromWithinOpcode is now used instead of calling for a separate type and mode change. This fixes the issue of bad sensor modes.
  • (EV3) EV3 Touch sensor can now have both bumps and touch value read, regardless of mode
  • (EV3) sensorReset() now calls appropriate reset function, depending on the connection type. If used on Gyro or Touch, the heading or bump count is reset, respectively.
  • (EV3/NXT) Fixed issue with ROBOTC ‘auto-updater’ when launching ROBOTC for LEGO based platforms.

Happy Programming!

Written by Cara Friez

February 11th, 2015 at 4:42 pm

RVW Virtual Brick Giveaway Contest

with one comment

VirtualBrick

Want to earn a free Robot Virtual Worlds – Virtual Brick license? BotBench has an awesome license giveaway going on now. Be one of the first 20 people to write a review about it on your website, blog or Tumblr, and you’ll receive a free license! Read more about it here!

Not sure what the Virtual Brick is? Check out our video …
 

Botbench also did a wonderful “First Look” blog on the Virtual Brick. Check it out here – Virtual Brick: A First Look – Making a Line Follower

Want to try out the Virtual Brick? You can download it here and when you do, you get a 10 day trial period.

Happy Programming!

Written by Cara Friez

February 3rd, 2015 at 9:18 am

BotBench: Using Robot Virtual Worlds inside a VM

without comments

Xander over at BotBench goes into detail in a new blog post about using Robot Virtual Worlds (RVW) inside a Virtual Machine.

He talks about how some of the issues you might encounter using a VM and some of the solutions he has found. Such as the 3 camera settings in RVW:

1. Follow mode: you can use the wheel to zoom in and out.
2. Camera view from above
3. Free movement: hold left button and move to move the view. The wheel is used for zooming.

Unfortunately, if you run RVW inside a VM, camera option 3 does not work. Unless, of course, you know how to configure VMware Workstation properly. To find out how to configure properly and to read the full article, click here!

Written by Cara Friez

January 15th, 2015 at 11:11 am

ROBOTC for LEGO MINDSTORMS 4.28 BETA

with 3 comments

ROBOTC 4-28The ROBOTC Development Team is very excited to announce our latest BETA release update, ROBOTC 4.28 BETA! This update is for the LEGO MINDSTORMS (NXT and EV3) robotics systems and includes new features, functionality and a load of bug fixes!

This new build of ROBOTC for LEGO Mindstorms includes a number of new features for the EV3 platform, including USB Joystick Support, File I/O (reading and writing files on the EV3), and also Datalogging while using the EV3 platform. Take a look at the sample programs folder for examples on how to use all of the new features with ROBOTC and the EV3 platform!

To download the 4.28 BETA, use the following links:

Important Setup Information for ROBOTC 4.28 BETA:

LEGO NXT Users:

  • Simply update to the latest ROBOTC firmware from inside of ROBOTC.

LEGO EV3 Users:

  • All users will need to update the  LEGO EV3′s Kernel by connecting the EV3 and selecting “Robot Menu -> Download EV3 Linux Kernel” from inside of ROBOTC. The version number is the same to keep alignment with the EV3 Programming Software and LEGO’s releases, but the Kernel has bug fixes to increase sensor reliability.
  • After updating your EV3′s Linux Kernel, you’ll also need to update the ROBOTC firmware from inside of ROBOTC.

ROBOTC 4.27 -> 4.28 BETA Change Log:

  • All – Updated Help System Documentation for new commands and features.
  • All – Updated Firmware for 10.28 / 4.28 compatibility.
  • All – Added a compiler error when ‘switch’ expression was illegal.
  • All – Support for optional “int” keyword as in the declaration “short int” or “int short” in addition to “short”.
  • All – Add USB Joystick control to Graphical (in loop blocks)
  • EV3 – Fixed user reported bug in Synchronized Motor Movements commands.
  • EV3 – Disabled setting sensor ports to typeNone/modeNone when initially configuring port. This prevented sensor ports from being reconfigured manually afterwards inside a program.
  • EV3 – Added Joystick support for EV3.
  • EV3 – Fixed BMP files not displaying properly on the EV3 screen.
  • EV3 – Added Datalogging for the EV3. It is file based and saves the data in a CSV format under prjs/rc-data/
  • EV3 – Added EV3 file operations for reading/writing to files. Commands are available for reading/writing all types and raw data. Files are saved in the standard ROBOTC projects folder and cannot be saved elsewhere for security/safety reasons.
  • EV3 – Fix EV3 issue of USB connected brick disconnected when COMM link is open and IDE cannot recover when USB link is reconnected.
  • EV3 – Changed ramp up/down parameters to 0 for EV3 motors, as per the LEGO programming environment. This is a feature ROBOTC was using but isn’t supported well by the EV3.
  • EV3 – Fixed issue where motor speed was not normalized to -100 to 100 when values exceeding the maximum were provided.
  • EV3/NXT – Fixed issue with ROBOTC ‘auto-updater’ when launching ROBOTC for LEGO based platforms.
  • EV3 – Adjusted I2C read and write commands to use standard LEGO ioctl. The calls are non-blocking.
  • EV3 – setSensorTypeModeFromWithinOpcode is now used instead of calling for a separate type and mode change. This fixes the issue of bad sensor modes.
  • EV3 – EV3 Touch sensor can now have both bumps and touch value read, regardless of mode
  • EV3 – sensorReset() now calls appropriate reset function, depending on the connection type. If used on Gyro or Touch, the heading or bump count is reset, respectively.

Happy Programming!

Written by Tim Friez

December 23rd, 2014 at 4:34 pm

EV3 ROBOTC Online Training Starts in February!

with 3 comments

EV3 Course Robomatter Banner 2

Carnegie Mellon Robotics Academy is excited to announce their latest online training schedule, which starts in February. Register for their ROBOTC EV3 class today! Enjoy the convenience of taking Robotics Academy courses without leaving your own computer workstation.

Benefits of our Online Training:
– Assisted training using provided hardware and software
– Screen sharing amongst the class
– Networking opportunities with other professional educators
– Robotics Academy Certification for “Graduates”

ROBOTC EV3 Online Professional Development
Feb 19th – Mar 26th, 2015
Thursdays for 6 Weeks
6-8:00pm EST (3-5:00pm PST)
* Graduates Earn a Robotics Academy Certification!

REGISTER TODAY!!

 

Written by Cara Friez

December 11th, 2014 at 11:58 am

Best #ROBOTC Twitter Posts

without comments

We LOVE getting Twitter posts sent to us about ROBOTC. In the last few months, you have shared some great posts and pictures with us. We decided to make a compilation of some of our favorites to share here…

 

 

 

 

 

Do you have a ROBOTC picture/video/post you would like to share with us on Twitter? If so, include #ROBOTC or @ROBOTC in your message.

Written by Cara Friez

December 4th, 2014 at 10:54 am

Teacher POV: ROBOTC – Starting in the Lower School Grades

with one comment

AC_logo_web200V1We came across a wonderful blog post, written by a faculty member at Allendale Columbia School in Rochester, NY, that talks about their transition to ROBOTC in their elementary classes.

While our 5th grade S.T.E.M. students at Allendale Columbia School were initially perplexed by some very new terminology, concepts, and programming requirements, it didn’t take long to see that our elementary grade students were up to the challenge of learning an industry-standard, text-based programming language typically taught at the high school and college levels: ROBOTC.

Just a couple of weeks before the start of school, we became inspired to teach ROBOTC programming after several local teachers and robotics coaches shared their concerns with us about the need for students to learn high level and industry-standard programming well before their high school years. Pondering this notion, it occurred to us that we could provide our young students the “familiar and scaffolded context” of reconstructing NXT robotic, challenging them to ultimately solve for the same exact missions our students originally and proficiently programmed in NXT in their fourth grade year, re-programming in ROBOTC, in the beginning of their fifth grade year.

As it turns out, our young students exceeded all expectations, easily grasping the new programing concepts, skills, and requirements for successfully completing the PBL (project-based learning) tasks and challenges they were able to solve for…

To read more from this blog, visit their blog here – Programming in RobotC – Starting in the Lower School Grades

Written by Cara Friez

November 25th, 2014 at 10:28 am