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

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.

  1. Downloaded vrep simulator
  2. Downloaded the software
    git clone https://github.com/poppy-project/poppy-humanoid.git
  3. in software folder, run
    sudo python setup.py install
  4. To check if everything is installed correctly, you can run the following code. If it runs without raising an error, everything is probably installed correctly:
     from pypot.vrep import from_vrep
    from poppy.creatures import PoppyHumanoid
  5. To instantiate poppy in vrep
    1. Open vrep
    2. run the following code in python:
      from poppy.creatures import PoppyHumanoid
       
      poppy = PoppyHumanoid(simulator='vrep')
    3. check the communication is fine with the following code:
      poppy.motors
       
      poppy.l_shoulder_y
       
      poppy.head_y.present_position
       
      [m.present_position for m in poppy.motors]

Test the installation :

  1. To test that you can control poppy (its head):
    poppy.reset_simulation()
    poppy.head_z.goto_position(-45, 2)
  2. Now let's make the robot's head move.
    1. In python run the control code:
      import time
      import math
       
      current, goal = [], []
      amp=60
      freq=0.5
      t0 = time.time()
       
      while True:
          t = time.time()
       
          # run for 5s
          if t - t0 > 50:
              break
       
          poppy.head_z.goal_position = amp * math.sin(2 * 3.14 * freq * t)
       
       
          current.append(poppy.head_z.present_position)
          goal.append(poppy.head_z.goal_position)
       
          time.sleep(0.04) 
    2. then plot the goal and actual positions:
      import numpy 
      from matplotlib import pyplot
      t = numpy.linspace(0, 5, len(current))
      pyplot.plot(t, goal)
      pyplot.plot(t, current)
      pyplot.legend(('goal', 'current'))
      pyplot.show()

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