Facebook Now Wants A Play In Robotics, Launches The Open-Source Framework

Robotics has typically been constrained to experts in academia and industry with access to expensive and niche robotics systems. The robotics community has embraced a layered hierarchical software design from the early days and reusability has been a core design principle.

With automation posing as an alternative to many mundane tasks, the knowledge of robotics does come in handy. However, learning robotics is not a straightforward task. Building robots requires knowledge of engineering mechanics, computer vision to begin with. So in order to make the technology available to the users without domain expertise, Facebook came up with a novel framework — PyRobot.

Though there have been several motion planning libraries such as OpenRave, MoveIt!, OMPL which provide hardware-agnostic core functionalities that can be compiled for each specific robot, PyRobot offers abstraction like never before.

An Easy-To-Use Framework

PyRobot is designed to easily accommodate common robotic manipulators and mobile bases. The researchers behind this work, began with the goal of abstracting away the low-level controls for individual robots from the high-level motion generation and learning in an easy-to-use way. 

PyRobot comes with the utility functions like joint velocity control, joint position control, joint torque control, cartesian path planning, forward kinematics and inverse kinematics that form the fundamentals of building.

PyRobot System Architecture

Currently, PyRobot supports LoCoBot, which is a low-cost mobile manipulator suitable for both navigation and manipulation. Each robot has a configuration file that specifies the necessary robot-specific parameters: joint names, to get state and set commands, base frame, end-effector frame, planner configuration, inverse kinematics solution tolerance, whether it has an arm or base or camera, etc

Interfacing a new robot with PyRobot can be done in four steps:

  1. Create a new configuration file. The configuration file name should follow the following naming convention: <ROBOT_NAME>_config.py. The easiest way to create this file is to inherit the pre-defined configurations in src/pyrobot/cfg/config.py
  2. Inherit the PyRobot parent classes (Arm, Gripper, Camera, Base)
  3. Write unit tests
  4. Add examples

Establishing An Ecosystem

Benchmarking in robotics is extremely challenging given the vast scope of applications and diversity of physical test conditions (hardware, objects, environment, etc.). 

Compared to other fields, benchmarking in robotics is challenging and PyRobot’s unified API and LoCoBot’s standard hardware will allow researchers to share their high-level algorithmic implementations, models and datasets collected on a real robot. 

Using PyRobot will allow users to run robots without having to deal with the robot specific software along with enabling better comparisons.

Though PyRobot abstracts away the complexity, users still have the flexibility to use components for commanding low-level velocities and torques This will allow researchers to collaborate and iterate faster on robotics applications. 

Apart from the open software, LoCoBot works as affordable open hardware that can be easily assembled for use with PyRobot. While simulation is useful for software testing and running experiments, writing software that works on the real robot is the eventual goal of the field and has severe challenges. As more developers get access to open hardware and software, sharing high-quality applications tested on real robots can publicly become easy. The team behind PyRobot hopes that other researchers will find the PyRobot framework useful and contribute to it in the future.

How To Install

  • Install Python virtual environment

sudo apt-get -y install python-virtualenv



virtualenv --system-site-packages -p python2.7 $VIRTUALENV_FOLDER

  • Install PyRobot

cd ~

mkdir -p low_cost_ws/src

cd ~/low_cost_ws/src

source ~/${virtualenv_name}/bin/activate

git clone --recurse-submodules https://github.com/facebookresearch/pyrobot.git

cd pyrobot/

pip install

You can read more about PyRobot here.

Download our Mobile App

Ram Sagar
I have a master's degree in Robotics and I write about machine learning advancements.

Subscribe to our newsletter

Join our editors every weekday evening as they steer you through the most significant news of the day.
Your newsletter subscriptions are subject to AIM Privacy Policy and Terms and Conditions.

Our Recent Stories

Our Upcoming Events

3 Ways to Join our Community

Telegram group

Discover special offers, top stories, upcoming events, and more.

Discord Server

Stay Connected with a larger ecosystem of data science and ML Professionals

Subscribe to our Daily newsletter

Get our daily awesome stories & videos in your inbox

6 IDEs Built for Rust

Rust IDEs aid efficient code development by offering features like code completion, syntax highlighting, linting, debugging tools, and code refactoring