280 likes | 644 Views
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
E N D
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?
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)
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
Wheel Encoders • Two types of wheel encoders • Note that there are two transitions per rotation reflectance sensor slot sensor
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 enables disable_encoder(encoder#); read_encoder(encoder#); • returns the number of transitions reset_encoder(encoder#); • sets that encoder’s count back to 0
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
Errors • Systematic Errors vs. Random Errors • Can they be managed?