Planning
As soon as the robot controller can rely on models of itself, and of the environment it must act in, it can use the information in these models to predict the outcome of possible actions, in order to select the “best” one. (Or an “appropriate” one if the best action is too complex to calculate.) One common example of models are maps of the environment, and the action that takes place on those maps is navigation: which motions must the robot make in order to travel from position A to position B.
Planning must take into account the goals to be reached in the current task, as well as the constraints on the resources that the robot has available, and the constraints on the motion degrees of freedom that the environment imposes on the robot. In addition, the robot usually has only incomplete information about the world, so the planning must either be robust against the influence of this uncertainty on the accuracy of the available models, or be able to schedule robot actions that generate the missing information.
Planning algorithms come in a large variety; the division followed in the WEBook runs roughly along the lines of the common hierarchy of robot architectures:
-
Interpolation. This is the planning activity with the shortest time horizon, the most deterministic and limited models, and the highest hard realtime constraints. Interpolation determines how the robot should move in each sample time of its fastest control loop, in order to reach the next target position. In other words, the path from “A” to “B” is subdivided into a large number of very small increments. The calculation of these interpolation points only takes into account the (instantaneous) constraints of the robot itself (workspace boundaries, kinematic singularities, actuator saturation, etc.), and not any possible external constraints (e.g., collisions with objects in the environment).
In general, interpolation is not limited to only positions, but can also be applied to the time derivatives of position (velocity, acceleration, etc.). Also non-geometric “motions” can be interpolated, such as trajectories in joint torques, laser cutter power, or milling speeds.
Interpolation is most important in “hard realtime” robotics and automation: assembly, metal cutting, process control, etc.
-
Motion planning and navigation. This is the planning activity that calculates the “viapoints” that the robot should move through in order to reach a certain desired position in the world. These viapoints are much “further apart” than the interpolation points mentioned above. The motion planner also takes into account possible obstacles in the environment, and can make trade-offs between different possible motions.
Motion planning is most relevant for mobile platforms, or for contact-less object manipulation with robot arms.
-
Task planning. This is the planning activity that calculates the order in which the robot should execute “actions” or “(sub-)tasks”, in order to reach a specified goal. In general, this involves more than just motion planning: tool changes, planning of stable sub-assemblies, resource scheduling, etc.
Task planning is most often a discrete activity, without strict timing constraints, and is most relevant for robotic activities that involve a sequence of actions, such as assembly, “travelling salesman”-like jobs, etc.
-
Mission planning. This is the most ambitious planning activity, in which the planner must also autonomously find the tasks that are needed to fulfill the mission. Typically, multiple “agents” must be planned, coordinated and synchronized.