Post on 12-Jan-2016
A Framework for use in SLAM algorithms
Principle Investigator: Shaun EganSupervisor: Dr. Karen Bradshaw
SLAM is a family of algorithms
SLAM
State UpdateLandmark Tracking (Dead
reckoning)
Landmark Extraction
Data Association
Pose Tracking
Odometry
CountLeft CountRight
Odometry Algorithm
Change in wheel position:
β π=βππΞ π
Change in heading:
c: encoder countd: wheel diameteri: increments per tour
β π=(βπ ββ π)
ππ
r: right encoder countl: left encoder counta: axis wheel rationd: wheel diameter
Average heading:
π=βπβ0.5+π π ast known heading
New robot position and heading
))
y=π¦+((βππ+βππ )β0.5sin (π ))
The problem with ultrasonic range detection
The answer?
Range scans Triangulation
Triangulation
1. Add current sensor information to the sliding window2. Compare each of the new sensor range readings with all other previous readings in the
window3. Triangulate these readings to create valid points for each new sensor reading:
Calculate some required values:
β π₯=π ππ₯βπ ππ₯β π¦=π ππ¦βπ ππ¦π2=β π₯2+β π¦ 2π=β π2π=
(π 2+ππβππ )2π
s: sensor positionr: 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):
π=arctan (β π¦ ,βπ₯ )β π¦=πππ¦βπππ¦β π₯=πππ₯βπππ₯
πβ(π ππβπ ππΏ2; π ππ+
π ππΏ2
)
Range scans Triangulation
Point refinement
π π₯=0π π¦=0
For every point (i):
π π₯=ππ₯+πππ₯π π¦=ππ¦+πππ¦
Calculate the average position of points:
π π‘=0
π π‘=ππ‘+1
Create a new landmark: new Landmark()
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
?