Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| pepper-imitation:pepper-imitation [2018/06/28 19:57] – s4pepper2018 | pepper-imitation:pepper-imitation [2018/06/28 20:18] (current) – s4pepper2018 | ||
|---|---|---|---|
| Line 11: | Line 11: | ||
| {{: | {{: | ||
| - | As such, the project is made up of two main pillars, namely: | + | As such, the project is built on top of two main pillars, namely: |
| - | * Body pose detection: Windows Kinect V1 was the sensor chosen for this task. | + | |
| - | * Robot control and synchronization. | + | |
| Body pose detection was entirely done using publicly available software. Thus, the main focus of our work was to familiarize ourselves with the robot itself and synchronize all the tasks, as well as fine-tune everything, taking into account the nature of the project and the target subjects. | Body pose detection was entirely done using publicly available software. Thus, the main focus of our work was to familiarize ourselves with the robot itself and synchronize all the tasks, as well as fine-tune everything, taking into account the nature of the project and the target subjects. | ||
| Line 21: | Line 21: | ||
| ===== Installation and Set Up ===== | ===== Installation and Set Up ===== | ||
| - | The code is fully available [[https:// | + | The code is fully available [[https:// |
| The repository above contains two ROS packages at the root folder level: | The repository above contains two ROS packages at the root folder level: | ||
| - | * openni_tracker: | + | |
| - | * pepper_imitation: | + | |
| Dependencies (and even ROS itself if not present in the system), can be installed running installDependencies.sh in pepper_imitation/ | Dependencies (and even ROS itself if not present in the system), can be installed running installDependencies.sh in pepper_imitation/ | ||
| Line 38: | Line 38: | ||
| The system is made up of the following nodes: | The system is made up of the following nodes: | ||
| - | * pepper_audio_player_node: | + | |
| - | * pepper_face_tracker_node: | + | |
| - | * pepper_tts_node: | + | |
| - | * pepper_tablet_node: | + | |
| - | * pepper_imitation_node: | + | |
| - | * pepper_teleop_joy_node: | + | |
| - | All this nodes can be run separately and commanded by publishing in their respective topics, allowing a Wizard of Oz-ish level of control. | + | All these nodes can be run separately and commanded by publishing in their respective topics, allowing a Wizard of Oz-ish level of control. |
| The actual game and synchronization is achieved by means of a state machine, defined in " | The actual game and synchronization is achieved by means of a state machine, defined in " | ||
| Line 56: | Line 56: | ||
| * Pepper prompts the user to do as him, and assumes a given pose sync'd with the music. | * Pepper prompts the user to do as him, and assumes a given pose sync'd with the music. | ||
| * Now, two possible scenarios can follow: | * Now, two possible scenarios can follow: | ||
| - | * The player adopts a pose similar enough. Then Pepper will encourage him to keep going, and the son g continues. | + | * The player adopts a pose similar enough. Then Pepper will encourage him to keep going, and the song continues. |
| * The player does not make a similar pose, or the body pose is not detected properly. In this case, Pepper will ask the player to focus and try again, and the music will go back to the previous part. | * The player does not make a similar pose, or the body pose is not detected properly. In this case, Pepper will ask the player to focus and try again, and the music will go back to the previous part. | ||
| * If no skeleton at all is found, Pepper will tell the user that it cannot find him. Two more additional sub-scenarios are possible here: | * If no skeleton at all is found, Pepper will tell the user that it cannot find him. Two more additional sub-scenarios are possible here: | ||
| Line 66: | Line 66: | ||
| * The synchronization process is hardcoded. As such, correct synchronization will only be achieved if the same file is used (it is available in the robot' | * The synchronization process is hardcoded. As such, correct synchronization will only be achieved if the same file is used (it is available in the robot' | ||
| - | * The way openni_tracker publish the skeleton information (using TF frames following the convention < | + | * The way openni_tracker publish the skeleton information (using TF frames following the convention < |
| * As of now, only one person is tracked. However, adding multiple person' | * As of now, only one person is tracked. However, adding multiple person' | ||
| ===== Future Work ===== | ===== Future Work ===== | ||
| + | * The detection provided by the kinect and the openni libraries is not enough. The calibration phase is a limiting factor when interacting with the subjects. A possible solution to this would be to adopt body pose detection based on RGB data alone. An example of this would be [[https:// | ||
| + | * The concept of this game can be generalized a bit, using some simple config files. These files could define the audio file to be used and the time when each posture should be adopted. Postures may be defined here as well. | ||
| + | * Furthermore, | ||
| + | |||
| + | ===== Contact ===== | ||
| + | |||
| + | Álvaro Páez Guerra | ||
| + | |||
| + | paezguerraalvaro@gmail.com | ||