Robotics Programming !!!
To draw a sketch on your mind only imagination in sufficient but here we are talking about robotics. For a robotics project it is important to know some computer language by which you can program your bot. Initially when I have started working on robotic model for some robotic competitions, I was totally unaware of these languages. I have started my work with relay logic. It was a most basic thing in electronic and as an electronic engineer I was expert with relay logic. It was the time of year 2000 when internet connection was not so cheap as compare to now. So there was no scope of additional knowledge, in-fact at that time we are working on only hardware with some homemade PCBs.
After some time when I got some information about some micro-controller boards with programming feature, it was really a boon for me and my team. And things become easy……
By the way here I will explain about some Robotics programming language which is in “Must Know” category for a robotics Project.
C and C++ are well known programming languages, now a day you will get a lot of tool for learning these languages. You can also download free compiler for C & C++.
If you are a newbie for robotic it is good to start from C/C++. Both languages have many similarities but C++ is upgraded version of C language from library point of view.
Best recommended book of C++ is “The C++ Programming Language (4th Edition)” by Bjarne Stroustrup and if you want to start from beginner level go for “C++: The Ultimate Beginner’s Guide!” by Andrew Johansen
Recently I have seen a cross robotics programming platform, it is ROBOTC. It is also based on C language with graphical interface. It is easy to use development environment.
Now many microcontroller boards are supporting C languages for controller programming so it is also a bonus point for C/C++ learner.
Python is a general purpose, high level programming language. It is design to increase readability of complex code. In Python you can easily express code in few lines but in C or C++ it will require writing a long complex code.
Book “Learning Python, 5th Edition” provides a good material for Python learner. It covers almost everything you need to know about programming in Python, object/ variable Types & Operations, Statements and Syntax, Functions and Generators, Modules and Packages and much more.
I really like the first chapter, why people use Python. If you’re a beginner, this can help you a lot.
Python is normally used in Web & internet development, email processing, Socket Programming and frame work development such as Django and Pyramid. Versatility of Python is due to its larger library. Now a days Python is using for embedded system Programming. It also can be used as Robotics Programming Language.
Raspberry PI, (a UK based foundation for Hardware development) is also using Python for his electronic board. Check Out given link https://www.raspberrypi.org/learning/python-intro/
LISP (List Processing Language) first appeared in 1958. And now after a lot of development (in last 6 decade) it is Hy. Initially it was used for Mathematical notation of computer program. It was developed on the bases of lamda calculas. LISP is using for Artificial Intelligence Programming. LISP is also an essential part of ROS (Robot Operation System).
If you want to work in AI type of thing as a professional, it will be a good choice for learning.
“Practical Common LISP” is a good book to understand LISP but Artificial Intelligence & Robotic is not included in this book.
Assembly language is a low level programming language. For understanding a microcontroller and microprocessor it is very effective. Coding in assembly gives you a imagination of every step of controller processing. During collage days it was my one of the favourite language. But problem is that, writing a complex code in assembly is very much tricky and hard. So if you have option for other languages, go for it. But if you are working in Robotic Project, it is assumed that you can read program which is written in assembly language.
In recent past mostly all microcontroller required low level Assembly language but after development of Arduino board now Assembly language is out of fashion because now these board supports C/C++.
Dot net is a platform to provide an object oriented environment to develop windows application. Here .NET framework contains two components, one of them is “Common Language Runtime” (CLR) and other is “Framework Class Library” (FCL). Its interoperability plays the most important role in its success.
.NET is not directly used in Robotics but it helps to run devices with window application. Here in .NET framework with the help of VB & C# you can do SOCKET & Port level programming. Even I have also done a lot of Parallel Port and Serial port programming on .NET frame work. It is really awesome. If you are working on “Internet of things” (IoT). It will be very helpful to design and execute your project.
For the development of .NET application you need to know about VB or C#. As robotics point of view I recommend “Microsoft Robotics Developer Studio”. Here C# will definitely help you.
MATLAB is not a language it is a tool and it is design to solve engineering problems on the basis of mathematical calculation. Basically it simulates your control algorithm / design and gives you the result. Complete robotic system can be design in MATLAB and after its stability test, manufactures start on physical level.
If you want to analyse data, produce advanced graphs or implement control systems, you will probably want to learn MATLAB.
But after learning above mentioned language you will not be able to program industrial robots because almost every robot manufacturer has developed their own proprietary robot programming language. i.e ABB uses RAPID programming language. Kuka has KRL (Kuka Robot Language). Yaskawa uses INFORM and Kawasaki uses AS and Universal Robots use URScript.
However, you are still going to have to learn a new robotics programming language every time you start using a new robot.
In recent years, programming options like ROS Industrial have started to provide more standardized options for programmers.
However, learning C/C++ first might be a good option for long term development of your coding skills. Also it will be a small step towards creating an Ultimate Intelligent bot.
If you know about any other Robotics Programming language, mentioned in comment and if you like this article don’t forget to share among Robotic Lover.