Hi all,

Per some recommendations on here, I started digging into the PyPot project: https://www.poppy-project.org/en/

They offer a pretty solid python library for interfacing with Dynamixels: https://docs.poppy-project.org/en/pr...ng/python.html

Essentially, you can use it in two ways: the first is direct Dynamixel access using their low level API:

Or you can use their controller which creates a continuous sync loop which reads/writes data to the servos all the time. It does this with sync_write and the USB2AX's sync_read functions. This mode also allows you to create a configuration file to store a bunch of info like servo names, angle limits, offsets, torque limits, orientation, etc in a nice neat place.

I'm doing a fairly simple project with my MkII hexapod where, using an IMU, i'm keeping the body level while i tilt the ground (a tray) that the robot stands on. I'm using an RPi3 and USB2AX. For software its Raspbian Stretch with PyPot 3.03.

I have the project setup and functioning without the IMU. Basically i'm just rolling the body over time as a test. Everything works well, except that the servo movement is rather jittery. I've logged the position commands and they are smooth, but the reported present_positions appear to be sticking. I'm in the process of debugging this and unfortunately, the Poppy forums seem pretty dead. You can see the thread here if you're interested.

I think i will next create a version that uses the low-level dynamixel API to see if that helps. If so, i'll further debug the Controller method.