1
$\begingroup$

I am asking this after having gone through quite a bit of literature and hope that it's not a repeat question.

I would like to know proper mathematical notion that clearly defines a Path and a Trajectory, Planning and Tracking, in context of Path Planning, Path Following, Trajectory Planning, Trajectory Following, Motion Planning, Local planning and Global Planning.

Let me explain my source of confusion.

Broadly I can say, a path planning algorithm will provide a curve or set of waypoints to reach from configuration A to configuration B. It doesn't include any time scaling information. On specifying the time variation on top of it, we specify a Trajectory. Then, we have a planned Trajectory and the controller will ensure that we follow it and have a Trajectory Tracking algorithm. So this makes an algorithm such as Stanley Controller, a path following algorithm (?).


Now, if I try to generalize this across different scenarios, I seem to be getting wrong sometimes.

Reference 1 - Path Planning and Trajectory Planning - Overview

Path planning algorithms generate a geometric path, from an initial to a final point, passing through pre-defined via-points, either in the joint space or in the operating space of the robot, while trajectory planning algorithms take a given geometric path and endow it with the time information. Trajectory planning algorithms are crucial in Robotics, because defining the times of passage at the via-points influences not only the kinematic properties of the motion, but also the dynamic ones.

Q1 - So based on above, am I right in assuming that Path Planning only considers kinematic constraints, whereas Trajectory Planning includes dynamic constraints as well?


I found another survey paper - Path Planning: A 2013 Survey, which gives a pretty good visual representation

Path Planning levels

However, now you see that Kino-Dynamic planning is also Path Planning. That means we can include dynamic constraints while generating paths, as per this.

Q2 - Is the above statement correct? Shouldn't this fall under Trajectory Planning?

Going further along this paper, we see in Level 2, that performing Environment modelling and reacting to dynamic changes in the environment, probably due to addition of obstacles, leads to generation of a new Path. RRT is a typical example, and it still falls under purview of Path planning.


Coming to Reference 3 - A Review of Motion Planning Techniques for Automated Vehicles

It addresses the local changes in the path due to obstacles as Local planning which seems like a good term, but then confuses me further by including Trajectory Generation under the scope.

Control Architecture

Although the same concept of local planning and global planning has been used in Wikipedia as well - Real-Time Path Planning

Self-Driving Vehicles

Self-driving vehicles are a form of mobile robots that utilizes real-time path planning. Oftentimes a vehicle will first use global path planning to decide which roads to take to the target. When these vehicles are on the road they have to constantly adapt to the changing environment. This is where local path planning methods allow the vehicle to plan a safe and fast path to the target location

And this whole array of questions for Path and Trajectory started from this - Medium Article

The term, which we have been referring to local path planning, is actually mentioned as Trajectory Planning. Moreover, this is what is commonly used across my team colloquially.

Local Planning

Q3 - So is it Local Planning or Trajectory Planning?


Not just a medium article, Reference - Real-Time Motion Planning (A highly cited survey) also reinforces the same for Trajectory Planning/Generation

Path-planning is therefore the problem of finding a geometric path from an initial configuration to a given terminating configuration such that each configuration and state (if time is taken into account) on the path is a feasible one. A feasible configuration/state does not result in a collision and adheres to a set of motion constraints such as road and lane boundaries, as well as traffic rules. Manoeuvre is a high-level characterisation of the motion of the vehicle, regarding the position and speed of the vehicle on the road. Examples of manoeuvres include ‘going straight’, ‘turning’, ‘overtaking’ etc. A manoeuvre is nominal if it is performed safely according to traffic or other rules. As a result, manoeuvre planning addresses the problem of taking the best high-level decision for the vehicle, while taking into account the path that is specified from path planning. On the other hand, trajectory is represented as a sequence of states visited by the vehicle, parameterized by time and, possibly, velocity. Trajectory planning (also known as trajectory generation) is concerned with the real-time planning of the actual vehicle’s transition from one feasible state to the next, satisfying the vehicle’s kinematic limits based on vehicle dynamics and constrained by the navigation comfort,2 lane boundaries and traffic rules, while avoiding, at the same time, obstacles including other road users as well as ground roughness and ditches. Trajectory planning is parameterized by time as well as acceleration or velocity and is frequently referred to as motion planning.

Now assuming Trajectory Planning is referred to Motion Planning, Trajectory Control should be referred to Motion Control. But once again, as per Reference - Trajectory Tracking and Path Following, Motion control can be broadly categorized as follows:-

The problems of motion control addressed in the literature can be roughly classified in three groups:

  • point stabilization, where the goal is to stabilize a vehicle at a given point, with a desired orientation;
  • trajectory tracking, where the vehicle is required to track a time parameterized reference, and
  • Path following, where the vehicle is required to converge to and follow a desired path, without any temporal specifications.

Q4 - Then, what is motion planning and control? I am not convinced that the terms can be used interchangeably. Because in controls, almost everything is precisely defined, and I don't see how this should be a different case.


Q5 - Complementing the "planning" algorithms are "following" algorithms. So, does the entire structure of control, be it "PID", or "Stanley Control" or "Pure Pursuit Control", or any of the generic non-linear control, all fall under Path Following and Trajectory Following domain?


Reference - Path Following for Underactuated Systems - A desired path is provided, but the external force is varying with time. And as a result the control law as well.

$$ u = -V_c \cos(\sigma - \psi) + f(t) \cos(\theta)$$

Q6 - So, even though a Path doesn't contain time-scaling information, is it possible that the Path following controller may be endowed with time information?


Q7 - One extremely generic question - Provided a car-like mobile robot, has to go from Point A to Point B. Do I need to specify just the intermediate way-points, to specify a Path, or do I need to specify the intermediate Poses as well, i.e. what is its orientation at all those waypoints. But intuitively, a path should not necessarily have orientation right? Similarly, for a quadcopter path, do I really need to specify Yaw angles at the intermediate way points, when I specify a path? Or just a curve $(x,y,z)$ to be followed?

As you can see, there is quite a bit of confusion,- which should be easily cleared if there is a concrete theoretical basis to support the definitions, which I haven't yet been able to find. It's only some hand-waving and play of words. So, I would really like to get a discussion to be started.

Some of the relevant similar questions that I already considered-

What is the difference between path planning and motion planning

What is the difference between motion planning and trajectory generation?

What are the differences between trajectory planning, trajectory tracking, path planning, path following and motion planning?

$\endgroup$
3
  • $\begingroup$ please focus your post to one question ... this is a question and answer site, so you will have to pick one correct answer $\endgroup$
    – jsotola
    Commented Feb 22 at 3:35
  • $\begingroup$ I agree. But it's all so related so I wanted to give context. Else, please suggest and I can modify it $\endgroup$
    – Manish
    Commented Feb 22 at 3:44
  • $\begingroup$ Also, my primary question remains the same. The differentiation between all. $\endgroup$
    – Manish
    Commented Feb 22 at 3:46

1 Answer 1

2
$\begingroup$

Well I think you got it right for the differentiation.

Path planning is about generating a path, that is not related to time. The planning algorithm may take into account some holonomic constraints, or actuator limits (joints / steering angle). I do not quite see how path planning can handle dynamics, as this obviously involves the time.

Trajectory planning is about generating a reference x(t) to be tracked by the system. Again, the algorithm may take into account some constraints like maximum velocity or acceleration.

Path / trajectory tracking are controllers. They may, or not, take advantage from the fact that we know in advance the future reference, or their derivatives. Typically a static feedback linearization for mobile robots allows to track a trajectory without having to look ahead. The opposite would be to rely on MPC.

Finally, motion planning is quite similar to trajectory planning except that the algorithm focuses on the trajectory in the command space, instead of the state. This is typically done in MPC, on a short time horizon. If you have a perfect motion planner then you already have your controls. If you have a perfect trajectory planner, you still need some controller to actually track this trajectory.

As for Q7, it depends on your controller. Does it need the orientation or can it deal with the sole position reference? For the vehicle case, the orientation is given by the (x,y) derivative anyway. For the drone, you may be able to track the same (x,y,z) trajectory using any yaw. If the trajectory does not contain the info the yaw will be arbitrarily varying from the control outputs.

$\endgroup$
3
  • $\begingroup$ Yes, after having done some more digging, I am also convinced that this explanation is right. However,if you refer here - skat.ihmc.us/rid=1K7WQT337-XQJP8C-1YHM/…, the paper by LaValle, the creator of RRT, he has himself clearly mentioned KinoDynamic planners as "Trajectory planners". So I would attribute description in the survey paper to be wrong or more of a hybrid approach to planning. $\endgroup$
    – Manish
    Commented Feb 26 at 2:48
  • $\begingroup$ Could you add some references for motion planning? $\endgroup$
    – Manish
    Commented Feb 26 at 2:49
  • $\begingroup$ RRT can be used as a path, trajectory or motion planner depending on the considered state and on the implementation of the Expand function (e.g. going from a known node to an arbitrary new state). If the orientation, or velocity, is part of the state then RRT is a trajectory or motion planner. The drawback to using it as a motion planner is that it makes the variant (RRT*, bi-RRT, etc.) more complex as there are more components in the state. It is thus more difficult to shortcut arbitrary parts to get to the same (full) state at the end. $\endgroup$ Commented Mar 6 at 17:53

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.