Nonholonomic Multibody Mobile Robots Controllability and Motion Planning
Nonholonomic Multibody Mobile Robots: Controllability and Motion Planning in the Presence of Obstacles (1991) Jerome Barraquand Jean-Claude Latombe
Controllability n n A robot is controllable if for any q 1 and q 2: a free path between from q 1 to q 2 a feasible free path from q 1 to q 2 A multi-body robot is controllable if it can take on at least 2 different steering angles, j 1 and j 2, on the interval [-p, p), and can move both forward and backward
Motivation n How do we actually generate a feasible path? Other algorithms first generate a free path ignoring nonholonomic constraints, then convert to a topologically equivalent feasible path. We would like to take our constraints into account as we plan our path
Algorithm Overview n n n n Series of hinged bodies with wheels on flat ground, no slipping Front wheels have 2 different steering angles, jmin and jmax, in the range of [ -p, p) Arbitrary obstacles Searches for a path from qinit to any configuration within a neighborhood of qgoal Asymptotically complete Optimal in number of reversals Exponential in number of bodies of the robot
Summary of How It Works n Searches a tree where each node is a feasible configuration n At each step, considers only the option of setting the steering angle to jmin or jmax, backing up or going forward Successors of a node represent configurations where the car can be dt 0 time later n
Summary of How It Works n n Expand the tree in an order that minimizes reversals Tricks to prune the tree Ø Limit your search depth (H) Ø Avoid visiting identical configurations (R)
Generating Successors n n Consider only a set of discrete values for v and j, specifically v=-1 or 1, j =jmin or jmax. Integrate velocity equations defined by nonholonomic systems over dt 0 to compute each new position dx/dt = v cos(j) cos(q) dy/dt = v cos(j) sin(q) L dq/dt = v sin(j)
Growing the Tree n n n n Maintain fringe nodes in heap Select the fringe node along a path with the least number of reversals, tie goes to shortest path Terminate this node if it collides with an obstacle or is in a previously visited configuration Mark node’s configuration as visited Test if node’s configuration is in the neighborhood of the goal Add node’s successors to fringe Bound maximum search depth (H)
Node Deletion n A node is deleted (i. e. we don’t need to expand it) if: Ø The path between this node and this node’s parent collides with an obstacle use a bitmap to represent workspace Ø Current configuration is in the neighborhood of a previously visited configuration • Store an array A composed of 2 R(p+2) parallelepipeds which • • maps entire configuration space R is user provided tuning parameter, p is the number of bodies in the robot Need two separate arrays for going forward and in reverse
Completeness and Optimality n n Algorithm achieves controllability if dt 0 is set small enough, and R and H are set large enough Since nodes along paths with minimum number of reversals are expanded first, algorithm is optimal in number of reversals (if dt 0, R, and H are fine enough)
Picking Tuning Parameters n n n Three tuning parameters dt 0, R, and H If algorithm returns failure, you don’t know if there is no solution or if dt 0, R, and H were not set properly Small dt 0 might be necessary; results in much larger tree Values of dt 0, R, and H are dependent on each other; setting the parameters in the order dt 0, H, and R works well Guess dt 0 using prior knowledge of the workspace Can use faster algorithm ignoring nonholonomic constraints to test if solution is possible, then keep refining dt 0 until solution is found
Performance n n n Exponential in the size of the configuration space (number of bodies of the robot) Exponential in R, so in practice should be exponential in 1/dt 0 Not very practical for robots with more than 2 bodies, but can solve some difficult problems in reasonable amounts of time
Performance (in 1991) Random Obstacles Car That Can Only Turn Left jmax=45 o, jmin=22. 5 o, R=9, 20 sec. jmax=45 o, R=9, 2 min.
Performance (in 1991) jmax=45 o, R=7, 20 min.
Algorithm Evaluation n n General/Extendable: With modest changes, could work for other types of robots with different nonholonomic constraints or in a 3 D environment; room for speed optimizations dealing with the tree search Complete and Optimal: In the asymptotic case will always find a path (if one exists) with the minimum number of reversals Approximate: Final configuration is in the neighborhood of goal Discrete Steering Angles: Does not take advantage of possibility of steering angles on continuous interval Ø Use more discrete steering angles than 2 (increases branching factor) ØUse some kind of smoothing algorithm
Algorithm Evaluation (Cont) n Minimizes Reversals: Better than most algorithms but still not necessarily what you want; perhaps could try a different evaluation metric
- Slides: 16