Wiki source code of Humanoid Robot

Version 11.1 by Tim Huisman on 2022/04/02 21:56

Hide last authors
Tim Huisman 10.1 1 === Robot choice ===
Tim Huisman 11.1 2 As described in [[objectives>>https://xwiki.ewi.tudelft.nl/xwiki/wiki/sce2022group02/view/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.
Tim Huisman 3.1 3
Tim Huisman 7.1 4 Although [[Nao>>https://www.softbankrobotics.com/emea/en/nao]] is a cute, humanoid robot which 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.
Rohan Sobha 2.1 5
Tim Huisman 7.1 6 [[Pepper>>https://www.softbankrobotics.com/emea/en/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.
Tim Huisman 3.1 7
Tim Huisman 7.1 8 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)>>https://doi.org/10.1109/MRA.2012.2192811]]. This may cause unexpected modals of interaction with the robot that cannot be accounted for.
Tim Huisman 3.1 9
Tim Huisman 8.1 10 [[Miro>>https://www.miro-e.com/robot]], 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. By allowing the user to go on fun walks, responding to personalised voice commands and responding positively to the patients' touch, it will become a trusted friend. More information and research on why MiRo is suitable for our goal can be found in [[Robotic partner>>https://xwiki.ewi.tudelft.nl/xwiki/wiki/sce2022group02/view/Foundation/Human%20Factors/Robotic%20Partner/]]
Laura Ottevanger 9.1 11
12 ==== What can the Miro do ====
13 The MiRo is a small dog-like robot on two wheels. Due to MiRo having wheels, he can roll around on a non-black table and uncarpeted floors. He is able to move his ears to the side and to the front. He can wag his tail and move his tail up a little bit. MiRo has a lot of movement of his head, he can move his neck up and down and he can move his head left, right, up and down. MiRo can also blink fast and slow. 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.
14
15 MiRo has a couple of sensors, it has touch sensors on the head and body, Cliff sensors and proximity sensors.
16
17 ==== Limitations of MiRo ====
18 In this section, we will describe problems that we have encountered with MiRo and solutions to these problems.
19
20 ===Programming difficulties===
21 When using Mirocloud, there are two possibilities: the first one is blockly which is block-based programming, one can also convert that code to Python or just program Python.
22 Blockly is mainly created to teach children on how to program, when using Blockly some problems can be encountered. One of the problems that we've encountered is 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.
23 One can also use Python directly. Unfortunately the Python environment is a Sandbox. One can not use external modules (and thus not import things) so only basic Python code can be used.
24
25 The other option 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 (todo: Add setup guide?). When it has been installed, it is difficult to use the MDK as accessing the robot and coding it is very difficult.
26
27 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. It will give an error that cameras can't be accessed. Finally, MiroCloud will give an error on chromium based browsers, we have solved this issue by using Firefox.
28
29 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 could represent a dog.
30
31 ===Working with the MiRo robot itself===
32 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. When using the MiRo on a table, be careful because the Cliff sensor won't always work. MiRo can also not run on black tables as the Cliff sensor will only detect Cliffs and MiRo wil not be able to roll.
33
34 We have noticed that the MiRo robot has a bit of a weak neck. It will drop when rolling around or will move weird when the head is being touched. Thus one needs to be careful when "petting" the MiRo.
35
36 ===Wizard of Ozzing===
37 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 >> http://labs.consequentialrobotics.com/miro-e/docs/index.php?page=Husbandry_MIROapp_Home_page_Remote_settings_dialog]]. On this page, one can also found which controllers can be used. The controls are on the following page: [[PS4 Controls >> http://labs.consequentialrobotics.com/miro-e/docs/index.php?page=Husbandry_MIROapp_Controller_manager_Remote_controller]]
38