Asked — Edited

Using Douloi With ARC Compatibility?

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]

User-inserted image

Diagram Fiber Optic Connection


Related Hardware EZ-B v4

ARC Pro

Upgrade to ARC Pro

ARC Pro is your passport to a world of endless possibilities in robot programming, waiting for you to explore.

PRO
Synthiam
#1   — Edited
  1. You don't use a motor controller as an EZB; you use a microcontroller as an EZB. Step #3 in the getting-started guide explains what an EZB is, which will be helpful to understand the difference. Think of an EZB as a tiny remote computer that can read and write to hardware. Think of it this way: You can connect a motor controller to an EZB (if the hardware is compatible).

  2. You can connect any motor controller to your EZB or the PC based on the connection type. If it's USB, it's connecting to your PC. If it's UART, you can optionally connect it to an EZB. However, it's impossible to advise you on either option without knowing your hardware configuration and robot. The getting-started guide has excellent information that helps you create a template for your robot. You can get to step #1 here: https://synthiam.com/Support/Get-Started/how-to-make-a-robot/make-a-diy-robot

  3. Inverse kinematics does not care what kind of controller, servo, or anything. It's agnostic because all it needs is to know the position of each angle. Whatever option you choose needs to have internal positioning measurements. You can read about the Inverse Kinematics robot skill here: https://synthiam.com/Support/Skills/Servo/Inverse-Kinematic-Arm?id=21839

In the case of the controller, you will use the manual to have commands sent to it, since it's not a commonly used piece of hardware. Locate the manual, open it on your PC, and look for the commands to instruct the position movements. Based on the communication type, I recommend using the Script servo robot skill. Essentially, this converts anything that you can communicate that contains positioning into a servo in ARC: https://synthiam.com/Support/Skills/Scripting/Servo-Script?id=19068

PRO
Canada
#2  

Below is some information to help clarify your situation:

  1. EZ-B vs. Motor Controller:
    An EZ-B is not simply a motor controller-you need a microcontroller that can read sensors and write commands to hardware. As DJ_Sures pointed out, you don’t use a motor controller as an EZ-B. Instead, the EZ-B is a tiny remote computer that acts as an interface between your PC (running ARC) and the various hardware components in your robot.

  2. Douloi Devices:
    The Douloi units you currently use are motor controllers. They lack the built-in capabilities (such as internal positioning measurement, servo-specific commands, and real-time I/O) that an EZ-B provides. The Inverse Kinematics robot skill in ARC only cares about knowing the joint angles (or positions) for each servo-it is agnostic as to how those values are provided. However, it requires that the device controlling the servos (or the equivalent motor) has internal position measurements and a means for sending position commands.

  3. Integrating Douloi with ARC:
    If you want to switch over to Synthiam ARC for your industrial robot, you have a couple of options: - Replace or Augment with an EZ-B:
    The simplest route is to migrate the control hardware to an EZ-B (or EZ-B-compatible microcontroller). This allows you to use the ARC robot skills directly (e.g., the servo Script and Inverse Kinematics Arm) and ensures that servo or joint positioning information is available. - Using a Motor Controller with Position Feedback:
    If you wish to keep the Douloi devices, your system must supply accurate and real-time position feedback. In this configuration, you’d need to implement the necessary command set (as defined by the Douloi’s manual) and map these commands to what ARC expects for servo positioning. In ARC, you can use the Script servo robot skill to convert any positioning data into an ARC servo control. This approach is more custom and would require you to develop a bridge between your robot’s internal positioning commands (via the Douloi) and ARC’s interface.

  4. Steps to Proceed:
    1. Review Your Hardware Capabilities:
    Check if your Douloi devices provide internal measurements (or can be retrofitted for feedback) similar to an EZ-B’s servo control commands.
    2. Check the Documentation:
    Locate the Douloi manual and investigate which commands are available for position movement. These would need to be triggered by ARC panels or scripts.
    3. Implement a Command Bridge:
    Using the Script servo robot skill (https://synthiam.com/Support/Skills/Scripting/Servo-Script?id=19068), you could potentially translate your Douloi command set into the positioning and speed commands that ARC expects.
    4. Test Thoroughly:
    Inverse kinematics doesn’t care which controller is used-it just needs accurate joint position readings. Ensure that whichever method you choose provides those reliably.

  5. Getting Started Resource:
    For more detail on EZ-B hardware and building your robot template, review Synthiam’s getting-started guide here:
    How to Make a DIY Robot

Feel free to ask follow-up questions if you need further clarification or additional help with your configuration!


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.
#3  

Thanks for the guidance, I will have to dig into the Douloi and the motor drives and encoders and the software. Still trying to get my head wrapped around this system. It have read through the guide and dug deep into the links. Need to research more of the tutorials.

PRO
Synthiam
#4  

It was a bit difficult finding some information about that Douloi, as their website doesn't have much detail. However, I found a website with a manual for Windows 3.1 from the mid-1990s for the product. The PDF manual that I saw mentioned that there is a DLL distributed with their application. The DLL has entry points that match the procedure names of their custom Pascal interpreter. While the files are unavailable, I guess the DLL is 16-bit because it's for Windows 3.1. That means a 16-bit DLL will not be compatible with current operating systems 30 years later.

Your best bet is not to attempt to reverse engineer the protocol or DLL. But instead, look at the software on the ancient 486 computer to see if there's a way you can use the computer as a proxy between newer ARC hardware. For example, if you could have the 486 connect to your newer laptop with a serial cable, you could send commands from the newer computer to the 486 dinosaur. That way, on the 486, you could have a program that listens to commands from the COM serial port and executes them against the Douloi hardware.

Or, you can contact the manufacturer, who appears to still have a website, albeit quite outdated. If they are still in business, they might be able to provide you with more information on how to use their device on hardware that's newer than a 486.

#5  

I have tried to reach the Douloi manufacturer with our success yet. I was also thinking of the same thing to see if we can communicate with the old 486.

Or what if I just by pass the old 486 and douloi? What would be the best hardware for the EZ-B to connect to the motor drives, encoders, etc?

#6   — Edited

I know very little about Inverse Kinematics and how to control that movement. However I've done a ton of work with controlling speed and position of motors that are monitored by encoders or potentiometers. There are a few nice motors controllers that work well for this but my favorite has been the Sabertooth motor controller with a Kangaroo daughterboard attached. The Kangaroo give the Sabertooth Speed and position control. I'll post a video below that @DJ did a few years ago showing this system.

These controllers are made by Dimension Engineering and can be bought directly from them or from a online store called The Robot Shop.

https://www.dimensionengineering.com/

https://www.robotshop.com/search?q=dimension%20engineering

Look at the manuals of operation for these devices on the Dimension Engineering website for more info on how they operate and see if they will work for your rig.

I don't know if these controllers will work with your setup. It sounds like you have a closed loop system that uses encoders for position so it may. At the very least this info may get you pointed in the right direction.

Good luck and have fun!

PRO
Synthiam
#7  

Dave’s suggestion is good if the hardware supports the kangaroo. The kangaroo can convert any motorized mechanism that has positioning feedback into a servo mechanism.

Inverse kinematics may be a complicated algorithm internally,  but it’s really easy to use. All it needs is to use any mechanism with positioning feedback.

if you bypass the controller, you’ll need to understand what the motors and positioning sensors are. Easiest way forward is connect them to a kangaroo/saber tooth combo.

what kind of motors and positioning sensors are used?

#8  

First off thanks to everyone!! As you say I built this 30 years ago and have to take it out of storage which I will do today. I know I am powering it with 240v at 50 amps. AC. It is very powerful. I can't remember if the six motors are AC servos or DC servos. Most likely AC. I will get all the specs off it this afternoon. Hope you stay with me, the club kids really want to make this happen!!! Our goal is to build robots that pay for themselves and 4 times all adult income by building robots to work for them as the adults become robot managers.

#9   — Edited

OK, I'm looking forward to seeing what kind of hardware and devices you have there. It's hard to give advice without knowing. Somethings to consider:

You say you power it with 240 volts and can supply 50 amps.

*Sabertooth motor controllers only accepts 6V-33.6V DC from a Battery or Power Supply. You would need to convert (buck) that 240v down to between 6V-33.6V DC. May I ask why are you supplying 240 volts AC? What are your motors rated to run at?

*There are several different Sabertooth models rated for different amp loads. Each ST will run two motors and it's rated for the amp draw of both motors. So if each motor will pull 20 peek amps then you will want a Sabertooth 2x25 or larger.

*The Sabertooth generates regenerative power. In short it returns power back to the battery when it slows down or breaks. This is good if you are running directly from batteries as it will help recharge the battery. If you are powering your controller with a power supply converter (Like it sounds like you want to) the regenerative power will likely burn the power supply out. To avoid this you'd need to wire in a battery between the power supply and the ST to have a place for the regenerative power to be dumped. It's all documented how to do this on their web site. There is one model of the ST that lets you avoid this. They have the 2x32 Sabertooth. It lets you install a resistor that acts as a voltage clamp and you can avoid wiring in the battery. I use power supplies and I went this route even when using smaller motors that pulls much less then 32 amps the 2x32 can take.

Good luck and keep us posted! Have fun!!

#10  

User-inserted image

Here is motor 1 of 6  170 VDC 12.10 amps.

User-inserted image

So the Drive takes 240 VAC and puts DC to the motors.

More on the encoders etc. when I get a hold of the suppliers tomorrow. Hope ARC can work, I am sure there's a way!

#11  

Xenus XTL-230-40  This is the motor drive with a set of amp handling units. I have 6 units that go from 6 amps up to 20 amps.

I found the manual online. I don't remember yet just how these unit drives work with the Douloi.

Maybe one of you have knowledge in this area. I will keep digging to figure it out. Thanks, any thoughts?

#12  

User-inserted image

Here we see what is connected that tells encoder type.

#13  

OK, now I see why you are supplying 240v. Your motors run on 170V each. My suggestion of using a Sabertooth/Kangaroo will not work. The ST will only supply up to 33 volts fed directly from your power supply.

The Xenus XTL-230-40 you show is apparently doing the same thing the Sabertooth/Roo would do in much the same way. It looks like that is where the logic commands to move your motors go to from your computer. It also looks like you have a separate device to collect the encoder info and send it to the Xenus XTL-230-40? This is just an educated guess as it's hard to see your wiring and how it all hooked up.

As it stands, it looks like you are back to trying to find out the communication type and protocell in the manual as @DJ suggested in his post #1. If they are simple servo commands then ARC can probably interface.

At this point this is over my head. Sorry. The only thing I know to suggest short of a complete rebuild would be maybe getting a more modern controller that can handle your high voltage motors and can interface with a microcontroller like Arduino and EZB. Again, I'm kinda lost from here on.

Please post back and let us know if you find that communication type and the commands to operate the motors. I hope you find a way forward.

#14  

Thanks, working on it and will keep you posted. I still don't know exactly how EZ-B and ARC work together but I'm getting closer.

#15  

Well, it's really EZ to understand. LOL  xD

ARC is the control software that runs on a Windows computer. That's where you send commands from over WIFI or a direct USB connection to the EZB. The Your motor controller (that controls your motor, LOL) plugs into the EZB. depending on the communication type the port used on the EZB is the UART port. EZB has three of these ports.

ARC can also control many other things like servos, LEDs, relays and lights through the EZB. There is much more these two can do like voice recognition, face and object recognition and navigation. I really don't think there is a limit. It seems to have limits on interfacing with old technology like your's but if you can get the protocol figured out and you have the knowledge to do it there is always a way.

It's best to take a little time and study how ARC works and what an EZB is. (hint: you can turn an Arduino and some other microprocessors into an EZB). Check out the Support section for easy to understand articles on all this. Click through the menu on the left side: https://synthiam.com/Support

While your at it check out the tutorials: https://synthiam.com/Community/Tutorials?