Can I Use a Douloi Device as an EZ-B Controller for Inverse Kinematics in ARC?
I would like to know if the Synthiam ARC platform can support the use of Douloi devices as replacements for EZ-B controllers in an inverse kinematics setup. I have developed an industrial robot, as depicted in the provided images, utilizing two Douloi units connected through a fiber optic card to a Windows 486 desktop computer. This computer is presently running custom software developed in Pascal to manage the robot and log its movement paths.
I am considering migrating the robot control to Synthiam ARC, using the two Douloi units as my EZ-B controllers. Can ARC accommodate this configuration, and if so, what would I need to do to integrate these components effectively?
![Industrial Robot]


Below is an expanded explanation of what you’ve set up along with important points, so you understand the entire process. This writeup assumes that you are choosing to use ASCII commands over a serial (RS232) connection, rather than trying to run your legacy controller through an EZB and its radio protocols. Instead, you’ll run your robot arm directly from ARC running on your PC by connecting a USBtoSerial adapter to your controller. This avoids extra hardware (and voltage level converters such as a MAX232) because you are using the PC’s virtual COM port. Use this approach only after reviewing and testing everything in a very safe environment.
Overview of Communication Methods
There are two ways to communicate with your Douloi (or similar) motor controllers:
For your setup, you’re using the ASCII command method. This will require you to write ARC scripts (using the servo Script robot skill, for example) that send the proper ASCII commands over the serial port to control every servo (or motor) in your arm.
What This Setup Does
Direct Serial Connection:
Initialization Script:
The following steps (with sample commands) initialize one servo motor on your controller. This would normally be placed in an initialization script that runs when you start the project:
What Each Command Does:
A1 MTT SRV - Tells the controller that motor A1 is a servo type.
A1 GAI 32 - Sets the gain (control sensitivity) for the motor.
A1 ZER 240 - Sets the zero or neutral point for the servo movement.
A1 LIV OFF - Disables any loop inversion feature if available.
In addition, commands like A1 SPD, A1 ACL, and A1 DCL set the speed, acceleration, and deceleration profiles.
Finally, A1 MTR ON turns on the motor amplifier, enabling movement.
Motion Control (Moving a Servo):
Once the motor is initialized and the parameters are set, you control its movement from within the servo Script skill. For example, you might map the virtual servo (say, V1 in ARC) to a particular motor command, something like:
Here, the command A1 MVT is used to move the servo to the specified position. Note that the range for the position (the counts value) might be different from ARC’s default 1-180 degrees. You can either adjust your project’s servo range (via Project Properties) or use ARC’s Utility.map() function to convert between ranges.
Key Considerations and Testing
Command Formatting:
Mapping and Range Conversions:
ARC’s default servo range is 1-180. However, your motor controller might have a different range (e.g., counts for position).
Use the Utility.map() function in ARC to convert from the ARC range to your motor’s expected range. For example:
Safe Testing:
Further FineTuning:
Hardware Integration:
Summary
You are effectively replacing an EZB with a lowcost USBtoSerial adapter. Your ARC project will:
Remember:
This entire process is based solely on the information from the Douloi manual and our experience with ARC’s scripting. We do not have this robot arm or hardware to test with on our end, so always exercise extreme care when testing.
Additional testing and finetuning are required to calibrate the motor positions, speeds, and other dynamic parameters before full operation.
Ensure that you are operating the robot in a safe environment during testing to prevent any injury or damage.
By following these guidelines and scripts, you should be able to integrate your Douloi controllers with Synthiam ARC. If you have any questions or need further clarification as you test the setup, feel free to ask!
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
Wow, Ok! It looks like there is a better way. Outstanding help from Synthiam's CS. I learned something here. Thanks!
Thanks to everyone, will start digesting all this info ASAP. Going to be exciting to see what we can do!
Dear Everyone, Randy from Douloi reviewed your guidance and made this response I have posted below. Can I get some more instructions on the point being brought by Randy considering part missing in communication between ARC and the Douloi as to responding to commands sent to Douloi and then the error message etc. that needs to be addressed?
Thanks,
Chuck
Dear Chuck,
The tech support response is large correct but it is ignoring how to handle command response. When you send a command there's a response including an error and value. The error number confirms that the command was properly handled. It's also necessary to query the controller for status and position related information which is not mentioned.
The support was recommending the use of a USB to Serial converter such as this one we often use:
Thanks,
Randy
Oh, that's great that you're in contact with the manufacturer. I just updated the Dynamixel robot skill source code, which is probably the closest as a framework for them to create a robot skill for their product. Here's the source code you can give to them: https://github.com/synthiam/Behavior_Control_Dynamixel
And here's the step-by-step guide that gets them started: https://synthiam.com/Support/Create-Robot-Skill/Overview
Great to hear they're working with you on that.
If they encounter any challenges building their robot skill for their product, they can post here or use the Contact Us form directly.
Great, thanks again. I will see if we can get Randy to do a skill. He is getting old but still working. No rest for the wicked like me .
Dear DJ, Randy at Douloi has to many things to do. He recommended finding an existing control compatible with ARC and that can handle the industrial arm robot motors and drives. All the motors (6) in total are 170 volt DC with encoders. Can you suggest a controller?
Thanks,
Chuck
@athena, do you have any feedback regarding chucks question?