CS 326 A: Motion Planning Kinodynamic Planning
Underactuated Robots Fewer controls than dimensions in configuration space What is a degree of freedom: number of dimensions of C-space (global) or number of controls (local)?
How can m controls generate span a C-space with n>m dimensions? By exploiting mechanics properties: - Rolling-with-no-sliding contact (friction), e.g.,: car, bicycle, roller skate - Conservation of angular momentum: satellite robot, under-actuated robot, cat - Others: submarine, plane, object pushing Why is it useful? - Fewer actuators (less weight) - Design simplicity - Convenience (think about driving a car with 3 controls!)
Example: Car-Like Robot y x Configuration space is 3-dimensional: q = ( x, y, ) But control space is 2-dimensional: ( v, ) with | v | = sqrt[(dx/dt) 2 +(dy/dt) 2 ] L dx/dt = v cos dy/dt = v sin d dt = (v/L) tan | < dx sin – dy cos = 0
Example: Car-Like Robot y x L q = (x,y, ) q’= dq/dt = (dx/dt,dy/dt,d /dt) dx sin – dy cos = 0 is a particular form of f(q,q’)=0 A robot is nonholonomic if its motion is constrained by a non- integrable equation of the form f(q,q’) = 0 dx/dt = v cos dy/dt = v sin d dt = (v/L) tan | < dx sin – dy cos = 0
Example: Car-Like Robot y x L Lower-bounded turning radius dx/dt = v cos dy/dt = v sin d dt = (v/L) tan | < dx sin – dy cos = 0
How Can This Work? Tangent Space/Velocity Space x y (x,y, ) y x L dx/dt = v cos dy/dt = v sin d dt = (v/L) tan | < dx sin – dy cos = 0 (dx,dy,d ) (dx,dy)
How Can This Work? Tangent Space/Velocity Space x y (x,y, ) y x L dx/dt = v cos dy/dt = v sin d dt = (v/L) tan | < dx sin – dy cos = 0 (dx,dy,d ) (dx,dy)
Nonholonomic Path Planning Approaches Two-phase planning: (first paper) Compute collision-free path ignoring nonholonomic constraints Transform this path into a nonholonomic one Efficient, but possible only if robot is “controllable” Plus need to have “good” set of maneuvers Direct planning: (second paper) Build a tree of milestones until one is close enough to the goal (deterministic or randomized) Robot need not be controllable Works in high-dimensional c-spaces
Path Transform Holonomic path Nonholonomic path
Coverage of a Path by Cylinders x y + q q’
Type 1 Maneuver Allows sidewise motion CYL(x,y, , ) = 2 /cos d = 2 (1/ cos - 1)
Type 2 Maneuver Allows pure rotation
Combination
Coverage of a Path by Cylinders x y + q q’
Combination
Path Examples
Drawbacks of Two-phase planning Final path can be far from optimal Not applicable to robots that are not locally controllable (e.g., car that can only move forward)
Control Lie Algebra Lie Bracket [X,Y] = Basic maneuver based on 4 motions X ( t) Y -X -Y
Control Lie Algebra Lie Bracket [X,Y] = Basic maneuver based on 4 motions For example: X: Going straight Y: Turning, angle dx/dt = v cos dy/dt = v sin d dt = (v/L) tan | < dx sin – dy cos = 0
Control Lie Algebra Lie Bracket [X,Y] = Basic maneuver based on 4 motions For example: X ( t) Y -X -Y [X,Y] ( t 2 ) X: Going straight Y: Turning, angle
Control-Based Sampling Previous sampling technique: Pick each milestone in some region Control-based sampling: 1.Pick control vector (at random or not) 2.Integrate equation of motion over short duration (picked at random or not) 3.The endpoint is the new milestone Tree-structured roadmaps Need for endgame regions
mbmb mgmg Control-Based Sampling endgame region
Example dx/dt = v cos dy/dt = v sin d dt = (v/L) tan | < dx sin – dy cos = 0 1. Select a milestone m 2. Pick v, , and t 3. Integrate motion from m new configuration
Computed Paths max = 45 o, min = 22.5 o Car That Can Only Turn Left max = 45 o Tractor-trailer
Another Example Cooperative load carrying (Grasp Lab - U. Penn)
Nonholonomic vs. Dynamic Constraints Nonholonomic constraint: q’ = f(q,u) where u is the control input (function of time), with dim(u) < dim(q) dx/dt = v cos dy/dt = v sin d dt = (v/L) tan | < dx sin – dy cos = 0 u = ( v, )
Nonholonomic vs. Dynamic Constraints Nonholonomic constraint: q’ = f(q,u) where u is the control input (function of time), with dim(u) < dim(q) Dynamic constraint: s = (q,q’), the state of the system s’ = f(s,u) where u is the control input
General Dynamic Equation For an arbitrary mechanical linkage: u = M(q)q” + C(q,q’) + G(q) + F(q,q’) where: - M is the inertia matrix - C is the vector of centrifugal and Coriolis terms - G is the vector of gravity terms - F is the vector of friction terms + constraints on u
Nonholonomic vs. Dynamic Constraints Nonholonomic constraint: q’ = f(q,u) where u is the control input (function of time), with dim(u) < dim(q) Dynamic constraint: s = (q,q’), the state of the system s’ = f(s,u) where u is the control input Similar techniques to handle nonholonomic and dynamic constraints (kinodynamic planning)
“Space” Robot (ARL Lab) air bearing gas tank air thrusters obstacles robot
Modeling of Robot x y f q = (x,y) s = (q,q’) u = (f, ) x” = (f/m) cos y” = (f/m) sin f f max s’ = F(s,u)
mbmb mgmg PRM in State (x Time) Space The roadmap is a tree oriented along the time axis endgame region
Computed Path Mean planning time:.002 s Mean number of milestones: 22
Another Path Mean planning time:.27s Mean number of milestones: 1946
Example with Replanning
Another Example with Replanning Total duration : 40 sec
mbmb R (m b ) Endgame region Expansive Space m R w (M) R w (m) lookout point lookout
Expansive Space Visibility Reachability S VisibilityReachability
Optimality of a Trajectory Often one seeks a trajectory that optimizes a given criterion, e.g.: –smallest number of backup maneuvers, –minimal execution time, –minimal energy consumption Bobrow’s paper + variational techniques
Variational Path/Trajectory Optimization Steepest descent technique. Parameterize the geometry of a trajectory, e.g., by defining control points through which cubic spines are fitted. Vary the parameters. For the new values re- compute the optimal control. If better value of criterion, vary further. No performance guarantee regarding optimality of computed trajectory