Humanoid Robot

Last modified by Laura Ottevanger on 2022/04/05 13:53

This section starts with an explanation of why we chose the MiRo robot for this project, after which we describe our experiences with working with MiRo in detail.

Robot choice

As described in objectives, our goal is to give patients with dementia the autonomy and capability to take walks on their own, whenever they want. Three robots were made available to help us in achieving this goal: NAO, Pepper and MiRo. This section contains a description of our considerations in choosing a robot suitable for our objectives, after which we describe the capabilities of the chosen robot.

Although Nao is a cute, humanoid robot that could allow for nice interactions with our patients, it can only move by walking on its small robot legs. As our main goal is to facilitate walks, this robot did not seem suitable as its walking speed is low and it is likely to fall over with small bumps.

Pepper is a larger humanoid robot with wheels, therefore not having the same problem NAO has. It has fully movable arms and a tablet on its chest, allowing for detailed interactions including gestures and user input. Although these features are nice, they are not required for our goal. These features also mean that Pepper is quite large, taking up a lot of space in each room or corridor.

Next to their unsuitability for taking walks, the abovementioned humanoid robots also have facial features and movements which lie in the uncanny valley (Mori et al., 2012). This may cause unexpected modals of interaction with the robot that cannot be accounted for. 

MiRo, on the other hand, is a small robot dog with wheels. We ultimately chose MiRo because it has all the necessary features to facilitate walks, without any downsides. Next to this, a dog is automatically associated with taking a walk. Also, the robot dog has dog like features, allowing it to respond to touch, make noises and move certain parts to resemble a dog.  Its dog-like appearance and its ability to act like a dog will allow the dog to become a companion. More research on why a dog-like robot could be a suitable robotic partner can be found in the Robotic partner section.

Working with MiRo

MiRo's capabilities

The MiRo is a small dog-like robot that has two wheels, allowing him to drive around. Next to this, MiRo has multiple moveable parts. He is able to move his ears to the side and to the front, he can wag and move his tail up a little bit, and he can move his head. By combining neck movement and the tilting of his head, he can do a wide range of motion with his head. Additionally, MiRo can blink with his eyes. 

Aside from movement, MiRo has some small lights on his back and face which can be controlled. MiRo can also make sounds when the amount of Hertz is defined.
Finally, MiRo has a couple of sensors. His eyes contain two cameras, allowing him to see and recognize coloured objects. He also has proximity sensors and cliff sensors that guard him against driving off edges, and finally, he has touch sensors spread across his head and body.

Limitations of MiRo

Although these capabilities listed above seem promising, we experienced quite a lot of problems while working with MiRo. This section describes these problems and how we handled them.

First of all, we noticed that the MiRo is not able to roll around on the floor of the Insyght lab. It is only able to run on smooth floors or tables. Due to MiRo having tiny wheels, MiRo can only be used inside as it cannot go up steps or walk on any rough terrain. With the right robot, PwD could also take walks outside. When using the MiRo on a table, be careful because the cliff sensor does not always work. We also found that MiRo can not drive on black tables. The black underground will cause the cliff sensor to constantly detect cliffs, causing MiRo to only drive backwards.

Next to this, MiRo is a very frail robot that cannot withstand any handling rougher than soft touches. MiRo has a bit of a weak neck; it will drop when rolling around or will move weirdly when the head is being touched. Thus, one needs to be careful when "petting" the MiRo, as you do not want to damage such an expensive robot. The frailty of MiRo also implied that any physical connection to MiRo such as a leash would likely result in damaging a €2,400 robot.   

Programming difficulties

The creators of MiRo have set up MiRoCloud to allow people to determine the behaviour of MiRo. When using Mirocloud, there are two possibilities: using the block-based programming method 'Blockly', or coding the behaviour in Python. Blockly is mainly created for the purpose of teaching children how to program. The ease of use that this brings severely hinders the capabilities of MiRo, as you can only execute blocks in sequence. You can also start creating MiRo's behaviour in Blockly and then convert this to Python code, but we noticed that Blockly does not always create runnable code. For example, if one is using arrays/lists, Blockly can accidentally place NaN when trying to access an item from the list. You can also write the behaviour in Python directly, but unfortunately, the environment is a Sandbox. You can not use external modules (and thus not import things), so only basic Python code can be used. Furthermore, we have noticed that MiroCloud breaks a lot, either on the PC itself or in connecting with the robot. A lot of the time, MiroCloud will give an error when trying to send code to the Robot (such as 'camera's can't be accessed'). MiroCloud also gives an error on Chromium-based browsers, which can be solved by using Firefox. Finally, we have tried to get the robot to make sounds ,but we were only able to send specific Hertz ranges to the robot for a certain amount of time. Unfortunately, we were not able to get a sound that resembled a dog.

The other option for controlling MiRo is to not use the MiroCloud system, but to try to install the MDK and use it. Unfortunately, this proved to be very difficult. A set-up guide can be found here. When it has been installed, it is difficult to use the MDK as accessing the robot and coding it is very difficult. Unfortunately, we did not manage to get this running after a number of tries, and instead focused on developing the idea of our solution further.

Wizard of Ozzing

The MiRo robot can be controlled with certain PS4 controllers. We have noticed that PS5 controllers will also work but the head can't be controlled as that one is mapped to the triggers and they need to be held in the middle to keep the head of the MiRo in the middle. Pairing the MiRo with a controller can be used by following the steps on the following page: PS4 Setup. On this page, one can also found which controllers can be used. The controls are on the following page: PS4 Controls