Software used to make Robot
In my earlier article we have gone through 
almost all the Hardware components which are used to build a robot. Now we will 
throw some light on the software which is used in its designing. We will study 
about Robot Software. We have also studied about some robots in which feedback 
system is used, those kinds of robotic system does not come in the category of 
intelligent device as such.
Why we need Robot software??
Programming a robot is not an easy task. So 
many software systems have been introduced to make programming any robot 
simpler. Robot Software is the coded commands that instruct robots to perform 
tasks; these are programs for controlling its action Robot. 
Robot software is 
actually set of instructions that control a robot's actions. It contains 
information about the tasks robot has to perform.
 Robot software actually 
automates tasks which are to be performed. Some robot software is designed to 
develop a smart mechanical device. Software is used to control the movement of 
the Robot.
 Software gives commands to hardware and then under those commands 
they perform actions. Software is something which makes Robot to act like a 
human being.
Types of Robotic Software:
There are many types of 
software for Robots; every software has its own specific task.One of them is 
Open Robot Control Software, OROCOS.This is an open sourced software 
i.e.; we do not need any license to use this software.
This open source software 
is developed to Libraries related to robot control software for 
different-different purposes of robots. 
These libraries are sharable.
There are 
three types of this open source software for robot. They are freely distributed 
software and have very wide application in robotic world. 
Dataflow Language: Data flow Programming Techniques are very commonly used. It 
is based on the concept that if value of one variable changes, the value of 
other variables should also change.
 Dataflow language incorporates dataflow 
principles, not only this it also incorporates functional concepts as well. A 
very important thing which we have to keep in our consideration is state of the 
program. 
It gives information about the various condition of any specific 
instant. State information is essential for any programming language to function 
properly. Programmer is not able to see this information it is hidden.
Runtime: Runtime is also a key concept which is related with any type of Robot 
programming. When a programming is executing, it is said to be in runtime. It is 
actually a short term used for a library of code instructions. It can be used by 
any computer language to organize a program written in that language, or to 
specify if errors in any program occur. For example, if the robot we have 
designed meant to move forward will start moving backward then it would be a 
Runtime error.
Software component: A software component is a piece of 
software. We also require a component-oriented frame work for programming robot. 
These frameworks actually provide way to design software components.
They help 
in integrating them hierarchical manner.
The framework also provides 
the essential infrastructure to support the concept of component software and 
the inter communication between them by data paths means.
CoolBot is a kind of a 
component oriented C++ framework in which we can see software that controls the 
system as a unit dynamic network of execution, interconnected by means of data 
path.The components can be used as many times as required.
 Software Architecture:
Software architecture is actually a set of structures which 
consists of software elements, relation among them and properties of both.Documentation is also done for software architecture; it helps in reusing 
designing components and patterns. Software architecture of a system consists of 
the various software components used to design and operate the software.Software architecture discipline is reduces complexity through abstraction and 
separation.
All programming methods rely on software architecture as a method of 
organizing a software system since it not only provides communication support 
but is also a critical component in hardware and software interfaces.
To 
describe software architectures,several architectural descriptive languages, 
ADLs are used. Some eg. Of ADLs are AADL, Acme etc.
![]()
 Flow chart to show software architecture
Programming in C #: 
Programming for Robots in c# is very popular nowadays,  It is 
good to know that programming whether done in c# or visual basic or .net does 
not change the basic functionality of our robot. but to do this one should have 
knowledge of Microsoft robotics studio.
 What we need to do we just have to open 
command prompt and then run the following command, here we are talking about 
Microsoft studio program group (1.5). So the command will be dssnewservice/service:LigoTriBot
This will generate a folder 
with several items.
Now open the LigoTriBot.sln 
file in Microsoft C# 2005Open the generated LegoTriBot.sln file in 
Microsoft C# 2005, you will see that several files will be generated.
 Now add 
the following code to the top of the file.
using bumper = Microsoft.Robotics.Services.ContactSensor.Proxy;
using drive = Microsoft.Robotics.Services.Drive.Proxy;
using gamepad = Microsoft.Robotics.Services.Sample.XInputGamepad.Proxy;
![]()
screen showing Robotic arm in c#
ORCA:
ORCA is an open source framework for developing 
component-based robotic system. It is used in designing building blocks which is 
then collected together to form a complex Robotic system. 
It is a kind of 
software for controlling motion of Robotic arm. ORCA NT software is one of the 
examples of recently designed software. It provides graphical user interfacing 
for developing robotic application.
![]()
Open source framework
![]() 
ORCA naming conventions