This is an old revision of the document!


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.

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

Poppy humanoid

The configuration file used for this robot is available here poppyconfig.zip. The main differences with the original configuration are:

  • The offsets have been adapted to our robot
  • The robot has been configured to be controlled symetrically (the same command will give the same result for the left and right parts)

You can see below a picture representing the joints of poppy and the control policy:

Here is the tab you saw on the right side of the image in text:

IDs Joint Effect of increasing angle
15, 25 ankle_y lower foot
14, 24 knee_y bend knee
13, 23 hip_y turn leg backward
12, 22 hip_z turn leg outward
11, 21 hip_x raise leg sideway
31 abs_y lean forward
32 abs_x lean to right side
33 abs_z turn to the left
34 bust_y lean forward
35 bust_x lean to right side
41, 51 shoulder_y turn arm backward
42, 52 shoulder_x raise arm
43, 53 arm_z turn arm outward
44, 54 elbow_y lower forearm

Here is a piece of code testing all joints of the robot: test_poppy.zip

(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.

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.1450175310.txt.gz
  • Last modified: 2019/04/25 14:08
  • (external edit)