Poppy robot

Poppy robot is a humanoid robot that can be used with its hardware platform or with a simulator. It can be programmed with python, using the pypot library, or it can also have a web interface with snap.

Quick links

We currently have 2 Poppy robots:

  • a Poppy-torso : this Poppy is already assembled, except for the inside of the head. This Poppy-torso can be used with 2 legs or a suction pad with lever arm to stick the robot to a flat surface. We still need to setup the camera and microphone and the embedded computer inside the head and assemble the suction pad.
  • a Poppy-humanoid: a full-body humanoid with the legs. All the parts are nearly assembled. We still need to setup the camera and microphone and the embedded computer inside the head. From February 2017, the Poppy humanoid has been upgraded to its new version. The novelties are:
    • 3D parts below the hip motors to increase amplitude of legs motion.
    • Modified wrists with to new motors XL-320 for each. Now, Poppy can move the hands.
    • A speaker is now integrated in the head. It allows Poppy to speak.
    • A screen is also integrated in the head to display eyes of Poppy.
    • The Odroid XU 4 has been replaced by a Rasberry Pi 3.

We have 2 embedded Odroid processors for our Poppy robot:

PoppyMotorNamingConvention

Set up the hardware

Set-up the software

Poppy uses pypot for control. It is a python library : http://poppy-project.github.io/pypot/index.html On the top of pypot are libraries for Poppy creatures : https://github.com/poppy-project

The quick install consists in:

  • install pypot :
     sudo pip install pypot 
  • install your popppy creature. For instance for poppy humanoid :
     sudo pip install poppy_humanoid 
  • to check that the libraries are installed correctly, execute with python the code:
    from poppy_humanoid import PoppyHumanoid
    poppy = PoppyHumanoid()

A good guide can be found here: https://github.com/HumaRobotics/poppy-examples/blob/master/doc/softwareGuide/softwareGuide.pdf. More technical details for your first start of Poppy, after installation of pypot, you can also look into poppy_software

A poppy simulator is available with vrep simulator. the installation and the control part.

In details, this is what I did

The configuration file used for the robots are available here poppy-config.zip.

The main differences with the original configuration are:

  • The offsets have been adapted to our robot
  • The angle limits have been adapted to our robot

(note: the head is not working when using all other joints)

If you want to change the configuration of Poppy, here are a few explanations about the trickiest parts:

  • The angle limits are absolute and do not depend on the offset or orientation (therefore, if you want to set them using pypot, make sure to initially set the orientation to direct and the offset to zero)
  • The offset does depend on the orientation (if you need to set it using pypot, I recommend you to initially set it to zero and set the orientation you chose)
  • The orientation will only change the sense of rotation of the motor (be cautious when you switch it as you will have to change the offset to its opposite if you want to keep the same initial pose)

NB: The angle_limit that appears when you look at the corresponding value of a pypot Motor (for example ergo.l_elbow_y.angle_limit) are relative to the offset and orientation.

With the new version of the robot from february 2017, our customized configuration is no more valide and the configuration from pypot (PoppyHumanoid) can be used.

http://nbviewer.ipython.org/github/poppy-project/pypot/blob/master/samples/notebooks/Controlling%20a%20Poppy%20Creature%20using%20SNAP.ipynb

Commands to use Poppy on the simulator vrep and program it with Snap!

Poppy-Torso with snap Poppy Humanoid with snap
1st way: terminal command
poppy-services --vrep --snap poppy-torso
poppy-services --vrep --snap poppy-humanoid
2nd way : python command
from poppy.creatures import PoppyTorso; 
poppy = PoppyTorso(simulator='vrep', use_snap=True) ;
poppy.snap.run();
from poppy.creatures import PoppyHumanoid;
poppy = PoppyHumanoid(simulator='vrep', use_snap=True); 
poppy.snap.run();

All articles on Poppy:

2018/10/25 09:52 Kone
2019/09/06 14:54 Loan Guilbaud
2019/07/08 16:46 Mai Nguyen
2015/10/28 16:14 Nicolas Favé
2020/05/29 22:13 Mai Nguyen
2018/08/01 17:11 Mai Nguyen
2016/02/19 00:09 Mai Nguyen
2016/01/20 10:29  
2017/03/03 15:48 Maxime Devanne
2015/10/28 13:01  
2015/12/02 14:45 Mai Nguyen
2016/06/20 07:23 Projet s4 projet 12 année 2016
2015/10/28 13:01  
2015/10/28 13:01  
2017/08/28 21:22 Projet s4
2017/08/28 23:35 Projet s4
  • poppy.txt
  • Last modified: 2019/09/23 08:38
  • by mai