52.1 Introduction

For a robot to accomplish a given high-level task – such as grabbing an object on a conveyor belt and placing it on a shelf – this task must be translated into low-level commands understandable by the robot operating system. This whole process, known as “motion planning,” can be broken down into a number of steps, as illustrated in Fig. 1. Note that, for clarity, the different levels and steps were represented in a sequential, linear fashion. In practice, however, several levels or steps might sometimes be addressed at the same time: for instance, when planning at the “trajectory” level, one might have to take into account the robot torque bounds, which appear at the “actuator commands” level.

Fig. 1 From task to commands. The work-space task may consist in, e.g., bringing the end effector of the robot manipulator from a starting position and orientation in space, where it has just grabbed the object, towards a goal position and orientation, where it can safely release the object onto the shelf. Inverse kinematics finds the manipulator joint angles that allow achieving the desired end-effector position and orientation. The joint-space task would then consist in connecting the starting joint angles and the goal joint angles. Path planning finds a collision-free path, that is, a continuous set of intermediate joint angles between the starting and goal joint angles, such that the manipulator does not collide with the environment or with itself at any of the intermediate joint angles. Time parameterization consists in finding the time stamps for the joint angles along the path, while respecting, e.g., the torque bounds and/or optimizing the traversal time or the energy consumption. Finally, instruction synthesis translates the desired trajectory into a set of instructions in the robot language, and command synthesis converts these instructions into low-level commands, such as the electrical current fed into the motors. Usually, this last step is performed internally by the robot controller provided by the robot manufacturer and is not accessible to the end user

Until recently, motion planning has mostly been performed by human operators: for a given task, a skilled, experienced operator would manually find the commands (using, e.g., a teach pendant and visual feedback) that would allow the robot to achieve the task. However, this approach is time-consuming and usually produces suboptimal trajectories. Further, if the task changes (even slightly), the whole tedious teaching process has to be done over again.
Impressive theoretical advances in the field of motion planning in the past few decades have brought about a new picture: it is now possible for a computer to find, in minutes or seconds, optimal commands for a robot to achieve a given task, even in very challenging, cluttered environments. Several companies, some of them spinning off from academia (e.g., Siemens Kineo, France/Germany or Mujin Inc., Japan), are developing software solutions that are in use in actual factories.
The current chapter discusses trajectory planning, which is a part of motion planning. Specifically, we shall focus on the problem of finding a trajectory of the joint angles between given starting and goal joint angles, see Fig. 2. It is thus assumed that appropriate computations have been carried out before (e.g., grab synthesis, inverse kinematics, etc.) or will be carried out after (e.g., robot instruction synthesis, command synthesis, etc.) this stage.

Fig. 2 Trajectory planning for a two-link manipulator. (a) The manipulator and the obstacles (black rectangles) in the work space. (b) Trajectories connecting qstart and qgoal in the joint space

Two important concepts, namely, constraints and optimization, are essential in trajectory planning. Constraints restrict the range of motions that the robot can execute. One can classify them into two categories. First, geometric constraints are the constraints that can be expressed solely in terms of the robot joint angles: these include bounds on the joint angles, avoidance of self-collision and of collision with obstacles, etc. These constraints can thus be fully taken into account in the path planning step. Second, kinodynamic constraints are the constraints that include higher-order time derivatives of the joint angles, such as bounds on the joint velocities, accelerations, torques, or motor current inputs. These constraints cannot be taken into account by path planning alone and must be considered at the trajectory level.
Optimization comes into play when there are more than one path or trajectory that allow achieving the task while satisfying the constraints. It is then interesting to select the path or trajectory that optimizes a given objective. At the path level, one might be interested in finding the shortest path in joint space or in the end-effector space. At the trajectory level, other optimization objectives, such as minimum time, maximum smoothness, minimum energy, etc., can be considered. Note that because of kinodynamic constraints, a shortest path might not correspond to a minimum-time or minimum-energy trajectory.
Scope of this Chapter From the above discussion, it is clear that there exists a very large variety of trajectory planning problems (Hwang and Ahuja 1992; LaValle 2006), in terms of robot structures, constraints, optimization objectives, etc. The present chapter focuses on problems arising from the industry: we shall specifically consider serial robotic manipulators, constraints arising from obstacle avoidance and from bounds on the joint angles, velocities, accelerations and torques, and optimization objectives related to the trajectory execution time. Also, we shall concentrate more particularly on the methods that are actually in use in the industry rather than cover the whole panorama of existing planning methods.
Organization The remainder of this chapter is organized as follows. In section “Path and Trajectory Planning,” some methods for geometric path planning and kinodynamic trajectory planning are presented. The focus of that section is on finding one feasible path or trajectory – optimization is not considered. In section “Path and Trajectory Optimization,” methods for path and trajectory optimization under geometric and kinodynamic constraints are reviewed. As stated above, we shall mostly consider the minimization of trajectory execution time. Finally, section “Conclusion” offers a brief conclusive discussion.