I am preparing a new show with Poppy humanoïd in less than 1 month. My Poppy humanoïd was using the old ODROID U3 which is the faster to send orders to all the motors.
The first one I had died one year ago but the second one (last) died last friday.
As the ODROID U3 has no support… pure moment of panic
So, I have to switch to Raspberry Pi 3B+ and I always have the issue about lag on the serial port. I have to really solve this issue. I did some tests :
- plug the Poppy on a laptop with Windows 10 : no lag => the issue is due to computer, not due to motors or wires
- plug only two motor : very small lag => it may be due to the number of motors
- changed to /boot/cmdline.txt with dwc_otg.speed=1 => same lag
The command I use the pilot the robot is this single script : https://github.com/ThotAlion/FIRE/blob/master/poppy_server/brain2.py
I just update the position of each motors at 50Hz.
I did a new test with the new dynamixel SDK : https://github.com/ROBOTIS-GIT/DynamixelSDK
and only two motors, there is no lag with respect to pypot.
To confirm I will convert my script using dynamixel SDK.
For information, this SDK can pilot protocol V1.0 and V2.0 on the same serial port.
I also had dependencies issues while installing pypot because it needs scipy with python 3.6. I know python 2.7 will no longer be maintained but for the moment, I cannot install pypot… double panic
Could it be possible to isolate the serial communication with dynamixel, is it a bad idea ?