Programming Languages for Robotics

There are many programming languages which we use while building Robots, we have a few programming languages which we always prefer to use in designing. Actually the programming languages which we use mainly depend on the hardware one is using in building robots.

Some of them are- URBI, C and BASIC. URBI is an open source language. In this article we will try to know more about these languages. Let's start with URBI.

URBI : URBI stands for Universal Real-time Behavior Interface. It is a client/server based interpreted language in which Robot works as a client and controller as a server. It makes us to learn about the commands which we give to Robots and receive messages from them. The interpreter and wrapped server are called as "URBI Engine". The URBI Engine uses commands from Client and receives messages to it.  This language allows user to work on basic Perception-action principle. The users just have to write some simple loops on the basis of this principle directly in URBI.

PYTHON : There is another language which is used in designing Robots. Python is an object-oriented language which is used to access and control Robots. Python is an interpreted language; this language has an application in working with mobile robots, particularly those manufactured by different companies. With python it is possible to use a single program for controlling many different robots. However Python is slower than C++ but it has some good sides as well as it proved very easy to interact with robots using this language, it is highly portable and can be run in windows and MAC OSX plus it can easily be extendable using C and C++ language. Python is a very reliable language for string manipulation and text processing.

ROBOTC : Other Languages which we use are C, C++ and C # etc. or their implementation, like ROBOTC, ROBOTC is an implementation of C language. If we are designing a simple Robot, we do not need assembly code, but in complex designing we need well-defined codes. ROBOTC is another programming language which is C-based. It is actually a text based programming language. The commands which we want to give to our Robot, first written on the screen in the form of simple text, now as we know that Robot is a kind of machine and a machine only understands machine language. So these commands need to be converted in machine language so that robot can easily understand and do whatever it is instructed to do. This job is done by ROBOTC compiler.

Although commands are given in text form (called as codes) but this language is very specific about the commands which is provided as instruction. If we do even a minor change in given text it will not accept it as command. If the command which is provided to it is correct it colorizes that text, and we came to know that the given command in text form is correct (as we have shown in our example given below). Programming done in ROBOTC is very easy to do. Commands given are very straightforward. Like if we want our robot to switch on any hardware part, we just have to give code regarding to that action in text form. Suppose we want robot to turn motor of port, we just have to give command in this way:

Although program above is not exactly shown in the way in which it should be written, this is just to provide you a visualization of what we have told you. This is not written in an appropriate manner.ROBOTC provide advantage of speed, a Robot programmed in ROBOTC programming supports 45 times more speed than provided by other programming based on C plus it has a very powerful debugging feature.

ROBOTICS.NXT : ROBOTICS.NXT has a support for a simple message-based control. It direct commands, nxt-upload is one of its programs which is used to upload any file. It works on Linux. After getting introduction on programming languages, it becomes necessary to know something about MRDS as well, MRDS is an environment which is designed especially for  controlling robots. 

Microsoft Robotics Developer Studio:

Microsoft Robotics Developer Studio is an environment given for simulation purpose of Robots. It is based on a .net library concurrent implementation. This environment has support so that we can add other services as well. It has features which not only include creating and debugging Robot Applications but also it becomes easy to interact with sensors directly. C# programming language is used as a primary language in it. It has 4 main components:

·         Concurrency and coordination Runtime (CCR)

·         Decentralized software services (DSS)

·         Visual Programming Language (VPL)

·         Visual simulation environment (VSE)

Concurrency and coordination Runtime is a synchronous programming library based on .net framework. Although it is a component of MRDS but it can be used with any application. DSS is also a .net runtime environment, In DSS services are exposed as resources which one can access through programs. DSS uses DSSP (Decentralizes software services protocol) and HTTP.

If we want to graphics and visual effects in our programming, we use VPL. Visual Programming language is a programming language which allows us to create programs by doing manipulations in programming languages graphically. We use boxes and arrows in this kind of programming while we want to show dataflow kind of things.


Visual programming language has huge application in animations.



The last component which we are going to describe is Visual Simulation Environment.  VSE provides simulates physical objects.  Visual Simulation environment is an integrated environment for picture-based, object oriented and component based applications of simulation.

Programming in robotics is a very vast topic that we cant cover in a single article. This is just an introduction for those who want to get an idea about using languages in building of robots.