'PyRobot' Framework From Facebook Aims To Simplify Robotic Development

AI that works on the screen is one thing. The next is AI that gets physical machines to work, such as moving an arm.

This task is easy for humans. Even babies can learn this basic motor skills not long after birth. But for computers, this is very difficult for them to accomplish, as the AI needs to learn about precise control and coordination of the robotic joints, the angles and torque.

It's difficulty to program a robot. And here, Facebook is making an unlikely dive into the field by introducing a robot framework, known as'PyRobot'.

The open-source project (https://github.com/facebookresearch/pyrobot) aims to simplify the ways researchers program their machines, and could even make it easier for non-robotics types to quickly enter the field.

PyRobot isn’t actually an operating system in and of itself, but a kind of layer above what is called the 'Robot Operating System', or simply as 'ROS'.

PyRobot

ROS is a software popular in the robotic research, that allows researchers to control every aspect of a robot, down to its sensors or joints. It works across many different kinds of robots doing a wide variety of things.

The problem with ROS is that it has fine granular details required to control a robot, and typically includes requiring users to set up several libraries and data structures for kinematics, controllers, and motion planners.

PyRobot abstracts away this complexity.

In Facebook's words on its blog post:

"PyRobot is a lightweight, high-level interface on top of the robot operating system (ROS). It provides a consistent set of hardware-independent midlevel APIs to control different robots."

"PyRobot abstracts away details about low-level controllers and interprocess communication, so machine learning (ML) experts and others can simply focus on building high-level AI robotics applications."

With PyRobot, researchers can write simple code in Python to command a machine, which the platform then translates into the more complex instructions that ROS requires.

In short, PyRobot abstracts and visualizes much of what ROS is doing.

“If I'm a machine learning researcher, and I only care about going to this X,Y location, I really do not want to be bothered by all the low-level details of how actually the robot ends up getting there,” explained Facebook AI researcher Abhinav Gupta.

“That's what we want to abstract away, so that these researchers can focus just on their applications.”

LoCoBot
Facebook gave an example of a LoCoBot that has been programmed to position its arm with just a few lines of Python code

Mastering ROS involves a lot of challenge, and researchers working with robotics need to deal with more things they don't need or not particularly interested in.

For example, researchers working on computer vision, or developing on a robot to be capable of recognizing a particular object, may not need voice recognition, for example. With PyRobot, they can make their robot to better look at that object, as it needs to manipulate it, without having to deal with some unnecessary baggage.

"The idea is the whole pipeline of doing grasping is only a few lines of code," says Gupta. "That's what makes it easier for a computer vision or machine learning researcher."

This method however, has a drawback.

While abstraction is a good thing, but in practice, when a robot breaks, the researchers need to go deeper. And here, abstraction can get in the way, as they can't dive into the codes easily. When something goes wrong, researchers need to unpack the program the robot uses, and this involves the researchers in breaking down the abstraction.

Another problem has to do with security. ROS and PyRobot don't come with any built-in security features. But it’s worth noting that the next version of ROS will come with robust security, its creators said.

Read: Paving The Roads To Artificial Intelligence: It's Either Us, Or Them

Published: 
21/06/2019