ROS Motion Builder project

PAL Robotics has created ROS Play Motion Builder to make it easy to create motions in robots. This successful launch has been one of the results of work in a series of ROSIN EU projects that PAL Robotics is taking part in.

The ROSIN (ROS-Industrial) open call is a series of EU research projects where third parties have the opportunity to work on ROS industrial development. ROS, the Robot Operating System, is arguably the Open Source Software stack most commonly used by today’s robot builders. It can be commonly found in service robots and drones, as well as adding value to industrial robotics and automation.

ROS-Industrial originated in 2012 to apply Open Source to Factory Automation through ROS, and it has successfully grown into a worldwide initiative supported by three regional Consortia. ROSIN, a project funded by the European Union’s Horizon 2020 research and innovation programme, aims to increase its impact by making ROS-Industrial better and even more business-friendly and accessible.

Within the ROSIN project series, PAL Robotics has been working on the ROS Motion Builder project, resulting in the launch of the Play Motion Builder tool which is now available on GitHub, with full documentation on wiki ROS also available.

The purpose of the project has been to develop a tool to:

  • Enable developers to easily create motions in a robot.
  • The tool makes building motions easier, as it’s not necessary to write the robot motions from scratch (which can be a complex process).
  • This tool is very easy to use – as only around 15 minutes of training is needed to learn how to use it.

ROS Play Motion Builder tool

This tool presents a simple interface to create play_motion based motions by defining lists of keyframes which the system will then interpolate between. The tool simplifies capturing, editing and modifying these keyframes, without making any assumptions on how the robot is being positioned, which makes it ideal to be integrated with any other control mechanism, such as gravity compensation, to simplify the motion capture process.

The features of Play Motion Builder tool include:

  • Creating / Loading Motions
  • Adding, Editing and Deleting keyframes
  • Positioning the robot in any keyframe
  • Managing joints and groups used for the motion
  • Executing the motion at different speeds for testing purposes
  • Generating a play_motion compatible YAML file to store the motion

This tool brings the simplicity of keyframe-based animation to the robotics world in a simple and adaptable way. Play Motion Builder is developed by PAL Robotics and our robots that use ROS are: ARI (our latest social humanoid robot), TIAGo, (our most popular research robot for perception, navigation, manipulation and HRI), TALOS (a full-size humanoid research robot that is one of the most sophisticated of its kind), REEM-C (full-size biped humanoid robot designed as a research platform), and the TIAGo Base Family of robots (AMRs with advanced sensors and software for intralogistics, business and public spaces). The Play Motion builder tool is also compatible with any other robot that uses ROS.

All robots by PAL Robotics

This project is composed of a Message definition library to represent complex motions in message form, and a backend core to manage the capture, modification and editing of the motions, all controlled from simple Service and Action interfaces to allow for easy integration into your own environment. This project makes use of the play_motion project (to execute the motions), the moveit project (to define groups of joints to be moved together) and the joint_state_publisher project (to be able to capture the current pose of the robot).

An RQT-based GUI, which provides a simple and intuitive interface for the end user, has been developed. Using this GUI you can start creating your own motions right away.

In addition a Javascript library has been developed based on RoslibJS to provide this functionality to a web-based frontend. Along with this library a simple example GUI has been developed, which can be used as-is to provide the same functionalities as the RQT GUI provides on a web environment, or to use as a guide on how to use the JS library to integrate on your own web-based projects.

How to get started with ROS Play Motion Builder

The steps to get started are:

  1. Install play_motion_builder: apt-get install ros-melodic-play-motion-builder
  2. Optionally, install the RQT-based frontend: apt-get install ros-melodic-rqt-play-motion-builder
  3. Once installed you can run the main node by executing: rosrun play_motion_builder play_motion_builder_node
  4. Finally, if you installed the RQT frontend, you can start the GUI by running: rosrun rqt_play_motion_builder rqt_play_motion_builder

View Play Motion Builder on Wiki ROS.

See Play Motion Builder and find the code for this project on GitHub.

In addition to the ROS Motion Builder project, PAL Robotics works on many EU-funded research projects covering areas such as smart cities, factories of the future and Artificial Intelligence (AI).To read more about EU projects we partner in, visit our collaborative projects webpage. We are also always on the lookout for new potential project partners, to ask more, don’t hesitate to get in touch.

Was this article useful to you? Don’t miss out all our other posts on robotics in our blog!