CS225B Robot Programming Laboratory

Download Report

Transcript CS225B Robot Programming Laboratory

Locomotion of Wheeled Robots
r
o
l
l
x
y
x
y
xy
z
m
o
t
i
o
n
3 wheels are sufficient and guarantee stability
Differential drive (TurtleBot)
Car drive (Ackerman steering)
Synchronous drive (B21)
Omni-drive: Mecanum wheels, PR2
[Many slides come from www.probabilistic-robotics.org and Steffen Gutmann]
7/7/2015
CS225B Kurt Konolige
Instantaneous Center of Curvature
ICC
• For rolling motion to occur, each wheel has to
move along its y-axis
7/7/2015
CS225B Kurt Konolige
Differential Drive
Two driven wheels
One passive (castor) wheel
TurtleBot, Erratic, Pioneers…
7/7/2015
CS225B Kurt Konolige
Differential Drive Kinematics
ICC  [ x  R sin  , y  R cos ]
ICC

 ( R  l / 2)  vr
 ( R  l / 2)  vl
vl
l (vl  vr )
2 (vr  vl )
vr  vl

l
vr  vl
v
2
R

R
(x,y)
y
vr
l/2
7/7/2015
x
CS225B Kurt Konolige
Differential Drive: Forward Kinematics
ICC


x
'
cos(
t
)
sin(
t
)0
x

ICC
x
IC
x














y
'

sin(
t
)
cos(
t
)
0
y

ICC
y

IC
y




 






'
0 1


0



t


 
R
Compare to PR (5.9), p 127
P(t+t)
For changing velocities, integrate
over small dt.
P(t)
7/7/2015
CS225B Kurt Konolige
Odometry
Integrating relative position information
➔ Need
7/7/2015
to deal with incremental errors
CS225B Kurt Konolige
Ackerman Drive
One driven wheel
Two passive wheels
Similar to front-driven cars
7/7/2015
CS225B Kurt Konolige
Synchronous Drive
• All wheels are actuated
synchronously by one
motor
➔Defines robot speed
• All wheels are steered
synchronously by 2nd motor
➔Sets robot's heading
• Orientation of robot frame
is always the same
➔Not possible to control
orientation of robot
frame
7/7/2015
CS225B Kurt Konolige
Active Casters
Rollin’ Justin (DLR)
PR2 (Willow Garage)
7/7/2015
CS225B Kurt Konolige
Mecanum Wheels
vx (v0 v1v2 v3)/4
Kuka Omni-Drive
vy (v0 v1v2 v3)/4
v (v0 v1v2 v3)/4
verror
(v0 v1v2 v3)/4
y
v1
v1
v0
v1
v0
v2
v3
v2
forward
7/7/2015
v0
v2
x
left
v3
CS225B Kurt Konolige
turn
v3
Motion planning is the ability for an agent to compute its own motions in order to
achieve certain goals. All autonomous robots and digital actors should eventually have
this ability
[Latombe]
7/7/2015
CS225B Kurt Konolige
Robot Motion Planning
7/7/2015
CS225B Kurt Konolige
Goal of Motion Planning
Compute motion strategies, e.g.:



Geometric paths
Time-parameterized trajectories
Sequence of sensor-based motion commands
To achieve high-level goals, e.g.:




7/7/2015
Go into a room without colliding with obstacles
Assemble/disassemble a car
Explore and build map of our department
Find an object (a person, the soccer ball, etc.)
CS225B Kurt Konolige
Mobile Robot Navigation
Path planning and obstacle avoidance

No clear distinction, but usually:
Path-planning


low-frequency, time-intensive search method for global finding of a path to a goal
Examples: road maps, cell decomposition
Obstacle avoidance


fast, reactive method with local time and space horizon
Examples: Vector field histogram, dynamic window approach
“Gray area”


7/7/2015
Fast methods for finding path to goal which can fail if environment contains “local minima”
Example: potential field method
CS225B Kurt Konolige
Path Planning
Global vs. Local Path Planning
Configuration Space




Each configuration is a point in the
space
Obstacles are regions of the space
A freespace path represents valid
motion
Hard – PSPACE hard
Local Methods




Potential field
Fuzzy rules
Motor schemas
Vector Field Histogram
Local Methods => Global Method?
Borenstein VFH
7/7/2015
CS225B Kurt Konolige
Vector Field Histogram [Borenstein and Koren]
Potential field method
• Workspace obstacles
• Obstacle probabilities
from Cartesian histogram
• Polar histogram of good
directions
7/7/2015
CS225B Kurt Konolige
Vector Field Histogram [Borenstein and Koren]
Potential field method
• Workspace obstacles
• Obstacle probabilities
from Cartesian histogram
• Polar histogram of good
directions
7/7/2015
CS225B Kurt Konolige
Vector Field Histogram [Borenstein and Koren]
Issues
• Width of robot, safety margin
• Cost function for handling tradeoffs: safety,
progress, etc.
• Trajectory and dynamics
• Oscillation
7/7/2015
CS225B Kurt Konolige
Tool: Configuration Space
Articulated object (4DoF)
7/7/2015
C-Space (2D cut)
CS225B Kurt Konolige
Configuration Space of a Disc
Workspace W
Configuration space C
path
y
x
Configuration = coordinates (x,y) of robot’s center
Configuration space C = {(x,y)}
Free space F = subset of collision-free configurations
7/7/2015
CS225B Kurt Konolige
Workspace
7/7/2015
CS225B Kurt Konolige
Configuration Space
7/7/2015
CS225B Kurt Konolige
Discretization
7/7/2015
CS225B Kurt Konolige
Dynamic Window Method [Fox et al.]
R  v /
vc  av dt  v  vc  av dt
c  a dt    c  a dt
Evaluating constant curvature path in
configuration space
Window of values based on one-step
acceleration
When will the robot crash?
7/7/2015
CS225B Kurt Konolige
Dynamic Window Method [Fox et al.]
R  v /
vc  av dt  v  vc  av dt
c  a dt    c  a dt
Admissible trajectories: braking
before collision
7/7/2015
CS225B Kurt Konolige
Dynamic Window Method [Fox et al.]
Heading: achieve the goal
Distance: avoid obstacles
Velocity: do it fast
7/7/2015
CS225B Kurt Konolige
Dynamic Window Method [Fox et al.]
DWA Issues
• Computation
• Evaluation function tuning: small openings
• Longer paths / lower acceleration
• Oscillation
7/7/2015
CS225B Kurt Konolige