Graphical programming and robotics-the tools get better and easier
MIT App Inventor is a “graphical programming language” in that we assemble programs by clicking and dragging symbols on screen, interactively, rather than writing our programs as text.
This weekend, FIRST Robotics kicks off its 2016 season. Students will design, construct, test and deploy a complex robotic system to meet the 2016 competition challenge (to be unveiled on Saturday).
The robot control system may be programmed in C++, Java, National Instrument’s LabView, RobotBuilder and/or GRIP.
LabView is graphical data flow programming language used in academics and industry to create complex control systems and instrumentation.
RobotBuilder provides a graphical-like programming interface to create a control system for the robot. Once the control system is set up, RobotBuilder converts the control system into C++ or Java code for subsequent compilation.
GRIP is a graphic image manipulation system used to process images to recognize various kinds of patterns (square, or red balls, for example). This information can be combined with pointing angles to determine the location of an object – and that in turn flows into the control system to command the robot. While image processing can be done in C++ or Java, GRIP provides a simplified (not quite drag and drop, but similar) user interface for setting up the image processing requirements.
The point of this is to illustrate that there are many types of programming systems. For many applications, graphical-based programming systems (like App Inventor) are easy to learn and easy to use, enabling more people to have access to the power of computing (rather than limiting access to those with highly specialized skills).
As we move into the near future, the barriers to programming are coming down – whereas we once had to learn machine and assembly code instructions, then higher level programming languages – today, programming some applications is a simple as drag and dropping controls to create program functionality.