I’ve been going through the Poppy Ergo QuickStart tutorial and I’m having trouble communicating with the motors. I’m using windows 8. I have been able to find the motors using herborist and have given them IDs 1 through 6. The baud rates were already set to 1000000 and haven’t been changed. I can’t get the motors to move using herborist but everything else in herborist seems to work.
In pypot I have set the port and baud rate and used the command ‘print(dxl_io.scan())’ to scan for motors but no motors are found. I have used the usb2dynamixel and usb2ax which both allow me to find the motors using herborist but not using dxl_io.scan(). Does anyone have any suggestions?
I am now able to find the motors using scan. I had to add the use_sync_read=False to dxl_io like this:
dxl_io = pypot.dynamixel.Dxl320IO(port, baudrate, use_sync_read=False)
print(dxl_io.scan([1,2,3,4,5,6,7,8,9]))
Which returns the IDs as expected.
[1, 2, 3, 4, 5, 6]
But now when I run these commands:
import pypot.robot
ergo_robot = pypot.robot.from_config(my_config)
I get this error: DxlError: Could not find the motors (1, 2, 3, 4, 5, 6) on bus COM5.
The configuration I’m using is modified from the ergo_robot_config. I changed the actuator IDs, the actuator types, and the port. I’m wondering if there is still a problem with sync_read athough it is set to false in the config. Any suggestions?
The ergo_robot_config which is in pypot documentation is for the ergo robot (with MX-28), not the ergojr. The poppy-ergojr creature use Dynamixel XL-320 motors which use the new Dynamixel protocol named “v2”.
You have to add "protocol": 2 in the config file as you can see here.