Controlling the MINI with OpenRB-150

1/20/2024

I settled on the physical layout as shown below:

IMG_025990

My software solution for the MINI is adapted from the one described in Section 2.13 of my Arduino Book (https://www.amazon.com/Using-ARDUINO-ROBOTIS-Systems-Ngoc/dp/0999391895), which was designed for a robot based on XL-430s set into Time-based Position Control. See picture of the A4WP-H robot below:

FrontTiltUp

The XL-320 of course does not have that Time-based mode, but the same data structure (numerical arrays) can still be used. So the Motion Data from the MINI Motion File is “transcribed” into a C/C++ array:

ReadyPose

float _READY_POSE[17] = { 390,0,0,-73.24,73.24,0,0,0,0,-26.37,26.37,29.3,-29.3,13.18,-13.18,0,0 };  // in ms & in degrees

Then it is only a matter of building a big Sync Write packet for all 16 XL-320s Goal Position values and then send it away into the DXL network. I used the Sync Time of 390 ms as a simple Time Delay (between Motion Frames - as shown in My Arduino book). Strictly speaking, this is not as “accurate” as the Time-based Control mode available with the XL-430, nor the Motion timing achieved when the OpenCM-904 (or CM-530/550) is operating in its ROBOTIS firmware (TASK+MOTION), but the demo video below showed that the MINI performance was good enough - I think.

This video showed that the gear back-lash on my aged Mini is getting very bad!

Also it showed that the mechanical aspects of where to put the extra hardware, so as to keep the overall CG of the MINI “near” where it was on the original Mini, will be the most challenging issue.

3 Likes