Upload
luigi
View
65
Download
2
Tags:
Embed Size (px)
DESCRIPTION
Localization & Navigation. Announcement : Robot Manipulator Lab will be due the week of March 29th. Computer with Wheels. Where am I? Localization problem Kidnapped robot problem What way should I take to get there? Path Planning (Pathing) Where am I going? Mission planning - PowerPoint PPT Presentation
Citation preview
Localization & Navigation
Announcement: Robot Manipulator Lab will be due the
week of March 29th
Computer with Wheels• Where am I?
– Localization problem– Kidnapped robot problem
• What way should I take to get there?– Path Planning (Pathing)
• Where am I going?– Mission planning
• Where have I been?– Map Making or Map Enhancement
Why is it difficult for a robot to know where it is?
• Sensors are the fundamental input for the process of perception, therefore the degree sensors can discriminate the world state is critical
• Sensor Aliasing– Many-to-one mapping between environmental states to
the robot’s perceptual inputs– Amount of information is generally insufficient to identify
the robot’s position from a single sensor reading
Why is it difficult for a robot to know where it is?
• Sensor Noise– Adds a limitation on the consistency of sensor readings– Often the source of noise problems is that some
environmental features are not captured by the robot’s representation.
• Dynamic Environments• Unanticipated Events• Obstacle Avoidance
“Where am I”?• Localization
– Given an initial estimate, q, of the robot’s location in configuration space, maintain an ongoing estimate of the robot pose with respect to the map, P(q).
– Configuration Space (Cspace): data structure which allows the robot to specify its pose
– Pose: (x,y,Θ)
Behavior Based Navigation• Can Robbie the Reactive Robot get from
point A to point B?
Goal Directed Behavior Based Control
How would Robbie navigate an office building?
Behavior-Based Navigation Vs. Delibrative Navigation
The Cartographer: Spatial Memory
• Data structures and methods for interpreting and storing sensory input with relation to the robot’s world– Representation of the world– Sensory input interpretation– Focus attention– Path planning & evaluation– Collection of information about the current
environment
Map Representations• Quantitative (Metric Representations)• Topological (Landmarks)• Important considerations
– Sufficiently represent the environment• Enough detail to navigate potential problems
– Space and time complexity– Sufficiently represent the limitations of the
robot– Support for map changes and re-planning– Compatibility with reactive layer
Many Types of Mobile Bases
• Differential Drive– Two independently
driven wheels on opposite sides of the robot
– 3 DoF: pose = [x,y,Θ]– Holonomic: can be
treated as a massless point that can move in any direction
Types of Mobile Bases
• Omni Drive– Wheel capable of rolling in any direction.– Robot can change direction without rotating the base
Types of Mobile Bases• Ackerman Drive
– Typical car steering– Non-holonomic: must
take into account position and velocity variable (can’t turn a car without moving it forward)
Types of Mobile Bases
Using Dead Reckoning to Estimate Pose
• “ded reckoning” or deduced reckoning – Reckon: to determine by reference to a fixed
basis• Keep track off the current position by noting
how far the robot has traveled on a specific heading– Used for maritime navigation– Proprioceptive
Dead Reckoning with Shaft Encoders• How far has a wheel traveled?
distance = 2 * PI * radius * #revolutions
• Two types of wheel encoders
reflectance sensor slot
sensor
• Two types of wheel encoders
• Note that there are two transitions per rotation
Wheel Encoders
reflectance sensor slot
sensor
How is the Accuracy Determined?
Using Encoders with the HB • Encoder functions defined in standard HB libraries • Connect to ports 7, 8, 12, 13 (encoder# is 0, 1, 2, 3)
enable_encoder(encoder#);– enable an encoder only once...unless you disable it
between enablesdisable_encoder(encoder#);read_encoder(encoder#);– returns the number of transitionsreset_encoder(encoder#);– sets that encoder’s count back to 0
How far has the robot traveled and
how far has it turned?
Which way am I going?
• Heading– Percentage of the circumference of the circle
with radius d
How far have I gone?
• Half the distance of the arc at the end of the motion– Distance moved for center of the robot
Adding it up
• (x,y,Θ)• Update the position
information at each sensor update.
• How large can a single segment be?
• What does this assume?
Navigation with a Relational Graph• Graph representation: G = (V,E)
– Landmarks and paths connecting
– DAG– Paths can contain additional
information• Shortest Path Algorithm
– Dijkstra’s Shortest Path
Example
Errors• Systematic Errors vs. Random Errors
– Can they be managed?