[Assembly instructions] Motor naming convention and configuration

To be compatible with the software we are developing to control Poppy and contribute to the project, you should strictly follow the naming convention we established.

motor_naming_convention.pdf (1.3 MB)

Indeed, in the poppytools package, motors are named explicitly, for example:

class SitPosition(pypot.primitive.Primitive):
    def run(self):
        self.robot.l_hip_y.goal_position = -35
        self.robot.r_hip_y.goal_position = -35
        self.robot.l_knee_y.goto_position(125, 2)
        self.robot.r_knee_y.goto_position(125, 2, wait=True)

        for m in self.robot.torso:
            m.goal_position = 0

        motor_list = [self.robot.l_knee_y, self.robot.l_ankle_y, self.robot.r_knee_y, self.robot.r_ankle_y]

        for m in motor_list:
            m.compliant = True

Using the Dynamixel wizard or pypot Herborist, you just have to match the motors ids between our convention and your Poppy.
Then the configuration file will create the good motor names based on these ids when you will create the pypot robot:

import pypot.robot
from poppytools.configuration.config import poppy_config

poppy = pypot.robot.from_config(poppy_config)
1 Like

I just added a small README and example of udev rules for the usb configuration in utils/udev (poppy-software repo).
Following this guide (only for GNU/Linux) allows you to set a constant name for the usb bus devices (dev/poppy_lbus and /dev/poppy_tbus) with autodetection so you don’t have to constantly change the configuration file.

1 Like