Nov 05 2022

Programming for robotics: Where to start

Tony Hanson


Abstract: In this article, we will introduce tools like Arduino and Raspberry Pi, operating systems, and popular program languages which are useful to start learning and working in the robotics area. 

Definition of a computer program?

Programming is one of the most important skills to develop if you want to become an expert in the robotics area. Computer programs are a set of instructions that work on an input to generate an output. Modern robots often have sensors to collect data, process them, and then make intelligent decisions. These actions are scheduled by computer programs that are executed on a processor. 


For example: A face recognition program in a robot will implement steps as follows:

1. Input: An image of a person is considered as the input data. Some features of the image will be extracted (featuring data) to reduce the size of data.

2. Compare these features to a database of known faces

3. Output: If these features match with known faces then return the person's name as an output. 

The program will execute the same set of instructions whenever it runs. 

Most programming languages are written in text which is easy to understand by humans. To make computers understand, they must be compiled into machine code or bytecode  which a virtual machine executes. For example, C/C++ programs need to be compiled into machine code while Java programs must compile into bytecode to execute on Java Virtual Machine

Programming languages

Nowaday, there are many programming languages such as C/C++, Java, Python, Golang, Rubi, PHP, C# using for different purposes. In which, C/C++ (the object-oriented successor to the C language) is the most widely used in robotics. Python is also very popular because it is easy to implement and often used in Machine Learning models to integrate in products running on Robotics Operating Systems (ROS)

There are several other important software tools used in robotics, including:

  • The Robot Operating System (ROS) is a collection of software libraries and tools that aid in the development of robot applications. You can also create your own programs in languages such as C/C++ or Python.

  •  Octave is a free, open-source equivalent to Matlab. Matlab is used to analyze data and to interface with ROS also.

Arduino vs Raspberry Pi?

Arduino and the Raspberry Pi are important tool kits to develop robotics projects. They have several key differences as follows:


An Arduino is a microcontroller that functions similarly to a computer but runs and loops a single program written on a computer. This program is compiled and downloaded as machine code to the microcontroller. The Arduino is well-suited to low-level robot control, including features such as analogue-to-digital conversion for interfacing analog sensors.

C programming and the Arduino microcontroller

The C/C++ programming language is one of the most widely used in robotics. The Arduino microcontroller uses a C-based programming language and is a great way to learn the fundamentals of this important language while doing hands-on robotics.

The program development environment may be obtained for free from the Arduino website, where you'll also find numerous sample projects and tutorials. A basic Arduino (Uno) costs around EUR 19, and the program development environment can be downloaded for free from the Arduino website.

Raspberry Pi

An RPi can be equipped with a keyboard, mouse, and monitor, as well as other peripherals such as a camera — ideal for robotics. Indeed, it is a computer installed with ROS and many programs can execute on it. The ROS is a light version of Linux and thus it can run multiple tasks and is more flexible than Arduino. To learn about robotics programming, the  Raspberry Pi tool kit is the best choice for beginners.

Python and the Raspberry Pi

Python is an important programming language to learn because it is widely used in computer science and machine learning. Python is the programming language that the Raspberry Pi runs on. Because a Raspberry Pi can drive a robot, this makes it extremely significant to robotics.

The Raspberry Pi Foundation has created a series of free online courses to teach people how to utilize a Raspberry Pi in robotics. For further information and connections to the courses, visit their partner's page.

How to learn Python and the Raspberry Pi for beginer

Thank for the Internet and e-learning platform. Now, you can find high quality courses in robotics with very good price as follows:

1- Raspberry Pi For Beginners - A Complete Course

This is an excellent course for beginners. Currently, there are more than 5900 students studied this course and it is voted 5 stars in Udemy platform. The price for this course is only 22 USD at the time of writing this content.

This complete hands-on, step by step course is targeting the latest version of Raspberry Pi, which is the Raspberry Pi 4. Note that everything also works perfectly for Raspberry Pi 2 and 3 versions. 

You don’t need any knowledge in programming, electronics, or anything else. To get started, you just need a computer to work from, and a Raspberry Pi board.


At the end of the course you will have a strong foundation with your Raspberry Pi, and you will be able to start your own projects in no time.

2-  Complete Python 3 and Raspberry Pi Masterclass:

This is the most comprehensive, yet straight-forward course for the Python 3 and Raspberry Pi! Whether you have never worked with Python 3 and Raspberry Pi before, already know basics of Python Programming, or want to learn the advanced features of Raspberry Pi with Python 3, this course is for you! There are about 2900 student learning this course and it is considered as the best seller course in the Udemy. The price for this course is only 21 USD at the time of writing this content.



Tags: Arduino ,Raspberry Pi,popular program languages for robotics