Introduction to Autonomous Robots

A short intro about me: I received my degree in Physics, not engineering or Computer Science. Through the course of my physics degree, I was introduced to my first programming language, Python. For three years, I concentrated on coding high energy scintillation and particle collision simulations using GEANT4. Clearly my background is not something people would normally associate with ‘robotics’ but for such a field there really is no one classical discipline that covers all of its bases. Since I started working in robotics, I have found that physics principles are just as prevalent as robotic specific principles.

In this blog post, I will share with you what I have learned about the field on my journey from physics to computer science and robotics, hopefully inspiring you to take a deeper look into the field. I will cover some basic robotics principles and how they merge together to form a functioning working automaton, while also providing you with a quick startup guide to begin working with robots without making an initial hardware investment.

First thing to note is that for a robot to be autonomous it must be able to make some decisions for itself. Achieving autonomy is not exactly simple but it seems the field has come up with solutions remarkably analogous to nature. To elaborate, let me use one of the most basic examples of mobile robots which deal with navigation.

For a non-autonomous robot to be able to reach different locations within a working environment, we must program pre-defined paths for it to traverse, essentially a hardcoded trajectory. Algorithms for autonomous navigation are not only much more interesting, the end result is far more efficient. An autonomous robot will use its sensors to create a frequently updated cost analysis of different possible (random) ways it could approach the desired end. This cost analysis ensures that the robot chooses the most efficient method it can come up with. Unlike a hardcoded path, where if something is blocking movement our robot would get stuck, a robot running an autonomous navigation system would be able to come up with a way around the obstacle. There are few things more exciting than watching a robot avoid your boss who is standing in its way.

There are 3 critical parts to every robot; Sensors, Motor, and Brains (queue Zombies).


The word ‘sensor’ is rather broad and can represent an ever expanding list of technologies. In everyday life we are constantly surrounded by sensors, from the magnetometer on your phone to the photodiodes used on your computer mouse. One has to take very careful consideration when looking for the perfect sensor stack with which your robot will perceive the world. Although there are many types of sensors, only a handful are commonly seen in robotics. LiDAR which is a laser based re-imagining of RADAR technology, SONAR which uses echoing sound waves, and stereoscopic cameras which,like our eyes, can sense depth, and touch/pressure sensors. Although each sensor is mighty in its own right, no single sensor is capable of independently providing enough information to properly perceive the world. Much like with nature, our robots cannot rely on a single tool. Instead, we are able to configure different types of sensors in order to leverage a more precise observation of the environment.


A 3D point cloud.


This section should be a lot more straightforward as I have one ultimate recommendation for land based robots, which is to use a differential drive. A differential drive essentially means that your robot’s motion is controlled by two wheels which are powered and thus can move independently. The recommendation is fairly logical as you want your land robot to be as nimble as possible. If you are interested in working with bi-pedal robots then of-course this would not apply to you. There are many other exciting options for locomotion such as marine robots or aerial robots.

deferential drive

Example of how of how different angular velocities affect base rotation.


Again this another instance where we as roboticists must imitate nature. You may have a perfectly designed robot, and maybe you can even control it with a remote. But to turn it into an autonomous robot you will need to put some brains into that tin man. I really recommend you check out ROS as it is beginner friendly and will help you get started in your journey. With ROS and other third party tools such as Gazebo you will be able to simulate real robots with fairly accurate physics, as long as your Inertia Tensors are accurate.

For those interesting in wetting their feet in the world of robotics without making any investment other than time you should take a look at gazebo-ros. There are many benefits to using simulation tools, especially when learning how to use a new framework. One of the biggest benefits for me is the capability to test out new ideas, algorithms, and even whole new hardware configurations without ever having to commit my physical robot towards these initial tests. Another advantage particularly while first learning a new framework such as ROS is the ability to study the knowledge base and see how things work together by putting it all into simulations. Although I’m clearly biased towards the benefit of simulations, it is easy enough for you to set up and form your own opinions on the matter.

The field of autonomous robots as a whole still has much room for improvement. There are many unsolved problems such as the kidnapped robot, when a robot is moved while turned off and exploration algorithms still need much improvement. Even though it’s not perfect, robotics are at a stage where working with them is no longer just for pure research. Robots are currently more fleshed out than aviation was when it first became commercialized. As developers, techies, students, and innovators, we can all explore possible applications where a robot would be suitable. Unless we start building robotics applications that serve a real purpose and solve real problems, robots themselves will not come out into mainstream life. Well, except for fighting each other.

Download our Incubator Resources



We’re known for sharing everything!


Save more time, get more done!


Innovate from the inside

Written by
Abel Castilla 21 Oct 2016

Classically trained physicist and programmer with a passion for everything AI (also my favorite movie).


comments powered by Disqus