I'm working on modeling and simulation of robotic arm, after I obtained the mathematical model of the robot, I used that to implement some control techniques, to control the motion of the robot. The dimensions and masses of each links are taken from available kit, basically, it's RA02 robot with servo at each joint. After the modeling, different parameters, can be plotted: like the joint angles\speeds\torques ... etc. The point now is that, the value obtained for the joint toque is much more higher that the torque limit of the servo, does it mean my design\modeling is not realizable? Is it necessarily to get close (torque) value for servo's torque?

Any suggestion?


If your computed torques are out of the range for your robot, then you are no longer modelling your robot but a different one. You can ignore the torque limits as good as the joint angle limits of your robot (i.e. not at all). If the required torque is to high, your robot will either be much slower (if you are lucky) or won't be able to reach its goal positions (e.g. if it's just not able to overcome gravity).

  • $\begingroup$ Ok, but the problem is that, I'm modeling that, I get the dimensions and weights for each link and start modeling them. What I'm thinking, suppose that, the actual torque of the servo was 20 N.m. What will be the difference in my model if the actual output of the servo was, let say, 1000 N.m. I guess the mathematical model is (blind) and doesn't know at all, how much is torque output, is this make sense?, One last point, I forgot to mention is that, I'm neglecting the dynamics of the motor. $\endgroup$ – AlFagera Oct 17 '15 at 12:39
  • $\begingroup$ If your model does not include the maximal torques of your motors, then you will have to create a better model for your robot. Your model is currently telling you that the motion you try to simulate is not possible. You'll have to lower your accelerations until you have a sufficently small torque. $\endgroup$ – FooTheBar Oct 17 '15 at 13:38

I'm not sure which way you're trying to model this; forward or inverse kinematics, but the term you should look for is "saturation". Saturation means basically that the system can't continue to respond despite a signal being present. For example, a 0-10V sensor being supplied with 11V is saturated because it will only show you 10V. Likewise, your actuators saturate at $\tau_{\mbox{max}}$ despite the fact that you are asking/signalling for more torque.

I don't know how you're simulating this system (Matlab/Simulink or ROS, etc.), but Simulink has a saturation block you can use on your actuators. If you're using other software you can implement saturation yourself:

torqueMax = <max torque>; 
torque = <control loop output>;
if abs(torque) > torqueMax
  torque = sign(torque) * torqueMax;

You can of course have two different saturation values, one for a maximum limit and one for minimum, you'd just use two if statements to do the check.

Saturation adds nonlinear elements to your model, which may or may not be acceptable to you. If you don't want to deal with the nonlinearities this introduces, then you should lower your control gains such that your response slows down to the point that you never enter saturation.

I won't go into any more detail than to just say that "saturation is a thing" with a brief overview as your question seemed to be more in the scope of asking how to handle control/simulation outputs that exceed physical capability - I gave a code snippet above for that. If you want to read more on the subject there are a ton of articles on Google Scholar.

  • $\begingroup$ First I obtained the forward kinematics model, then, I used Lagrange equation to derive the dynamic model, in the form $M[\theta]\ddot\theta+C(\theta,\dot\theta)\dot\theta+g(\theta)=\tau$, then after that I applied PID control. $\endgroup$ – AlFagera Oct 18 '15 at 5:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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