What are the differences between trajectory planning, trajectory tracking, path planning, path following and motion planning? And what are the basic methods they use?
To begin with, let's first define the term trajectory and path. Once these definitions are clear, the rest will follow.
Path is the set of all points a robot places itself at, to move from point A to point B.
Trajectory is path with time information. Simple!
So let's say if a robot moves from A(0,0) to B(4,4) along y = x curve, we say that the line joining the points A and B is the path the robot followed. However, if I say that the robot traversed along the path such that at t=0, it is at (0,0), at t=1, (1,1), at t=2, (2,2) and so on, then, not only I'm specifying the robot's position on the path, but also the time instants at which the robot is at a particular points on the path. This is trajectory. This is why you often hear SpaceX guys saying "trajectory looking nominal" and not "path looking nomimal", the reason being that they have designed the rocket such that it must be at some defined points at defined time instants, in order to get out of Earth's atmosphere.
Few observations from the distinction between the two definitions; From trajectory, we can get velocity and acceleration values along with the position. But a path only defines the position and says nothing about the velocity and acceleration. The robot can take whole day to move from A to B, or it can take 1 min, 1hr or 1sec to move from A to B, we don't know!
Trajectory tracking - the process of observing the positions of the robot along with the time instants at which it is present at the desired positions
Trajectory planning - the process of planning the motion of the robot between point A to point B such that it covers the distance between the points in a time controlled manner i.e. it moves from A to B by traversing portions the path between A and B in defined time intervals. We also make sure that the robot moves exactly along the path we want it to move on.
Path planning - same as trajectory planning, but we don't consider the time constraints. We are concerned only with making the robot move from A to B.
Motion planning deals with path planning considering the external factors encountered during the motion like traffic, obstacles, bumps, dead points etc. So in motion planning you would not only move from A to B, but you would move in such a way that you don't collide with other objects(for eg.) or you would follow some walls, or follow some lines etc. One example of motion planning will be autopilot! Autopilot makes the aircraft move from one airport to another in such a way that the aircraft doesn't collide with other aircrafts in air. Only path planning will give you n number of ways to reach Airport B, but motion planning will give you the most appropriate one which obeys the constraints you defined for the motion.
Basic methods of motion planning are Bug1, Bug2, tangent bug, wavefront planner, A*, Djikstras. The list is endless!