As we learned in the last video, nonholonomic mobile robots are not linearly controllable. They may, however, satisfy weaker controllability conditions from nonlinear control theory. We model a nonholonomic mobile robot as a nonlinear control system of the form q-dot equals G of q times u, where the configuration q is an n-vector, and the control input u is an m-vector, where m is less than n, and the controls are restricted to some subset capital U of the m-dimensional control space. G of q is the n-by-m matrix whose columns are the control vector fields. For a system like this, we can define global controllability, small-time local controllability, and small-time local accessibility. First, we say the robot is controllable from a configuration q if, for any q_goal, there exists a control that drives the robot from q to q_goal in finite time. For the local definitions of controllability, let's first establish the concept of a reachable set. Consider a configuration q in the two-dimensional space of your screen. Define a neighborhood W of q, a full-dimensional open ball of the configuration space with q in its interior. Now consider all feasible trajectories emanating from q, for all possible controls u of t, running for time less than or equal to capital T while remaining within the neighborhood W, as in this animation. We define the reachable set R^W of (q, less than or equal to T) as the set of reachable configurations in time less than or equal to T without leaving W. In the limit as W and T become arbitrarily small, the reachable set could look like this: the robot is locally confined to a lower-dimensional subset of its configuration space. Another alternative is that the locally reachable set looks something like this. The robot can locally reach a full-dimensional subset of its configuration space, but the initial configuration q is on the boundary of the reachable set. A final alternative is that the locally reachable set looks like this. The reachable set is full-dimensional, and the initial configuration is in the interior of the reachable set. This means the robot can locally move in any direction. Returning now to our controllability definitions, the robot is small-time locally controllable from q, or STLC, if the locally reachable set is full-dimensional and contains the initial configuration in the interior. We say the robot is small-time locally accessible from q, or STLA, if the locally reachable set is full-dimensional but does not contain the initial configuration in the interior. In these definitions, "small-time" refers to the fact that the property holds as the time T goes to zero, and "local" refers to the fact that the property holds as the neighborhood becomes arbitrarily small. A car provides a good example of the small-time properties. A typical car is STLC at every configuration in its three-dimensional configuration space. For example, if the goal is to move backward a short distance, the car does not have to move far away to accomplish this. If the goal is to rotate in place, a forward turn, backward translation, and forward turn does the trick. Finally, if the goal is to move sideways, again, two forward turns and a backward translation achieve the motion. No matter how much you shrink the neighborhood the car is allowed to maneuver in, it can still achieve motion in any direction without leaving the neighborhood. Technically, to satisfy the "small-time" condition, it must take zero time to switch between the forward and reverse gears, but we won't model the switching time. We're more concerned with the spatial aspect of STLC. STLC is an important concept in motion planning. If a robot is STLC at every configuration, then it can follow any path arbitrarily closely. In other words, the nonholonomic robot can go anywhere among obstacles the omnidirectional mobile robot can go. For example, you can always parallel park your car into a space larger than your car. The drawback is that the nonholonomic robot may have to move slowly, as it switches between forward and reverse gears. If the car has no reverse gear, and the goal is to move a small distance backwards, the car has to travel far away, as shown here, outside a small neighborhood of the two configurations. The neighborhood is drawn here in 2 dimensions, but of course the neighborhood includes the third dimension, the orientation of the chassis. The locally reachable set is three-dimensional, but it's not a neighborhood of the initial configuration. Therefore this car is STLA but not STLC. If a robot with velocity constraints satisfies any of these three controllability conditions, then the velocity constraints do not integrate to equality constraints on the configuration, and therefore the constraints are nonholonomic. When we say that a mobile robot is nonholonomic, we imply that it satisfies at least one of these three controllability definitions. These controllability definitions apply to general nonlinear systems, not just mobile robots. For our canonical nonholonomic robot, however, if a local property holds at any configuration, then it holds at all configurations, since the motion capability does not depend on the robot's configuration. Also, STLC at all configurations implies controllability on any open connected component of free space, since any path can be followed arbitrarily closely. In the next video, I'll describe the Lie bracket of vector fields, a key concept in establishing controllability properties.