A Framework for use in SLAM algorithms Principle Investigator: Shaun Egan Supervisor: Dr. Karen Bradshaw
SLAM is a family of algorithms
SLAMState Update Landmark Tracking (Dead reckoning) Landmark Extraction Data Association Pose Tracking Odometry
Count Left Count Right Odometry Algorithm
Change in wheel position: Change in heading: c: encoder count d: wheel diameter i: increments per tour r: right encoder count l: left encoder count a: axis wheel ration d: wheel diameter Average heading: New robot position and heading
The problem with ultrasonic range detection The answer?
Range scans Triangulation
1. Add current sensor information to the sliding window 2. Compare each of the new sensor range readings with all other previous readings in the window 3.Triangulate these readings to create valid points for each new sensor reading: Calculate some required values: s: sensor position r: range value Calculate the points of intersection And finally, find which point is the one we want (the one visible to both sensors: For each point (i): For each sensor (k):
Range scans Triangulation Point refinement
For every point (i): Calculate the average position of points: Point refinement:
Range scans Triangulation Point refinement Data association Landmark refinement
Data association and landmark refinement: 1) The newly created landmark is added to the map 2) Compare landmarks 3) If landmarks are within a certain range of each other: Considered the same landmark Merged according to their triangulation count
phew…
Configuration Point Pose Landmark ScanStep CommonUtils Odometer Encoder FT_Odometer OdometryUtils UltraSonic TBFCalculator TBFUtils
Additional landmark extraction and data association models The addition of a package for localization algorithms The addition of a package for loop closure utilities Extensions for cooperative SLAM
?