RoboMind

Last updated
RoboMind
Original author(s) Arvid Halma, Research Kitchen
Initial release2005
Stable release
5.3 / November 18, 2014;7 years ago (2014-11-18)
Written in Java
Type Educational
License RoboMind Licence [1]
Website www.robomind.net

RoboMind is a simple educational programming environment with its own scripting language that allows beginners to learn the basics of computer science by programming a simulated robot. In addition to introducing common programming techniques, it also aims at offering insights in robotics and artificial intelligence. RoboMind is available as stand-alone application for Windows, Linux, and Mac OS X. It was first released in 2005 and was originally developed by Arvid Halma, a student of the University of Amsterdam at the time. Since 2011, RoboMind has been published by Research Kitchen. [2]

Contents

robomind==The simulation environment== The application is built around a two-dimensional grid world in which a robot can move around, observe neighboring cells, or mark them by leaving a paint trail. The world may also contain so-called beacons that can be carried around by the robot in order to clear its way.

Since version 4.0, it is possible to export RoboMind scripts to robots in the real world directly. Currently, Lego Mindstorms NXT 2.0 are supported. [3]

The scripting language

RoboMind offers a basic scripting language that consists of a concise set of rules. Apart from commands to make the robot perform basic movement instructions, the control flow can be modified by conditional branching (if-then-else), loops (while) and calls to custom procedures.

Example script to draw square:

paintWhite repeat(4) {     forward(2)     right }

Recursive line follower example:

follow  procedure follow{     if(frontIsWhite){               forward(1)       }     else if(rightIsWhite){               right     }     else if(leftIsWhite){          left     }     else{          end     }     follow }

The programming environment offers an integrated text editor to write these scripts, with syntax highlighting, autocompletion and line numbering.

Modifications to the environment, such as painting grid cells, are used to store a runtime state. This shows the robot in its environment is directly related to 2D Turing machines. [4] [5] Since version 5.0, the language does allow the declaration of variables and functions (procedures that return values).

The scripting language itself is currently available in 22 languages: Arabic, Catalan, Chinese, Czech, Dutch, English, French, German, Greek, Hungarian, Indonesian, Korean, Polish, Brazilian Portuguese, Russian, Slovak, Slovenian, Spanish, Swedish, Thai, Turkish and Ukrainian. All instructions and keywords can be translated. This makes it easier to learn for non-English speakers than most other programming languages that are constrained to English syntax and Latin alphabets.

Relation to other educational software

RoboMind is somewhat similar to Karel the Robot but its syntax is closer to C/C++ while Karel is closer to Pascal.

RoboMind can be related to the Logo, at which a turtle can be moved around to create geometric shapes. The syntax of RoboMind however is different and corresponds more directly to mainstream scripting languages, such as JavaScript. In RoboMind perceiving and changing the environment are of equal importance, where Logo focuses mostly on the latter. This makes RoboMind more suitable to demonstrate real life applications. In Logo, on the other hand, users have more freedom to create visual effects.

Other free educational programming languages, such as Alice and Scratch focus on the wider domain of interactive story telling.

See also

Related Research Articles

<span class="mw-page-title-main">Lego Mindstorms</span> Hardware and software platform by Lego

Lego Mindstorms is a hardware and software structure which develops programmable robots based on Lego building blocks. Each version includes computer Lego bricks, a set of modular sensors and motors, and Lego parts from the Technic line to create the mechanical systems. The system is controlled by the Lego bricks.

<span class="mw-page-title-main">Visual programming language</span> Programming language written graphically by a user

In computing, a visual programming language is any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations.

leJOS is a firmware replacement for Lego Mindstorms programmable bricks. Different variants of the software support the original Robotics Invention System, the NXT, and the EV3. It includes a Java virtual machine, which allows Lego Mindstorms robots to be programmed in the Java programming language. It also includes 'iCommand.jar' which allows you to communicate via bluetooth with the original firmware of the Mindstorm. It is often used for teaching Java to first-year computer science students. The leJOS-based robot Jitter flew around on the International Space Station in December 2001.

<span class="mw-page-title-main">Karel (programming language)</span> Programming language

Karel is an educational programming language for beginners, created by Richard E. Pattis in his book Karel The Robot: A Gentle Introduction to the Art of Programming. Pattis used the language in his courses at Stanford University, California. The language is named after Karel Čapek, a Czech writer who introduced the word robot in his play R.U.R.

<span class="mw-page-title-main">Constructionism (learning theory)</span> Learning theory involving the construction of mental models

Constructionist learning is the creation by learners of mental models to understand the world around them. Constructionism advocates student-centered, discovery learning where students use what they already know, to acquire more knowledge. Students learn through participation in project-based learning where they make connections between different ideas and areas of knowledge facilitated by the teacher through coaching rather than using lectures or step-by-step guidance. Further, constructionism holds that learning can happen most effectively when people are active in making tangible objects in the real world. In this sense, constructionism is connected with experiential learning and builds on Jean Piaget's epistemological theory of constructivism.

Robot software is the set of coded commands or instructions that tell a mechanical device and electronic system, known together as a robot, what tasks to perform. Robot software is used to perform autonomous tasks. Many software systems and frameworks have been proposed to make programming robots easier.

MicroWorlds is a program that uses the Logo programming language to teach language, mathematics, programing, and robotics concepts in primary and secondary education. It features an object in the shape of a turtle that can be given commands to move around the screen drawing shapes, creating animations, and playing games. The program's use of Logo is part of a large set of dialects and implementations created by Seymour Papert aimed at triggering the development of abstract ideas by children through experimentation. MicroWorlds is developed by Logo Computer Systems Inc. (LCSI) and released for Windows and Mac computers.

<span class="mw-page-title-main">Lego Mindstorms NXT</span>

Lego Mindstorms NXT is a programmable robotics kit released by Lego on August 2, 2006. It replaced the first-generation Lego Mindstorms kit, which was called the Robotics Invention System. The base kit ships in two versions: the Retail Version and the Education Base Set. It comes with the NXT-G programming software, or optionally LabVIEW for Lego Mindstorms. A variety of unofficial languages exist, such as NXC, NBC, leJOS NXJ, and RobotC. The second generation of the set, the Lego Mindstorms NXT 2.0, was released on August 1, 2009, featuring a color sensor and other upgraded capabilities. The third generation, the EV3, was released in September 2013.

Next Byte Codes (NBC) is a simple language with an assembly language syntax that can be used to program Lego Mindstorms NXT programmable bricks. The command line compiler outputs NXT compatible machine code, and is supported on Windows, Mac OS and Linux. It is maintained by John Hansen, a Mindstorms Developer Program member.

Urbi is an open-source cross-platform software platform in C++ used to develop applications for robotics and complex systems. Urbi is based on the UObject distributed C++ component architecture. It also includes the urbiscript orchestration language which is a parallel and event-driven script language. UObject components can be plugged into urbiscript and appear as native objects that can be scripted to specify their interactions and data exchanges. UObjects can be linked to the urbiscript interpreter, or executed as autonomous processes in "remote" mode.

Not eXactly C, or NXC, is a high-level programming language for the Lego Mindstorms NXT designed by John Hansen in 2006. NXC, which is short for Not eXactly C, is based on Next Byte Codes, an assembly language. NXC has a syntax like C. The IDE for NXC is the Bricx Command Center.

The World Robot Olympiad (WRO) is a global robotics competition for young people. The World Robot Olympiad competition uses Lego Mindstorms manufactured by LEGO Education. First held in 2004 in Singapore, it now attracts more than 26,000 teams from more than 65 countries.

<span class="mw-page-title-main">Bricx Command Center</span>

Bricx Command Center (BricxCC) is the integrated development environment (IDE) of Next Byte Codes (NBC), Not Quite C (NQC) and Not eXactly C (NXC). These programming languages are used to program the Robots in the Lego Mindstorms series. Not Quite C and Not eXactly C have a syntax like C. Bricx Command Center is currently limited to computers running the Microsoft Windows operating system. However, a version for the Linux operating system is currently in development. It is written by John Hansen.

Dexter Industries is a company that designs robots for education, research, and personal use. The company makes several products that expand the LEGO Mindstorms, Raspberry Pi and Arduino prototype system.

<span class="mw-page-title-main">App Inventor for Android</span> Web application development environment

MIT App Inventor is a web application integrated development environment originally provided by Google, and now maintained by the Massachusetts Institute of Technology (MIT). It allows newcomers to computer programming to create application software (apps) for two operating systems (OS): Android, and iOS, which, as of 8 July 2019, is in final beta testing. It is free and open-source software released under dual licensing: a Creative Commons Attribution ShareAlike 3.0 Unported license, and an Apache License 2.0 for the source code.

<span class="mw-page-title-main">Lego Mindstorms EV3</span>

LEGO Mindstorms EV3 is the third generation robotics kit in LEGO's Mindstorms line. It is the successor to the second generation LEGO Mindstorms NXT kit. The "EV" designation refers to the "evolution" of the Mindstorms product line. "3" refers to the fact that it is the third generation of computer modules - first was the RCX and the second is the NXT. It was officially announced on January 4, 2013 and was released in stores on September 1, 2013. The education edition was released on August 1, 2013. There are many competitions using this set, including the FIRST LEGO League Challenge and the World Robot Olympiad, sponsored by LEGO.

Enchanting is a free and open-source cross-platform educational programming language designed to program Lego Mindstorms NXT robots. It is primarily developed by Southern Alberta Robotics Enthusiasts group in the province of Alberta, Canada, and runs on Mac OS X, Windows, and experimentally on Linux devices. Since 2013, the Enchanting version 0.2 has been available.

Open Roberta is a project within the German education initiative "Roberta—Learning with robots", initiated by Fraunhofer IAIS, which is an institute belonging to the Fraunhofer Society. With Open Roberta Fraunhofer IAIS is looking to encourage children to code by using robots such as Lego Mindstorms, and other programmable hardware systems such as Arduino, BBC micro:bit, and the Calliope mini. The Cloud-approach of the Open Roberta Lab is intended to simplify programming concepts and make it easier for teachers and schools to teach how to code. Open Roberta is free and does not require any installation. The project was initially founded with €1m by Google.org.

<span class="mw-page-title-main">RoboBlockly</span>

RoboBlockly is a web-based robot simulation environment for learning coding and math. Based on Blockly, it uses a simple puzzle-piece interface to program virtual Linkbot, Lego Mindstorms NXT and EV3, as well as to draw and animate for beginners to learn robotics, coding, math, science, and art. Blocks in RoboBlockly can be executed in debug mode step-by-step. All math activities in RoboBlockly are Common Core State Standards Mathematics compliant.

References

  1. "RoboMind.net - Licence".
  2. Research Kitchen, Delft, The Netherlands.
  3. RoboMind's Lego Mindstorms NXT support
  4. Robomind Turmite: 2D Turing Machine, a YouTube movie.
  5. Sorting Turing Machine in RoboMind, a YouTube movie.