1
$\begingroup$

There are mainly two approaches for controlling robots (mobile robots and static robots): 1) working with kinematic equations, controlling joint or wheel speeds , 2) working with dynamic equations and controlling torques and forces. I would like to know in practice (in academia and also industry) which one is used more?

I mean dynamic modeling and control is complex, requires much more accurate modeling and therefore more prone to model imperfections and other errors. Kinematic modeling on the other hand is more straightforward and requires less knowledge. I don't mean some special functionalities of robots (for example, mobile robot has 1D arm on it, and it is going to do force control), but rather a general motion of mobile robots, static robotic arms and some other types of robots. Is it in general sufficient to do kinematics with speed control for this purpose?

If not, could you please mention some important deficiencies possible with pure kinematic modeling?

If my question does not have sufficient information for you to answer, could you, please, give some tips how can I make it more focused?

Thanks in advance

$\endgroup$
12
  • $\begingroup$ Are you looking for a specific kind of robot? As in only industrial arms? Or robotics in general? $\endgroup$ Jan 5, 2020 at 21:08
  • $\begingroup$ I mean general, but widely used and commonly known robotic structures. But I mean simple ones, like differential drive robots, robotic arms, NOT human like robots or similar. $\endgroup$
    – Pasha
    Jan 5, 2020 at 21:12
  • $\begingroup$ Actually, I want to know whether the dynamics of robots is suitable for undergraduate studies of Computer Engineering students. Or is it too advanced for this purpose. $\endgroup$
    – Pasha
    Jan 5, 2020 at 21:15
  • 1
    $\begingroup$ Have a look at lagrange 2nd method for modelling of a simple pendulum, and then a double pendulum, and see if you yourself can follow along with find the equation of motion, then solving the ODEs (of the simple pendulum, maybe a couple numerical steps of the double) by hand. Infact i had to do exactly that this with CE students last semester...it was beyond a challenge to get them to understand (see) potential and kinetics energies and then doing some partial derivatives. I gave up on them solving the ODEs and walked them through it. But i dont know how good your students are.... $\endgroup$ Jan 5, 2020 at 21:20
  • 2
    $\begingroup$ I do model building for a living, so i find it particularly useful, especially for control. The kinematics is only really a part of the system design in general, however most of this is for dynamics of the system. Dynamics is machine ignorant. The dynamics don’t know or care if a robot arm will smash into a wall if it rotates too much, (without doing significant maths). In my experience CE students will have a really hard time with robotics without having atleast some kind of background in newton or lagrange, and experience solving ODEs. I don’t know what your students know, however $\endgroup$ Jan 5, 2020 at 21:37

1 Answer 1

1
$\begingroup$

The two approaches you mention are not as separated as they seem. Both kinematic models and dynamic models are not 100% accurate. This is the reason closed loop control is needed (well probably only one of the reasons if you ask controls experts).

You should not think of kinematic and dynamic models of being completely separated. They are all models describing the same system. Kinematic models include only motions, not forces, dynamic models include both, forces and motion. They all have their role in a control system.

You are right, dynamics modelling is more challenging because it is harder to come up with exact dynamic models. But this does not mean that the dynamic models are unusable.

Most industrial motor control applications for motion planning use a cascaded control approach with an outer loop for position control (which is usually disabled for mobile robots) a "middle loop" for velocity control and an inner loop for torque control. All of these loops have a PID controller variant (mostly P and PI, PD or PID also possible) and have a feed forward input. This feed forward input is the easiest way to integrate inexact dynamic models.

Consider the case where there is not feed forward signal on the torque controller. This means that the control loop has to minimize the difference between the reference torque (generated by the outer velocity loop) and the currently applied torque. This assumes that the reference torque, generated by the velocity control loop (since it is a cascaded control system) is exactly the right amount of torque needed. Obviously it is not, but the we "hope" that the velocity feedback will take care of this. And it can, but with limited performance. It takes some time for the controllers to settle on just the right amount of torque.

To increase the performance of the control loop we can add a feed forward signal to "help" the controller. We "inject" an additional torque which we think is the right amount. Obviously this will also not be the right amount, but if it would be, the control loops would have "nothing to do" they would behave as pass through. Since we would have an exact model of the system we would not need a controller we could always calculate the right amount of torque. This works well in simulation when the controller plant is exactly known, but (almost) never works in real life.

If we use an inexact dynamic model to inject a feed forward torque, even if it is not exactly the right amount it helps the controller. A simplistic explanation is that the controller does not have to come up with the exact amount of torque needed, but it only needs to correct the feed forward torque.The more precise the dynamic model giving the feed forward signal to the controller is the more it "helps" the controller, the faster the controller settles on the right value. The closer we are to a perfect model the less we need the controller.

A more complex way to use dynamic models, even if they are not precise is model based control. This is well established in academia, but less widely used in the industrial practice.

$\endgroup$
14
  • $\begingroup$ Thank you for the answer. I would like to know your opinion about few points. As far as I know, in most of the industrial robotic arms there are no torque sensors, so you cannot do a torque control without external sensors. I think just speed and position control of joints are used. If instead you use position information to guess the applied torque (taking second derivative) I think it does not make much improvement. $\endgroup$
    – Pasha
    Jan 7, 2020 at 16:38
  • $\begingroup$ And also in most of the robotic arm and other applications, kinematic control i.e. position and speed is required. Maybe you can do better position or speed control with dynamic models and torque sensors, but usually you have very complicated models and even your nominal model may not suffice to do the task. For example precision gearheads (cycloidal or helical, or even planetary) has extremely complicated modeling approach and still you may not get the required precision. In such cases, your dynamic modeling may bring nothing better to your control. Do you agree? $\endgroup$
    – Pasha
    Jan 7, 2020 at 16:38
  • $\begingroup$ One last point. For undergraduate Computer Engineering students, do you think that dynamic modeling is too advanced and excessive? Instead it would be better to cover some material on path planning, maybe machine vision, etc.? $\endgroup$
    – Pasha
    Jan 7, 2020 at 16:40
  • $\begingroup$ Very briefly, what would be your recommendation about topics to be covered in such a course (Mobile Robotics for undergraduate CE students)? $\endgroup$
    – Pasha
    Jan 7, 2020 at 16:43
  • $\begingroup$ Opinion based questions are not well suited for stack exchange $\endgroup$
    – 50k4
    Jan 7, 2020 at 16:53

Your Answer

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

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