Robotics, the traditional path and new approaches

How do we build robots? How do we program them? Can we improve these processes?

The hype cycle representation of the robotics field based on the general interest since its inception obtained from a joint review of publications, conferences, events and solutions. From “Dissecting Robotics — historical overview and future perspectives”.

Robotics, like many other technologies, suffered from an inflated set of expectations resulting in a decrease of the developments and results during the 90s. Over the last years, several groups thought that flying robots, commonly known as drones, would address these limitations however it seems unlikely that the popularity of these flying machines will drive and push the robot growth as expected. This article aims to summarize traditional techniques used to build and program robots together with new trends that aim to simplify and enhance the progress in the field.

Building robots

It’s a rather popular thought that building a robot and programing its behavior remain being two highly complicated tasks. Recent advances in adopting ROS as a standardized software framework for developing robot applications helped with the latter however building a robot remains a challenge. The lack of compatible systems in terms of hardware, the non existing marketplace of reusable modules or the expertise required to develop the most basic behaviors are some of the few listed hurdles.

The integration-oriented approach

Robots are typically built by following the step-by-step process described below:

Buy parts: We typically decide on what components our robot will need. A mobile base, a range finder, a processing device, etc. Once decided we fetch those that match our requirements and proceed towards integration. Integration: Making different components speak to each other and cooperate towards achieving the end goal of the robot. Surprisingly, that’s where most of our time is spent. “build the robot”: Assembling all of the components into joints and mechanically linking them. This step might also get executed together with step 2. Programming the robot: Making the robot do what it’s meant to do. Test & adapt: Robots are typically programmed in predictable scenarios. Testing the pre-programmed behavior in real scenarios is always critical. Generally, these tests delivers results that indicate where adaptations are needed which in many cases pushes de process of building a robot down to step 2 again, integration. Deploy: Ship it!

The “integration-oriented” approach for building a robot.

It’s well understood that building a robot is a technically challenging task. Engineers often face situations where the integration effort of the robot, generally composed by diverse sub-components, supersedes many other tasks. Furthermore, every hardware modification/adaptation while programming or building the robot demands further integration.

This method for building robots produces results that become obsolete within a short period.

Moreover, modules within the robots aren’t reusable in most of the cases since the integration effort makes reusability an incredibly expensive (manpower-wise) and time-consuming task.

The modular approach

The existing trend in robotics is producing a significant number of hardware devices. Although there’s an existing trend towards using the Robot Operating System (ROS), when compared to each other, these components typically consist of incompatible electronic components with different software interfaces.

Now, imagine building robots by connecting interoperable modules together. Actuator, sensors, communication modules, UI devices, … provided everything interoperates together, the whole integration effort could be eliminated. The overall process of building robots could be simplified and the development effort and time will be reduced significantly.

Comparison between the “integration-oriented” and the “modular” approaches for building robots.

Modular components could be reused among robots and that’s exactly what we’re working on with H-ROS, the Hardware Robot Operating System.

H-ROS is a vendor-agnostic infrastructure for the creation of robot modules that interoperate and can be exchanged between robots. H-ROS builds on top of ROS, the Robot Operating System, which is used to define a set of standardized logical interfaces that each physical robot component must meet if compliant with H-ROS.

Programming robots

The robotics control pipeline

Traditionally, the process of programming a robot for a given task T is described as follows:

Observation: Robot’s sensors produce measurements. All these measurements receive the name of “observations” and are the inputs that the robot receives to execute task T. State estimation: Given the observations of step 1, we describe the robot’s motion over time by inferring a set of characteristics of the robot such as its position, its orientation or its velocity. Obviously, mistakes in the observations will lead to errors in the state estimation. Modeling & Prediction: Determine the dynamics of the robot (rules for how to move it around) using a) the robot model (typically the URDF of the robot in the ROS world) and b) the state estimation. Similarly to what happened with the previous step, errors in “state estimation” will impact the results obtained in this step. Planning: this step determines the actions required to execute task T and uses both the state estimation and the dynamical model from previous steps in the pipeline. Low level control: the final step in the pipeline consists of transforming the “plan” into low level control commands that steer the robot actuators.

The traditional “robotics control pipeline”

Bio-inspired techniques

Artificial Intelligence methods and, particularly, bio-inspired techniques such as artificial neural networks (ANNs) are becoming more and more relevant in robotics. Starting from 2009, ANNs gained popularity and started delivering good results in the fields of computer vision (2012) or machine translation (2014). Nowadays, these fields are completely filled by techniques that simulate the neural/synaptic activity of the brain of a living organism.

During the last years we have seen how these techniques have been translated to robotics for tasks such as robotic grasping (2016). Our team has been putting resources into exploring these techniques

that enable to train a robotic device in manner conceptually similar to the mode in which one goes about training a domesticated animal such as a dog or cat.

Training robots end-to-end for a given task. This integrated and bio-inspired approach conflicts with the traditional robotics pipeline however it’s already showing promising results of behaviors that generalize.

We are excited to share that it’s within our expectations to see more active use of these bio-inspired techniques. We are confident that its use will drive innovations with high impact for robotics and we hope to contribute by opening part of our work and results.