I'm currently designing a robotic arm with 6-DOF, and my goal is to be able to give setpoints for 3d position, velocity and orientation ($x,y,z,\dot{x},\dot{y},\dot{z},\theta,\alpha,\gamma$).

I only had feedback-control for SISO systems so far in College, so, taking the learning curve of multivariable control in consideration, should I approach this problem trying to model the system as a MIMO or multiple SISOs?

If possible please mention possible disadvantages and advantages in each strategy.


3 Answers 3


Welcome to Robotics.SE! This is not exactly my area of expertise, but let me give you a few pointers.

A very common approach for controlling manipulators is to first design good joint velocity controllers, in the "multiple SISO" approach you mention. You would then use inverse kinematics to determine at each point in time what the joint velocities should be ideally to reach your desired end-effector pose. Assuming your joint velocity control loop dynamics are fast enough, you should be able to achieve those velocities. The kinematic model of manipulators is usually obtained in terms of Denavit–Hartenberg parameters.

Considering that it is frequently done for robots and probably is enough for your purposes, I suggest you take that approach.

In a non-linear control class I took we saw a MIMO model for robot manipulators. I am not 100% sure about this, but I think you might want to use this if you are interested in modeling not only kinematics but also dynamics.

The main difference is that in this scenario the joint positions and velocities all affect the inertia matrix, Coriolis and centrifugal forces and damping in a non-linear and usually not separable fashion. So you would not only have to get used to MIMO control, but would have to look into non-linear control as well.

As I said, it's not my area of expertise so if someone thinks I said any gibberish I would be gladly corrected.

  • 1
    $\begingroup$ Glad to see that I'm not the only Brazillian here! =D $\endgroup$
    – user798
    Commented Jan 24, 2013 at 18:52

The set of Parallel SISO controllers is a is a subset of MIMO controllers so MIMO is at least as powerful and possibly more powerful. As for pros and cons I see no reason to use parallel SISO except that you may be more comfortable for it so it may be easier to get done.

That said the system may be separable by actuator in which case it can pop out as being several SISO problems. Although control systems is my area I don't work on robots so I can't say if that's the case for your problem.

Another thing that is often done, as georgebrindeiro pointed out, is to break the problem into inner and outer control loops, where the inner loops allow you to ignore much of the


I've never seen MIMO used in this context before, but I can see how SISO might apply.

Most robotic systems I've seen have been aggregation's of single axis motor controllers (your multiple SISO) each of which only had a single encoder for sensing and a single motor for actuation. So each axis was SISO, but the robot as a whole was MIMO.

Some systems I have worked on had significant backlash between motor/rotary encoder and load/linear encoder, so implemented a dual feedback loops, with one motor control output, but two encoders. The rotary encoder on the motor was primarily used to track velocity accurately, while the linear encoder on the load was used to compensate for backlash in the (worm) gear and provide accurate position information and tracking.

I believe that for most control systems, these traditional control methods are the most you will ever need, however there are exceptions.

I have only seen one system which might have benefited from a truly MIMO control system and that was one with similar characteristics to your own, but also needed to control the force applied by the tool-point of the robot. We did implement this with a traditional multiple SISO approach, but it required exceptionally careful tuning, and I'm not convinced that trying to use some form of computed torque technique would have been any easier anyway.

I would suggest that you start off with a multiple SISO approach and if that fails to give you the performance or characteristics you require, research into more advanced methods. At the very least you will have learn a lot more about the kinematics and dynamics of your system by that point.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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