Since we introduced Reachy about a year ago (beginning of 2020), its design has always been the center of all the attention. People find it expressive, cute and full of emotions. They are eager to interact with it. They instantaneously personalise the robot. They don’t need any user instructions to understand what the robot is doing, what is the interaction about.
At Pollen Robotics, design is at the heart of our approach. When we create a robot, we take special care of the interaction, the emotion and expressiveness. To us, this is key to leverage a natural and fruitful human-robot interaction and collaboration as it makes the whole process natural, easy to apprehend, efficient, but also better for acceptance. No-one will use social robots if the interaction feels awkward or is hard to understand.
This is obviously a very broad and complex topic, however we have always followed one guideline: to get inspiration from living creatures. By this I mean to study how they interact with their environment and to extract the essence of what makes it work so well. Note that we’re not trying to directly imitate — it would be an impossible task as it is too complex and we would probably miss what’s really important.
This above statement most likely feels really abstract to you right now. Let me illustrate it with a very tangible example: how we designed Reachy’s neck based on the Orbita actuator.
The need for a specifically designed robotic neck
The classical Pan-Tilt system
The first solution we developed for Reachy’s neck was a pan-tilt system. This is a very common solution for robotic necks as it is easy to integrate and to use.
Pan-tilt systems have 2 rotations that roboticists call degrees of freedom (usually noted 2-DOFs). Each of this rotation is actuated by a single motor. This allows the head to rotate from left to right and from top to bottom. Combining these rotations gives the robot the ability to look around itself. The two motors are typically placed one after the other as a serial system, which is quite simple to control and to integrate in a robot.
But while being simple to design, produce and control, this system has some significant limitations. To understand them, as I promised in the introduction, we will go back to studying the neck of a living creature.
Keep the head straight
First, this may not be obvious if you never thought about this, but the main role of the neck is to always maintain our head straight. Having a stable head is actually a critical feature, selected by years and years of evolution. This plays a key role, in locomotion, visual flow and tracking (how predators assess preys for instance). The commercial below illustrates how amazingly good some animals are at stabilizing their head:
A pan-tilt is ok as long as your body doesn’t really move. But when it does, you need that third degrees of freedom to make sure your head stays horizontal!
For the moment, our robot Reachy doesn’t have locomotion capacities, however we plan to add such feature in the near future. On top of that, it is important to note the purpose of the neck is not only for maintaining the head horizontal…
Communication and conveying emotions 🤣
As you can now gather, species evolution has designed us humans with a 3D-actuated neck for vision purposes. On top of that, we developed further critical uses for this neck. Our head and its orientation plays a central role in communicating and conveying emotions. Our face (eyes, mouth, eyebrows) already conveys most of it, but our head itself is also important. Sure, we would also understand the meaning of 🤣 if the head was straight, but the tilt makes it much more impactful.
Some of the expressions conveyed by our neck can be reproduced by a pan-tilt system. But they often fail looking natural, realistic and aesthetical. To go even further, there are moves that we, humans, often do and that are simply impossible to operate with a 2-dof neck.
The head bending left can mean empathy, sweetness and sometimes seduction; bending right, it can mean questioning or disagreement, etc…
These are examples of rotations on one axis, but conveying any emotion usually remains more complex and implies all 3 rotations at once.
That was the main drive for us to design Orbita: we need the 3 degrees of freedom of a human neck to allow Reachy to display a full range of emotions.
What is Orbita?
As we explained above, for our neck, we need those 3 degrees of freedom. So, to actuate this 3-DOF joint, we need 3 motors. Moreover, we don’t want a slow or insufficiently accurate neck for a head supposed to track objects, glance at several people and that for a long moment. What we want is a fast, strong actuator, with smooth and clean trajectories.
On many robots, the 3 degrees of freedom are given by serial systems composed of 3 motors placed one after the other. We first thought about this solution but we noticed that it leads to three main issues:
- The three rotations are not on the same point in 3D space, and they will offset one another. This is not equivalent to how the human body moves, and can lead to situations where rotations are not made simultaneously and thus look awkward.
- Gimbal Lock phenomenon can be observed by combining some rotations, which makes us lose one DOF.
- Placing 3 motors one after the other is not efficient at all since the first motor has to carry the two others. Plus, the system gets bulky and doesn’t look elegant…
After this observation, we chose the alternative: we placed the motors next to another to make them work together, so that the rotations are combined in only one motor, at the same point in 3D space. No more shift between the motors, no more motor carrying the others. This is called a parallel system and also it’s more powerful and accurate than serial systems, it is much more complex to design and control…
At Pollen Robotics, we love mind-blowing systems that show simple yet beautiful design. So a neck with a 3-DOF serial system was not going to do the job in making Reachy look pretty and would even limit the span of its expressions! Turns out, a parallel and compact system would be much more aesthetically pleasing to see and an exciting challenge to design and control.
Since no such actuator is commercially available today and existing ones (like the Parloma Wrist or these marine propulsor) are still in prototyping stage (and not compact enough to suit Reachy anyway), we created our own mechanical structure and control method!
How does Orbita work?
The mechanism of Orbita is based on three motors simultaneously actuating 3 disks.
The disks are cylindrical parts with bearings inside to roll well one on the other. They also have a gear included that controls motor speed and torque through a pinion. Then, arms are connected to the disks to transmit the rotation to the end effector through three connecting points. The end effector could be a head, a hand or anything you want, as long as it has 3 threaded holes to connect Orbita’s arms on it.
To sum up: the motors make the disks rotate, then the disks make the arms rotate to actuate an end-effector.
The particularity of Orbita compared to other comparable actuators is that the gears are inside the mechanism and not outside. Thus, Orbita is more compact, independent of the external elements and can be placed anywhere.
Ok, but how do I control this?
Roboticists are used to control robots’ rotations with Euler angles that represent rotations on the X, Y and Z axis of the effector’s frame that we call Roll, Pitch and Yaw (RPY). They are very convenient to make simple rotations, since each motor corresponds to one of the RPY rotations. But they become more complex to use and visualise when we need to compute several rotations at the same time.
To simplify the computation of the rotations of Orbita’s effector, we made a control method based on another mathematical tool which is the quaternion.
A quaternion is a mathematical representation of the rotation of a certain angle around a certain vector, using only the vector’s 3D coordinates and rotation angle.
Quaternions can be described with the next mathematical expression:
q = w + xi + yj + zk
w, x, y and z parameters are calculated from the axis V = (a, b, c) which is a vector and the angle of rotation α on this axis as follows:
Then, the coordinates of each basis vector (X, Y, Z) of the effector’s frame after the rotation can be easily obtained by a simple quaternion multiplication. See the example below with the X axis:
You may have noticed that quaternions look like complex numbers with 3 imaginary numbers. But fear not, there is an explanation for that. With a complex number, you can make a vector rotate on a 2D plan, while quaternions allow a rotation in 3D space plus a rotation on the vector’s axis.
Quaternions are very convenient because they allow to simply compose several rotations as one (thanks to the multiplication associativity). They also avoid annoying phenomenons like gimbal lock.
The 3DOFs combined with this powerful representation allow very simple yet powerful 3D visual servoing.
Let’s assume you want Reachy to gaze and eye follow an object and that you are able to get the 3D position over time (x, y, z).
All you need to do is to compute the quaternion needed to make the X vector (the X axis corresponds to the forward arrow) point toward X’=(x, y, z). It can be done as follows:
What now ?
With Orbita, Reachy is able to see everything that a pan-tilt neck would allow him to see and much more! Its neck is powerful and accurate so that we can control the head’s orientation in the 3 dimensions without having a hard time moving quickly or targeting a precise position in space. In addition, the design of Orbita offers a sophisticated and elegant appearance to Reachy that attract people and invite them to interact.
Orbita is not just a 3-DOFs actuator used for its dynamical performance, even if it’s already a great breakthrough. Used as a neck, it leverages the design of realistic and expressive head motions that improve user experience with Reachy.
It is likely that the same features would prove useful placed on other articulations of the robot. For instance, when humans speak to communicate, they also move their hands in very complex and meaningful ways. For this reason, we have already experienced Orbita as a wrist. We are also looking into using it a more powerful version of Orbita to actuate a shoulder. These improvements would further enhance the realism of Reachy’s motion, its dynamical performance and, of course, its loveliness =)
Creative R&D mechatronic engineer at Pollen Robotics, I like to work mainly on robotic mechanical design, but also on the electronics and control of robots. You can usually find me at a surf spot nearby 🏄.
About Pollen Robotics
We build accessible and open-source technology for the real world.
For new technology to have a positive impact, transparency and cooperation matter. Back in 2013, we started with Poppy, the first 3D printed open-source humanoid robot and since then, we have been dedicated to creating open-source, open science and open data products. We work with scientists, artists and innovators to explore usages and make the robotics revolution an opportunity for everyone.