sadashi
Japan
Asked
— Edited
Hi everyone,
I have just joined the EZ-Robot community and I am so far enjoying it!
Im having an issue reading a dynamixel servo's position feedback.
I followed the tutorials and successfully connected the servo thru D5 and the supplied plug in.
I have tried the tutorial and sample project from this thread: https://synthiam.com/Community/Questions/6963
However, it doesnt work
Am I missing something? confused mad confused
Can the servo provide position feedback based on the connection to port D5? A code snippet would definitey help
Thanks for your help,
Sadashi
No it will not provide feedback using d5.
Thanks for the quick reply,
is there any tutorial that covers dynamixel servo feedback?
Thanks,
I don't think anyone has implemented feedback because it hasn't been much use or practical. Everyone here uses the Auto Position control, which makes more sense: https://synthiam.com/Tutorials/Help.aspx?id=180
As for the dynamixel integration, you need to use the plugin here: https://synthiam.com/redirect/legacy?table=plugin&id=39
With the Auto Position control you can link the actions to eZscript events of other controls. Such as speech recognition or camera object detection. Or joysticks. Or wiimote. Or myo gesture arm bands. Or any of the other kabillion controls.
Thanks for the reply DJ,
Well, I need to position feedback in my research (Robotics + Haptics) , so we need to know the position of servos after users' manipulate their positions...
Since it is not implemented, would you kindly point me to where should I start digging to implementing it please?
Thank,
Okay! That sounds like a super fun project.
The code for the plugin is open source, so it could be modified. Someone here may have done it I think. I'll search for you a little deeper
I've been there too. I've plans to use a Dynamixel servo to obtain position feedback, temperature, and torque.
i believe is not possible using only the plugin framework, and without extra hardware.
DJ has a lot in his plate, and no one else asked for Dynamixel feedback, i started to look other low level solutions.
BUT
While we have DJ's attention, i can share my findings/questions:
Currently we have: EZBManager.EZBs[0].Servo.OnServoMove += Servo_OnServoMove; EZBManager.EZBs[0].Servo.OnServoRelease += Servo_OnServoRelease; EZBManager.EZBs[0].Servo.OnServoSpeed += Servo_OnServoSpeed;
but no OnServoGetPosition event or similar, to allow query the servo position.
Dynamixel servos have a single Data pin.
The plugin uses Uart1 D5 (TX) and the following SDK calls:
we need to be able to read data too (.UARTExpansionRead, .UARTExpansionReadAvailable)
So the question is how to tell EZB/Firmware to Write & Read on pin D5 ?
So what you would do is have a button on the dynamixel control that "Get servo Positions" and it would query the servos and set the positions in the software.
What you would do is connect the dynamixel communication wire to both the respective TX and RX ports of the selected EZ-B uart. Then, when ever you send the "give me your positions" command to the servos, simply send a uart INIT directly after that command which will reset the input buffer. Pause for a second until enough time has passed to assume the data has been sent from the dynamixels to the ez-b and voila. You now have every dynamixel position in the UART RX buffer.
finally came back to the forums for the first time in about 7 months just to see my Dynamixel guide again :^)
i wouldn't use that guide anymore, it's outdated out the wazzoo and doesn't account for any new changes or plug-ins that may have been added to ARC for Dynamixels
Guess what? Next update includes reading from dynamixel servos - temperature, load, direction of load, etc... With the Auto Position update allowing frames to be created programatically, this now applies to dynamixel servos. We got it working tonight
Teaser for you all...
Omg omg omg omg omg omg omg omg omg! Thank you guys!!!!
You can see the full functionality here: https://synthiam.com/News/17296