0
$\begingroup$

Let's say I have an industrial sized 6DOF robotic arm. I want to control each one of the six joints despite the non-linearity produced by the chain structure, the gravity and the weight of the loads it could lift.

I don't focus here on the speed nor the power limitations, I just want the arm to respond well. Moreover, I would like to avoid the use of any prior knowledge such as inertial computation. Then I had these considerations, considering that I can play with both the actuator design, and the loop feedback control system:

  1. Limit the maximum speed of each actuator to smooth their error variation.
  2. Increase the damping of the actuators to avoid high frequency instability.
  3. Find a good control system, such as a PID, to make sure the targets are reached without oscillations.

Do you have any other considerations in mind? Do you know what process(es) industrial designers follow?

EDIT: As it is said in the comments, my question concern the design of an adaptive controller for a robot arm, which is, how to design a joint control system (actuator + loop control) that don't need inertia and masses to be computed (the controller could adapt to its own structure, or to the loads it lifts). I'll be very much interested if you know some paper about adaptive control in the field of robotic arms.

$\endgroup$
  • $\begingroup$ I'm not sure I understand your question. You are free to pick the actuator and controller, but you don't want to use any prior information? You, "don't want to focus on speed or power limitations," but your number one (I don't actually understand what your list is) item is to limit the maximum speed of the actuators? To smooth "error variation"? $\endgroup$ – Chuck Mar 27 '16 at 19:24
  • $\begingroup$ Most actual robot design for industrial purposes integrate some knowledge about the robot into the loop control. For example, computing in real time the action of gravity on each joint and counter the estimated forces get rid of the gravity. I don't want to use such a method. Moreover, I don't want to build my own robot, but to simulate it and then I don't have any restriction about material cost (hence power/precision/whatever parameter of the joints). Finally, my matter is not the efficiency of the joint control, but its robustness. $\endgroup$ – Robin Mar 27 '16 at 19:57
  • $\begingroup$ I could reformulate saying, what control system could I use that provides "good enough" result and could be use on the most robotics arm structure (different size of links, different numbers of dof). Should I edit my post ? $\endgroup$ – Robin Mar 27 '16 at 19:58
  • 1
    $\begingroup$ The design considerations literally come from the problem you are trying to solve with a robot arm. However, it sounds like you don't have a particular problem in mind. $\endgroup$ – Ian Mar 29 '16 at 19:27
  • $\begingroup$ Welcome to robotics debzsud, but I'm afraid that Unbounded Design Questions are off-topic because there are many ways to solve any given design problem, so questions that ask for a list of approaches or a subjective recommendation on a method (for how to build something, how to accomplish something, what something is capable of, etc.) are off-topic. $\endgroup$ – Mark Booth Mar 30 '16 at 10:38
1
$\begingroup$

As I commented on your question, I'm not really sure what you're looking for or what your list is for.

I'll try to answer your last question, "What is the process the engineer takes?"

In short, the engineer uses everything you said you wanted to ignore.

Specifications are the heart of engineering. I, and I think most engineers too, detest "feelings" kind of terms, by which I mean qualitative statements.

"I want an actuator that works good" is the kind of statement I mean. What is good? What does that mean to you? Is good low cost, or high reliability, or high power, or high speed, or something else? What is "high" or "low" to you?

In general, design is based on worst case scenarios.

  1. What is the maximum payload mass (and shape!) you want to move?
  2. What is the top speed you want it to move?
  3. How fast do you want it to get from zero speed to top speed?

These three questions go a long way to "ballparking" the actuator(s). Next, you need to pick a design for the arm. Is it SCARA, Cartesian, or something else? This is important because each actuator has to be capable of moving the load and all the actuators after itself.

Now, for each degree of freedom, you have to evaluate the worst case load on the actuator to spec the actuator.

Once you have all the actuators specified, which generally takes several iterations, because heavier actuators require even bigger ones "upstream", then you can begin to design the controller.

Control design has to happen last because you need to have some idea of what kind of output you're going to get for a particular input. You can't define that without a model of the plant (actuator).

You could, of course, "turn off" gravity, mass, moment of inertia, etc. in your simulation, use ideal motors and tune speed regulators on them to perfect responses, but you're just wasting your time. If that's all you want then why not just put a low pass filter on your position request?

So, tl;dr - if you're going to design, you need specifications. If you don't care about specifications, don't waste your time designing, just cheat an answer.

$\endgroup$
  • $\begingroup$ Ok, good answer. I think one big mistake I'm doing is using position controllers instead of speed controllers. And as you suggest, I don't want to turn off gravity to keep as real as possible the behavior of the robot. It seems that position controllers don't handle well gravity (do you confirm ?). $\endgroup$ – Robin Mar 27 '16 at 20:38
  • $\begingroup$ I get your point on engineering and specifications. My point is that if I could use "over strong" actuators, I should be able to discards some of these specification, at least give them some flexibility. And as I said, I just need the actuators to be accurate, whatever speed response they have and power supply they need. $\endgroup$ – Robin Mar 27 '16 at 20:39
  • $\begingroup$ Knowing all this, I'm wondering if there is an approach dealing with robustness for actuator/control systems. I understand that this doesn't fit with the industrial needs, but do you think some people already worked on how to increase the adaptivity of an actuation system ? $\endgroup$ – Robin Mar 27 '16 at 20:42
  • 1
    $\begingroup$ @debzsud - You say robust, but typically I believe "robust" means not sensitive, in the controls meaning of sensitivity - small, unaccounted-for changes in plant parameters don't produce large variations in controller functionality. If you want one controller to work just as well under a large load as under a small one, then your later terminology is 100% correct: you're looking for an "adaptive controller." Be forewarned, though; adaptive controls is a very advanced topic. $\endgroup$ – Chuck Mar 28 '16 at 0:45
  • 1
    $\begingroup$ Position controls, speed controls, they all should work fine in gravitational fields when tuned correctly. The trouble you'll get into is expecting a fully loaded arm to perform the same as an unloaded arm. In that case, you should design for whatever performance you want in the fully loaded scenario and then rate limit or otherwise clamp your input such that you achieve consistent response for all conditions. $\endgroup$ – Chuck Mar 28 '16 at 0:49

Not the answer you're looking for? Browse other questions tagged or ask your own question.