Get Smarter with Tech!

Posted By: Shree Lilai Digital Date: 30/08/21

Let’s face it, robots are cool. They’re also going to run the world someday, and hopefully, at that time they will take pity on their poor soft fleshy creators (a.k.a. robotics developers) and help us build a space utopia filled with plenty. I’m joking of course, but the only sort of.

When it comes to anxiety around automation and the future of humans in the workforce, a recent study by the OECD has dispelled Oxford’s earlier, somewhat alarming forecast of 47% job takeover by automation. According to the OECD report, although the impact of automation1 is still significant — one in two jobs in the 32 countries included in the study is predicted to be affected — the biggest impact would be in low-skilled or less-experienced job roles, with very little impact foreseen to more senior, highly-skilled roles.

For beginners on robotics programming, you should have a basic knowledge of two things:

  • Mathematics — we will use some trigonometric functions and vectors
  • Python — since Python is among the more popular basic robot programming languages — we will make use of basic Python libraries and functions

Where some businesses might fear automation and its related technologies as a threat to the working world, others have chosen to view AI and automation as a useful augmentation, rather than a potential hindrance. This differentiation makes a lot of sense because something very different is developing; instead of replacing humans, AI is increasing human capabilities, creating a new scope for innovation, and making new career opportunities available. The demand for AI-related skills and machine learning is set to increase and will continue to grow from $1.41 billion to $8.81 billion by 2022, at a Compound Annual Growth Rate (CAGR) of 44.1%.

The fundamental challenge of all robotics is this: It is impossible to ever know the true state of the environment. The robot control software can only guess the state of the real world based on measurements returned by its sensors. It can only attempt to change the state of the real world through the generation of control signals.

Thus, one of the first steps in control design is to come up with an abstraction of the real world, known as a model, with which to interpret our sensor readings and make decisions. As long as the real world behaves according to the assumptions of the model, we can make good guesses and exert control. As soon as the real world deviates from these assumptions, however, we will no longer be able to make good guesses, and control will be lost. Often, once control is lost, it can never be regained. (Unless some benevolent outside force restores it.)

This is one of the key reasons that robotics programming is so difficult. We often see videos of the latest research robot in the lab, performing fantastic feats of dexterity, navigation, or teamwork, and we are tempted to ask, “Why isn’t this used in the real world?” Well, next time you see such a video, take a look at how highly controlled the lab environment is.

In most cases, these robots are only able to perform these impressive tasks as long as the environmental conditions remain within the narrow confines of its internal model. Thus, one key to the advancement of robotics is the development of more complex, flexible, and robust models — and said advancement is subject to the limits of the available computational resources.

Robots, like people, need a purpose in life. The goal of our software controlling this robot will be very simple: It will attempt to make its way to a predetermined goal point. This is usually the basic feature that any mobile robot should have, from autonomous cars to robotic vacuum cleaners. The coordinates of the goal are programmed into the control software before the robot is activated but could be generated from an additional Python application that oversees the robot movements. For example, think of it driving through multiple waypoints.

However, to complicate matters, the environment of the robot may be strewn with obstacles. The robot MAY NOT collide with an obstacle on its way to the goal. Therefore, if the robot encounters an obstacle, it will have to find its way around so that it can continue on its way to the goal.

Robots are already doing so much for us, and they are only going to be doing more in the future. While even basic robotics programming is a tough field of study requiring great patience, it is also a fascinating and immensely rewarding one.

There are many more advanced concepts that can be learned and tested quickly with a Python robot framework.