"Mixed" Control of DXLs in ENGINEER kits

I was studying the example MTN3 and MicroPython codes for the AUTOBOT example. For this robot, DXL 15 and 16 are set into wheel mode while the remaining DXLs are set into Velocity-based Position Control mode, see screen capture below:
Autobot_DXL_Modes

Inside the example MTN3 file for the Autobot, I saw that DXLs 15 and 16 are defined inside the Motion Units but set to Position 2048 (i.e. 0 degree) at all times, see screen capture below:

Thus, DXLs 15 and 16 are not really controlled by Motion Units or Pages per se, as they are directly controlled from inside the MicroPython code. Compared to the MINI and BIOLOID systems, this is a significant departure in the controlling procedure for these DXLs, independently from Motion data. Within the “older” MINI and BIOLOID systems, DXLs 15 and 16 would simply not be defined within the Motion file at all, and then they would be directedly controlled from inside a TASK code. I have looked at the e-manual information for the CM-550 and the XL-430 family, but so far I did not see any further information regarding this topic of “Mixed Control” of DXLs. I think that users everywhere would appreciate some more information regarding this topic, as users start to expand on the provided example robots for ENGINEER Kits 1 and 2.

Of course, follow-up questions are many for me! For example, would the “new” ENGINEER control approach/procedure work for these 2 cases:

  1. All DXLs are in Velocity-based Position Control mode, but the user wants to control certain DXLs outside of MOTION data?
  2. Some DXLs are set in Velocity-based Position Control mode (to be controlled within Motion Units) and some DXLs are set in Time-based Position Control (to be controlled directly from TASK or MicroPython codes). Would this option be feasible with the current firmware on the CM-550 and XL-430 family? Would the time-based DXLs still need to be defined within the MTN3 file (i.e. Motion Units)?

Thank you very much for your support.

Hi,
i think once the python API is disclosed, some of your questions might be answered.
Since Task 3.0 will automatically detect and display any connected DYNAMIXEL regardless of their control modes, there may not be a way to avoid adding them into the motion list.
I don’t have much information about CM-550 and Task 3.0, but will get back to you with more details from developers.
Please allow me some delay due to the Lunar New Year holiday from tomorrow till Sunday.
Thank you.

Hello @willson,

That is exciting news that the MicroPython API is soon to be released.
I have developed some work around solutions using TORQUE ON/OFF whenever appropriate, so I am back on track again.
Thanks.

Today (4/27/2021), ROBOTIS released V. 3.14 of TASK 3 to the International Community, and this issue is now resolved. Python codes also load up very smoothly now too!
Thank you ROBOTIS!

2 Likes

But, unfortunately, TASK V.3.1.4 currently has other problems with various Editing Modes (TASK and PYTHON) - see this topic

So I had not been able to test all this out yet - So stay tuned.

2 Likes

Hi @roboteer , the issue has been addressed under our engineers !

Hope this week we can release the new version which fixes reported issues.

Regards,

Hi @roboteer,

The v3.1.5 was updated yesterday :slight_smile:

Hope this version resolves issues that you are in trouble with

Good day.

Hi @Tech_Support . Thank you very much for releasing Version 3.1.5.

Just a note that the old Version 3.1.4 does not want to update to V. 3.1.5 when I told it to check for an update. I had to uninstall 3.1.4 completely, then reinstalled 3.0.0, then 3.0.0 would update to 3.1.5 OK.

I can load my own MicroPython codes now OK. I am working on a Mixed Control project (i.e. some actuators are doing Motion Pages (i.e. Position Control mode), and some actuators are on Velocity Control mode (i.e. function as wheels) at the same time : no big deal in the old Bioloid system, but the Engineer system is designed differently. V. 3.1.3/3.1.4 would not do the job at all, today V. 3.1.5 did a lot better, but it still gives me problems (synchronization between Motion Plays and Wheel Control is not working at all times - when they are programmed to work simultaneously). I am going to work on these issues some more in the next few days to see if I can solve them or not.

I can see that the Motion Pages for AUTOBOT got updated so the “wheels” don’t show up in there anymore. Was the Python code for Autobot updated also? I have to look at this example more closely. However the AUTOBOT does not do Motion Pages while activating those 2 wheels though right? Just one mode at any giving time, right? But not both modes simultaneously?

My “mixed-control” project is an “enhanced” Quadruped with wheels for its “paws”. The front legs are supposed to 'walk" while the rear legs are supposed to act like car wheels.

@Tech_Support - First thank you so much for providing the “commented” Python example codes in TASK V.3.1.5, it helps my understanding of the programming approaches used, a lots!

I have looked at the Python code for the AUTOBOT more closely now and I have discovered that when AUTOBOT is set into CAR mode, it used only Goal Velocity commands for the 2 wheel-servos and Goal Position commands for moving the two arm-shoulder-servos (simultaneously that is). When the AUTOBOT is in its Humanoid mode, only “Motion Pages” are used. However for my case, I am trying to use Motion Pages and Goal Velocity commands at the same time, and I did get the Motion Pages to work properly, but my Goal Velocity commands seemed to be “lost” somewhere, or “come in” inconsistently. Anyhow, because ROBOTIS did not use “my” configuration in the AUTOBOT code, so I am wondering if the CM-550’s firmware allows mixing of “Motion Pages” and “Goal Velocity” commands simultaneously? Basically that my current approach is a dead-end? I would very much appreciate any response that you can post about this issue.

@Tech_Support, @willson
Good news! I have fixed my own bad programming techniques! :sweat_smile: This is to confirm that it is possible to use Motion Pages and Goal Velocity commands together with TASK V.3.1.5.

Kudos for ROBOTIS Tech Support!