presentation by Anusheel nahar
OVERVIEW OF PRESENTATION
. controlability with non holonomic inequality constraints
. implementation using grid decomposition for car
like
and tractor trailer robot satisfying
non holonomic inequality constraints
. implementation for a NHR on a natural 3-D surface
like a planetary rover
. jumps for a point NHR using CSC curves
. planning method using jumps
. shortest path accessibility region for a car like
robot that can only move forward
what does a non holonomic constraint mean?
. tangent space(ie set of velocities) of parameters
constrain the motion of robot such that
the resulting dynamic equation is non integrable
with respect to time .
e.g a car like robot cannot move perpendicular
to its main axis
tangent space dx/dt
.sin(theta)=dy/dt .cos(theta)
x= xcoordinate of centre of rear axle midpoint
y= ycoordinate of centre of rear axle midpoint
theta = heading angle of the car
how does NH equality constraint
effect the state of the robot ?
.NH equality constraints reduces the dimensionality
of the configuration space
.if there are k constraints then the dimensionality
is reduced by 1 per constraint
non holonomic inequality constraints
. A car like robot has 2 parameters
that govern its motion/position
velocity of rear wheel v
steering angle
phi
. for most real cars the steering
angle is constrained
-phi
max< phi < phi max
+ve = left turn
-ve = right turn
. radius of turn
R= front_rear wheel
axle seperation/tan(steering angle)=L/tan(phi)
Rmin=L/tan(phi_max)
(velocity of car along
axis)/R= d(theta)/dt
(dx/dt)^2+(dy/dt)^2=(R*(d(theta)/dt))2>=Rmin^2*((d(theta)/dt))2)
so the constraint
(dx/dt)^2+(dy/dt)^2-Rmin^2*((d(theta)/dt))2)>=0
how does a non holonomic inequality
constraint effect
.it picks up a subset of velocity
vectors (x' , y', theta') from the m-k ie (3-1 )
dim tangent space
for the car like / (4-1)tractor trailer robot which satisy the constraint
controllability with inequality
constraints
.for a car like robot
the 2 constraints mean
1.
it cannot move sideways
2. it cannot move on a
radius less than R_min
.if we can define manuevers
which lead to destinations without violating 1
and 2 then we are done.
then given a obstacle
free world we can reach any configuration to any other
just like a free moving
robot having 3 degrees of freedom
formal proof :refer book
manuever 1
1.consists of 3 segments
-arc of radius
= R_min (left) angle =delta theta
-straight line
tangent to the circle1 symmetric about the initial pos(in rev gear)
-arc of radius
= R_min (right) =delta theta
sideways
distance moved= 2*R_min*(1/cos(delta_theta) -1)
this manuever can
be made sufficiently small in terms of the distance moved sideways
by reducing delta_theta.
this mitigates
the effect of constraint 1
2. any amount sideways movement
can be acheived by concatenating sufficient
no. such manuvers(however
small).
manuever of type 2
.consists of 3 segments
- arc of
radius(R_min) by delta theta say towards right
- segment
in rev gear
- arc of
radius(R_min) by delta theta towards right
angle rotated= 2*delta theta
any amount of rotation can be obtained by the above
manuver so effectively
mitigating constraint 2
IMPLEMENTATION FOR A CAR LIKE ROBOT
approach1
generate a path ignoring the NHC using normal methods
like PRM ,potential fields and then try to convert it using the above manuvers
.
-by simeon and laumond
problems
-very expensive
-unreasonable paths obtained
approach2
generate a set of corridors
along which the robot can safely travel and
use the above curves for transferring
between the corridors
problems
-generally very difficult to
define a set of corridors in a workspace
- inefficiencies while trying
to add various interacting curves to get a global solution
approach3
task: reach (x2,y2,theta2) from (x1,y1,theta1)
governing equations
1.x' = v * cos(theta)
2.y' = v * sin(theta)
3.theta' = v/L * tan(phi)
v = speed along the axis
theta = heading angle
on integrating we get
theta(t)= theta(0)+ v/L*tan(phi*t)
x(t)=x(0) + L/tan(phi) *(sin(theta(0)+v/L
*tan(phi))-sin(theta(0))
y(t)=y(0) - L/tan(phi) *(cos(theta(0)+v/L
*tan(phi))-cos(theta(0))
1. discretize and divide the space (x,y,theta) into
3D m*m*m cells grid.
2. we take t=1 and try to integrate along small paths
in the grid
3. we use the parameters v,phi for searching
given a node we generate next 6 nodes s.t
(v,-v)*(-phi_max,0,phi_max)
ie forward Fw, forward left FwL ,forward
right Fwr
and similiarly for backwards Bw,Bwl,Bwr
and integrate the selected pair on a
small path t=1 by putting in the integrated eqn
assumptions
1. robo has only 2 velocities +-v
2. we consider it to go only least radius
4. maintain a tree
a. start node = x1,y1,theta1
b. add the 6 following nodes in
the tree and mark them on the grid as visited
c. generate subsequent 6 and so
on
d. if a node corresponds to intersection
discard the branch
e. if a node is already visited
discard it
f. do so till the cell where the
goal is reached
g the nodes can be added in sorted
order in terms of a cost function
5. issues
. time is taken as 1
. velocity =2*length of a grid element so as
to prevent the robo to stay in the
same cell on any motion and also to prevent
it from going into a cell
farther than 2 cells (this could lead
to collision detection misses)
. cost function = no.reversals (gives
too long path)
. good cost function based on both time and
reversals
6.results
. good results for parallel parking problem
and small maps
with 128^3 cells
. also good for solving locked steering problem
7.complexity
expensive O(m^n * log(m^n))
m = cells per dimension
n = dimensionality of the space
EXTENSION TO TRACTOR TRAILER PROBLEM
1.
governing equations of the model
x1' = vcos(theta1)
y1'= vsin(theta1)
theta1' = vtan(phi)/L1
theta2' = v/L2
*sin(theta1-theta2)
L2= wheel seperation
of trailer and rear wheels
theta2= heading
angle of trailer
2. last equation is non integrable . solved by numerical methods
3.results for 64^4 discretization
IMPLEMENTATION FOR A PLANETARY ROVER ON A 3D SURFACE
1.introduction
-6 wheeled robot on a 3D surface
-having 6 degrees of Freedom
(x,y,z),(roll,pitch,yaw) of the
main frame of the robo
you control the torque on each
of the wheels
2.dimensionality
6+n(due to kinematic/dynamic/friction constraints
of surface/wheel interactions) dim space causing heavy computation time
3. constraints
-geometric obstacles which u have
to avoid at all costs
-other bad areas which may be entered
into but will effect the performance of the
robo like slippery areas
- some wheels have always to be
on the ground
- non holonomic constraints
4.use 2stage approach to find
a safe and executable path
- first generate a global path satisfying
geometric constraints
- locally optimize on it
5. modelling of the robot
- grid of interacting rigid objects satisfying newton
/ euler equations of dynamics
- these objects connected by connectors modeled on
dampers and springs.
- e.g model a revolute joint as 2 pairs of points
1 in each part along the axis of the joint
6 modelling of surface
- as a grid of points with each point being at a centre
of a non elstic sphere
-the surafce as envelope of the spheres
- these points are governed by viscoelastic laws modelled
using dampers/springs/masses
etc
7 geometric path palnning
reduce the problem to 2-D carlike
.ignore terrain effects now
.similiar to the above graph search method
.except instead of taking v,phi,t constants
we do the following
v= ev*v_max
|phi|=ep*|phi_max|
ev<1,ep<1
and keep them constant for a short path.
so you on a radius > min radius
t is chosen such that atleast 1
grid cell is moved in 1 step of node generation.
cell size= 1 robo length in this
case.
8.cost function
takes into account the past and the futurejean
daniel boissonat
euclidean distance may be used
but distance of a curve like C1SC2 circle-segment-circle
can be used
9.dynamic motion planning
aim
.smoothness
.ensure that the robot
can execute a safe path
.the robot may need to
stop at certain points and manuver
to
ensure passage on certain types of terrain. all this makes exact path prediction
very difficult
to overcome these we see that
there are 2 kinds of points
1. manuevering points
where the steering angle changes . velocity < v_max( radius of
curvature,terrain)
2. straight paths where
angular velocity is nearly 0
10 actual physical planning
1. generate a path of CSC type
on a local scale
2. try to apply certain control
torques on the wheels at each incremental steps and analyse
the surface
wheel interactions based on the model. this will show up the
sliding interactions as well and the robo may drift
away from the nominal path
3. assume v and theta to be
constant during each time step delta t
4. if the robot goes too far
from the desired path of CSC type we discard that node and apply
another control
torque to the wheel and do it till a nearly good path is obtained
JUMPS
modeling
. the NHR can be modelled as
a point robot with x,y, theta by appropriately
growing the
obstacles
.given a obstacle free world
a NH robo can reach
any configuration to any other by executing
a curve of CSC
type with radii of circles being the min turning radii
. 4 types of curves
1. Left -Left LL
2. LR
3. RR
4. RL
where the sequence shows the directions of the 2 circles of min turning
radius
a semi free path (one that touches the
obstacles atmost at a finite no. obstacles)
can be broken into a no. subpaths.
-each can be further broken down to represent a jump
recursively if the whole does not
lie in the free space.
-we eliminate subarcs lying entirely in free space
by translation
longer than R_min*pi are made equal to
R_min*pi which may in turn touch an obstacle
shorter ones may be reduced or made into
straight lines. thus a semi free path consisting
of only jumps can be obtained . which
is executable.
algo
jacob and canny
1.we make a set of nodes s.t
if it is a vertex of a polygon
then we consider (x,y,theta(k))
where k= 0,1,2.... 2*pi/delta-1
2. divide each edge into some no. points
the robot can slide along it only
in 2 directions +-theta(e)
include the node (xl,yl,+-theta(e))
3. 2 nodes are connected if using a directed
jump we can reach from a start to a goal
4. path planning can be done by searching the graph
and using some cost function
assume n(e)=linear fn of (1/delta)
no nodes = O(n/delta)
graph building =O((n/delta)^2)
collision check for each jump=O(n)
time complexity= O(n^3/delta^2)
**efficiency can be improved by not counting nodes
which represent vertex and point inside
the obstacle /or is diagonally opposite to such
better use of jumps by using jump graphs
O((nlogn+1/delta)*n^2/delta)
comments on motion of a car like
robot modeled as a point that can only move forward
1.put origin on robot
2. let robo point in positive x axis
3. make circles corresponding to left and r
LS=left straight
LR=right left on (circles)
we consider only +ve y plane .for -ve plane the story
is symmetric
to move to a point in x>0 and lying outside
the circle
.LS is optimal path
.for path on circle L is best
.for path inside the circle x>0
RL is best
.for path on/inside circle on x<0
RL is best
.for others LS is better
d= distance of the optimal path
which can be used to draw the iso distance lines
the arcs x>0 act like a wall the lengths for pointsjust
inside and just outside are vastly different
LvSo
distance=pV
v= angle travelled in left arc
RLv
=p(2pi-v+2/3(pi-v))
applications for
modelling car chasing problems
references
1.jean daniel boissonat INRIA
here
2.cherif laugier
INRIA