An analytical diabolo model for robotic learning and control

Felix von Drigalski
OMRON SINIC X
Published in
4 min readNov 20, 2020
A diabolo being passed between human and robot player.

At OMRON SINIC X, we made two robot arms play diabolo and are preparing to release the simulation model, dataset and control algorithm.

In this article, we describe the idea behind the model, why we made it, and what it can do. The pre-print of our paper with all the details can be found here on arXiv.

What is a diabolo? How do you “play” it?

A diabolo is a juggling prop, similar to a large yoyo, made of two cups and an axle. It is played by accelerating it using a string between two sticks.

A diabolo (blue) and the two wooden sticks with string (orange) that are used for playing.

Due to its inertial dynamics, skilled players can perform a variety of tricks, like this, this or even this.

Why bother making a model?

We want to push frontiers in fine control and human-machine collaboration, and we wanted to see robots play diabolo. It is a complex system that we felt would make a great robot learning challenge. However, there were no simulators to train in, and training with real robot arms is expensive (and it can be dangerous for high-acceleration tasks like this). Consequently, we decided to create a model that we and others can use in simulation.

Simplifying the dynamics

The string is at the core of diabolo play, but simulating it is complex. Its friction depends on many parameters that are hard or impossible to measure, and the interaction is very dynamic and non-linear. We simplified the model with a simple idea: expressing the string as an ellipse.

With the two stick tips as the focal points, the ellipse describes all the positions that the diabolo can reach if the string is taut. In 3D, the ellipse becomes a spheroid.

Instead of simulating the physical string, we use an auxiliary spheroid (the 3D shape of the ellipse pictured above) to calculate the forces acting on and the movement of the diabolo.

The simulation model

We assume that the diabolo has distinct states, such as:

  1. On string” — the string is taut and restricts the diabolo from moving outside of the ellipse. Axle and string interact via friction.
  2. Loose off string” — the string is loose, but still safely between the diabolo’s cups. From this state, the diabolo always returns to the “on string” state if it moves outwards from the spheroid center. There is no friction between axle and string.
  3. Flying” — the diabolo is fully off the string, e.g. after being thrown. It can move past the spheroid limits. To return to the “on string” state, the diabolo needs to be caught (by placing the taut string under the falling diabolo).

Other states would include e.g. the string wrapping around the axle.

In the “on string” state, the string keeps the diabolo inside the ellipse, and the string movement along the axle accelerates/decelerates the diabolo.

The model in action, accelerating the diabolo

Applying the simulation model: Model-based Predictive Control (MPC)

The model can be used not only to train learning agents in diabolo play, but also to calculate stick-tip movements using an MPC approach. By using the velocity and position of the diabolo as the input and predicting its trajectory for different stick tip trajectories, we simply optimize for one that results in a desired motion. This is done by seeding the optimizer with an initial stick trajectory and tuning its keypoints until the diabolo attains its goal states (or gets close enough):

Internal representation of our proposed baseline method. Yellow: Predicted diabolo trajectory. Green: Goal states. White: Prediction until the start of the next trajectory. Red/Blue: Stick trajectories with keypoints. Red transparent: Spheroid (ellipse in 3D) used to calculate the string effects.

The generated stick trajectories were then converted to robot trajectories and executed to produce the video at the top of this article.

Where to go next?

The diabolo robot is symbolic of OMRON’s commitment to thinking deeply about the future of human-machine harmony. Besides exploring learning from demonstration and in simulation, future work will also include the tilt/yaw evolution (this is what makes the system unstable and challenging), wrapping the string around the axle, and training learning agents to compete with our baseline controller. We will also release the model as a stand-alone module and Gazebo plugin for learning. Drop us a line if you are interested in an early preview!

Internships at OMRON SINIC X

This work is the result of an internship by Devwrat Joshi from April to October 2020. In his own words:

The construction of the diabolo model presented me with many unique and interesting challenges, such as deciding on a model for the diabolo and calculating appropriate IK solutions for an underconstrained system (because only the stick tip positions and not the stick orientations were considered, leaving the IK problem unconstrained).

This internship was a valuable opportunity to gain experience in robot control and dynamic object manipulation. I learned a great deal about motion capture technology and the practical side of robot manipulation, in addition to diabolo juggling itself. I picked up a few programming tricks while writing the code for the project and a few juggling tricks from watching the resulting simulations. There is a long way to go, but it feels like a good start.

Would you like to make robots learn and do exciting things? Then send us your application at internships@sinicx.com and get in touch! More details are available here.

--

--