Archive for the ‘natural language’ tag
We know that text based languages (such as ROBOTC) have advantages in terms of customizability with functions, complexity with algorithms and calculations, and typically smaller sized programs over graphical languages; however, it is difficult to overcome the simplicity and ease of use that “Drop and Drag” programming languages offer to new users just getting started with programming.
A few years ago (with ROBOTC 3.X), we announced our “Natural Language” feature – a simplified library of commands that used “natural” commands to control your robot, such as Forward, Reverse, and LineTrackForTime. The Natural Language feature was designed to help ‘bridge the gap’ between a graphical language and the text-based ROBOTC. Teachers have praised ROBOTC’s Natural Language for making it easier to get their students up and running faster than ever before. Currently, ROBOTC supports Natural Language on the VEX Cortex, VEX IQ, and LEGO MINDSTORMS NXT platforms for both “Real” and “Virtual” robots.
Today we’re proud to give you a sneak peek to a new feature we’re calling “Graphical Natural Language”. This new interface will allow you to program robots from inside ROBOTC with easy-to-use graphical blocks that can be drag-and-dropped to form a program. Each block represents an individual command from the “text-based” ROBOTC and Natural Language.
Each block is custom designed to fit the needs for that specific function and parameters. Using text boxes and drop-down menus, users can customize each values of each function to solve various challenge and activities using the same commands as ROBOTC’s Text-Based Natural Language.
We have also added some new language extensions to both ROBOTC and Natural Language, such as the simplistic “Repeat” command. Prior to the Repeat command, users would need to copy and paste large sections of code or use a looping structure (like a ‘for’ or ‘while loop) in order to have a set of actions repeat a certain number of times. With the new “Repeat” command, however, users can simply specify how many times they would like for the code to run, with no complex coding required.
Another awesome tool that we’ve implemented in ROBOTC 4.0 is the “comment out” feature. You can now comment out an entire line of code just by clicking on the block’s line number. Lines of code that are “commented out” are ignored by the robot when the program is run, which makes this feature very useful when testing or debugging a program. This new tool is unique to Graphical Natural Language.
Because each Graphical Natural Language block corresponds to a real ROBOTC or Natural Language function, users will be able to graduate from Graphical Natural Language to full text-based Natural Language with the press of a single button. This will allow you to naturally transition from Graphical Natural Language to the text based Natural Language (or ROBOTC), without having to worry about manually converting the code line-by-line!
Please Note: The screenshots and interface in this post are not the finalized version of the ROBOTC Graphical Natural Language – the names, interface, look and feel of the system may change between now and official release.
We are pleased to introduce a working version of the ROBOTC Natural Language! A few months ago, we first announced our plan to make ROBOTC more beginner-friendly, using a new set of functions. Today, I’m happy to announce that our plan is already incorporated into ROBOTC for VEX Cortex and PIC; a version of ROBOTC for MINDSTORMS with the Natural Language will be released mid summer.
The goal of the Natural Language is to lower the barrier of entry into text-based programming languages, which it accomplishes in two main ways:
- The lines of code that make up entire robot “behaviors” are consolidated into single commands. For example, moving forward, line tracking, and turning are all single-line commands. New programmers will be able to use these commands to focus on breaking down problems and learning how to think logically, instead of focusing on every semicolon.
- The names given the new commands are simple and straightforward… even “Natural” sounding. For example, a student that wants to make their robot move forward can simply place the “forward();” command in their code. As they become comfortable with the Natural Language, they can begin to incorporate full ROBOTC commands into their program as well.
Check out this video for more information, including a demo (for best results, full screen the video and increase the quality):
For full details and support on the new Natural Language, visit the ROBOTC Natural Language page. (You can always get to this page at ROBOTC.net under the Support section in the navigation.)