Asked — Edited

Dynamixel Mx-64T

Need help again with dynamixel servos! I was finally able to get all of my ax12a servos working. Now onto my elbow joints which use the mx-64t dynamixel servo which is ttl just like the ax12a. According to all information I find the servos can be wired together on the same bus. However I cannot communicate with it at all thru ARC. I have a feeling this servo is much different and probably requires a different plug in to use. Anyone have any experience with these bigger dynamixels? Thanks Chris


ARC Pro

Upgrade to ARC Pro

Get access to the latest features and updates before they're released. You'll have everything that's needed to unleash your robot's potential!

PRO
Synthiam
#1  

I have no experience with those servos. You may wish to contact robotis, the manufacturers of dynamixel servos for information. If they wish to have these servos supported, the dynamixel plugin is opensource and they can add functionality for them.

PRO
Synthiam
#2  

Ask your question in the related thread. Click on your name in the forum to view your profile and previous threads to locate one.

There has been no further development on that servo. This discussion also overlaps to an led thread here: https://synthiam.com/Community/Questions/9264

The purpose of thread topics is organization for future searches. If someone in the future wishes to learn by searching, it's a nightmare when the thread title has nothing to do with the content.

Imagine buying a book called "The Art of Cooking Pasta" and the contents of the book are about American politics.

#3  

So I am hoping Dj gets a chance to read this once again. I have called trossen robotics searching for help with theses MX64T servos. There statement to me is that nobody there does any programming with visual studio.

In speaking with David Cochran last night he pointed me in a direction to download the free version of visual studio 2015 community edition. In addition to me downloading this he offered to take a look at the source code that Dj has provided for the AX12A. The MX64t servo uses the same protocol as the ax12a for control but according to trossen has a much finer resolution requiring a change in the code to operate. They also told me that the ax12a has a range of 300 degrees OR continuous rotation with a resolution of .29 per degree. The MX64t has a range of 360 degrees with a resolution of .088 per degree. The trossen gentleman also said if the ax12a was able to be controlled the code would probably need to be multipled by 4.

I opened up the plug in myself and have little knowledge of this type of coding. In the V1 control file I am finding a position of 0 to 1023 for positional control and if the control number is input greater than 1023 it makes it 1023 and the same for 0, number input less than zero equals position zero. However in scripting using any of the virtual ports v0,v1,v2... the position is set between 0 and 180. I would love to attempt to modify the code but im definitely not sure on how to recompile after the change and work with the existing plug in. Looking at the code again Im not sure which number I would change as well. My thought was to allow positional control between 0 and 4095 and being able to set servo min/max positions via scripting. Again any help is appreciated! Chris

Edit: I also see in the latest file formmain.cs which appears to have been built on 4/12 of this year a multiplier of 5.689 to the servo position integer. Is this multiplier value the one that may need changing? Thanks again!

#5  

Hello Dj, I hate to report this but it is still not working. Im not sure why either. This is what I can tell you...

A) downloaded plug in no problem. B) set max positions to 4096 C) mx64t is on v2. Wrote tiny script

servo(v2,0) sleep(2000) servo(v2,180) sleep(2000)

Now the servo does move! But it only moves exactly 90 degrees. Doing some experimentation....

When I script servo (v2,50) it moves exactly 90 degrees. Any higher than the number 50 the servo moves to the 90 degree position, no further. Even with script servo(v2,180) it goes to 90 degrees. Although I am not showing it in my writings I am adding the appropriate sleep time to allow for complete movement. Im not sure if this is a coding issue or if this servo is malfunctioning.

When I write a smaller number example servo(v2,5) the servo does move a very very small amount and continues in small incremental moves until I hit 50. Anything that can be looked at is as always appreciated. Thanks Chris

#6  

Hello again,

On a follow up call to trossen robotics it was stated to me that if the servo was only moving 90 degrees which it is, it's only receiving a command of 1023. I shared the plug in source code from the update as well as the source code from an earlier version. The gentleman there said that both files were exactly the same. I'm not sure if the newest source code was published or not, or if the gentleman has no idea what he is talking about. Thanks for any help !

                                             Chris
#7  

Yes yes yes! Excellent! Works correctly. Thank you very much! Chris

#8  

Damn, spoke way too soon. Ax12 a's no longer work. My guess is there max value can only be 1023 and has been cofirmed by changing back to 1024.

#9  

Dj is there any way to make it so in scripting when I address the servo a parameter is entered for the max position. for example v1 is my ax12a, servo(v1,35,1024) 35 being the position, 1024 being max position for that specific servo? Then for say my mx64 ... servo(v2,50,4096)? Kind of like sending the three parameters to my roboclaw h-bridge. I gotta say these dynamixels are a PITA!

                 Chris