We find ourselves in an era of exponential change. Everything from cell phones, to alarm clocks, to entertainment centers need programmed. Technology designed to improve “quality of life” involves needs optimized to work correctly; everyone needs to have a basic understanding of systems and programming. Many Americans believe that the “dot-com bust” and that “international outsourcing” have led to fewer computer science related jobs. In fact, just the opposite is true, the March 2009 U.S. Department of Labor’s Bureau of Labor Statistics lists “Network Systems and Data Communications Analysts” as the second fastest growing occupation in the country. According to the Computer Research Association, there were 43% fewer graduates and 45% fewer CS degree enrollments in 2006/2007 than in 2003/2004. This is at a time that computers and internet connectivity have become daily fixtures in American lives. If we want to lead the world in innovation we need more students studying computer science not less.
Computer programming is not taught at the middle school level, yet hundreds of thousands of children gain their first experience in programming with robots. In 2006, Carnegie Mellon developed a programming software that worked on all FIRST robotic competition platforms. At the time, FIRST robotics had three unique competitions and three separate programming languages. This required students to move from one language to the next as they changed robot platforms, there was no continuity and it made if more difficult for teachers and mentors to develop programming skills in most of the students that competed in the competition. ROBOTC programmed LEGO’s RCX and NXT robots, both used in the middle school First LEGO League Competition, it also programmed the VEX robot used in the junior FIRST Tech Challenge, and the Innovation First robot controller used in the senior FRC robot competition. ROBOTC is a form of the industry standard C programming language that includes a few carefully chosen elements designed specifically for programming robots. It provides a scaffolded programming experience with beginner, intermediate, and expert user levels and is the only programming language that works on both LEGO and VEX robot systems, the two most popular robot hardware platforms available to education. The Robotics Academy had developed a comprehensive set of training materials for ROBOTC that are posted at the Robotics Academy and the ROBOTC websites.
Over the last four years, Carnegie Mellon’s Robotics Academy has continued to work on the development of a programming software named ROBOTC and an accompanying suite of training tools that are easy enough for elementary level students to use, but full featured and powerful enough for college students to use in their engineering courses. ROBOTC exposes students to an industry standard programming language using a modern programming environment that they can grow with as they move from elementary through college level robot programming. We are pleased to announce the release of ROBOTC2.0®.
ROBOTC2.0 has many significant improvements. First, it has a new graphical user interface that is modeled after Microsoft’s Visual Studio programming environment dramatically easing the transition to this popular programming environment. In contrast, most other educational robotics programming environments are unique to a single platform and have no transition to other environments used in the professional world. It is designed to dramatically lower the learning curve for introductory programming since it has multiple user levels that can progressively expose additional commands and functionality, includes spelling and syntax correction capabilities for user source code, and it is optimized for student programming where typically a complete program fits in one source file. The larger professional environments are optimized for large system programming where a single project may consist of tens of hundreds of files requiring additional complexity to manage the multiple files in a project.
Another unique feature of ROBOTC is its comprehensive inter-active real-time debugger. The debugger operates with either a wired or wireless connection to a
PC. Currently Bluetooth and Wi-Fi wireless links are supported. The debugger gives complete access from the PC into the operation and step by step execution of end users’ programs. It is designed to allow users to interactively step through execution of their programs on the fly and even modify the values of variables. The debugger provides access to not only the user’s program but to all the values to the motors and sensors on the robot. There is no other comparable system that provides this range of debugging for robots using the relatively small embedded CPUs supported by ROBOTC!
About ROBOTC -
- ROBOTC is an Integrated Development Environment (IDE) consisting of compiler, text and project editor and run-time environment.
- ROBOTC is cross-platform. It currently supports CPUs from many different manufacturers including:
- Microchip PIC CPUs for the Innovation First VEX robotic system
- Renesas H8 CPU for the LEGO RCX robotic system
- Atmel ARM7 CPU for LEGO NXT robotic system
- STM Cortex M3 for the Innovation First VEX-Cortex robotic system
- Additional platforms are in development including Atmel AVR CPUs (Arduino) and RISC ARM9 CPUs.
ROBOTC programs written for one run-time are easily portable to a different platform.
- The ROBOTC compiler is an interpretative system generating instructions for a virtual machine (VM) which are then “executed” by a small run-time system on each CPU. Interpretative systems are fairly common; e.g. JAVA is another example of an interpretative system; so are most implementations of BASIC.
- ROBOTC’s interpreter is extremely fast. Head-to-head benchmarks for the LEGO NXT found ROBOTC has execution speeds five to 50 times faster than other programming solutions like JAVA, LUA and LEGO’s own proprietary programming environment. On the VEX Cortex, ROBOTC is able to execute over 1M lines of C source code per second!
- The run-time environment provides a common infrastructure of motor and sensor support found in educational robotics. The ability to rapidly port / migrate this infrastructure to other CPUs and robot types is a unique capability not found in any other robotics system.
- The common run-time includes support for a wide variety of different sensors including: touch sensors, ultrasonic sonar distance sensors, rotation encoders, video cameras, gyroscopes, accelerometers, GPS, temperature, infra-red distance sensors, line following detection, color sensors, etc.
- ROBOTC includes extensive sound playback support ranging from generation of a single sound to playback of standard WAV and MIDI files. Sound file playback is not normally found in the relatively small CPUs of the class supported by ROBOTC.
Written by Robin Shoop
March 15th, 2010 at 4:44 pm