Simultaneous Localization and Mapping
Simultaneous Localization and Mapping
Contents
Introduction Where we are ? SLAM Problem Objectives Linear Dynamic Systems Extended Kalman Filter EKF SLAM Algorithm Data Association Computer Vision Work
Introduction
Localization
Mapping
Generating map of the environment when the pose is accurately known from auxiliary source.
SLAM
01/04/2014
Where we are?
SLAM
Localization
Path Planning
Mapping
SLAM
01/04/2014
SLAM Problem
An autonomous vehicle exploring an unknown environment with onboard sensor and incrementally build a map of this environment while simultaneously using this map to computing the vehicle location.
SLAM combines the two problems of localization and mapping.
SLAM
01/04/2014
Objective
Solving the SLAM problem in a static environment using vision sensor and Extended Kalman Filter as an estimator. Given
Estimate
Dynamic model:
+1 = + +
: State vector of the system at instant t = kT (assumed to be complete, Markov assumption). : known control inputs.
Sensor model
Measurement model
= +
measurements vector at instance time : unknown system noise (imprecision in the observation process and/or model)
SLAM
01/04/2014
Optimal Estimation
Assuming independent white Gaussian noises for the state and the measurement, this system can be summarized in these conditional PDFs:
|1 1 , 1 Prediction
( | , 1 )
Estimation
No analytical solution in general Linear Gaussian case (additive white Gaussian noise, AWGN)
11
SLAM
01/04/2014
Kalman Filter
Update
1 = ( + ) = + ( ( )) = ( )
EKF-SLAM Algorithm
Consider a mobile robot moving through an environment taking relative observations of a number of unknown landmarks using a sensor located on the robot.
14
SLAM
01/04/2014
15
SLAM
01/04/2014
16
SLAM
01/04/2014
Data Association
Data association consists in relating sensor observations with the elements included in the map. Interpretation tree.
17
SLAM
01/04/2014
18
SLAM
01/04/2014
19
SLAM
01/04/2014
20
SLAM
01/04/2014
21
SLAM
01/04/2014
Why Vision ?
Human
22
SLAM
01/04/2014
Perception
Ambient
23
SLAM
01/04/2014
Sensors
Why To Sense ? Proprioceptive / Exteroceptive Proprioceptive: Motor speed Wheel Load Exteroceptive: Light intensity - Distance Active / Passive
24
SLAM
01/04/2014
25
SLAM
01/04/2014
26
SLAM
01/04/2014
Camera Calibration
Why
Extrinsic
parameters
denote the coordinate system transformation from 3D world coordinate to camera 3D coordinates
27
SLAM
01/04/2014
Depth Estimation
Depth
28
SLAM
01/04/2014
Depth Estimation
29
SLAM
01/04/2014
Depth Estimation
+ 2 =
+ 2 =
= ;
30 SLAM 01/04/2014
Vision Algorithms
Detection Description
31
SLAM
01/04/2014
Harris Algorithm
Feature
Detector Affine-Invariant
32
SLAM
01/04/2014
Corner Measure
=
,
2 ,
2
2 + 2 ( 2 ) 2
1 , = , , = 2 2
33
SLAM
01/04/2014
Gaussian Scale-Space
, =
. 6.7
34
SLAM
01/04/2014
Harris Algorithm
Combination
35
SLAM
01/04/2014
SIFT Algorithm
Scale Detector
36
SLAM
01/04/2014
Objects
37
SLAM
01/04/2014
Image
38
SLAM
01/04/2014
Result
39
SLAM
01/04/2014
Algorithm
Constructing
Scale-Space LOG Approximation Finding Keypoints Accurate Keypoints Assigning Keypoints Orientation Generating SIFT Features
40 SLAM 01/04/2014
Scale-Space
41
SLAM
01/04/2014
Laplacian of Gaussian
, , = , , ,
42
SLAM
01/04/2014
Laplacian of Gaussian
43
SLAM
01/04/2014
Finding Keypoints
44
SLAM
01/04/2014
Finding Keypoints
45
SLAM
01/04/2014
Finding Keypoints
46
SLAM
01/04/2014
Accurate Keypoints
47
SLAM
01/04/2014
Descripting
Assign
48
SLAM
01/04/2014
Hardware
Stereo
49
SLAM
01/04/2014
Results
50
SLAM
01/04/2014
Mobile robot
Is two wheel differential drive robot(2WD) controlled by arduino and motor shield from PC, laptop and mobile over Wi-Fi network using WiFly shield. The robot has two camera to work as stereo camera and two quadrature wheel encoders to measure the distance each wheel has traveled.
51
SLAM
01/04/2014
Mobile robot
Advantages of differential drive mobile robot:
One of the simplest mobile robot constructions is a chassis with two fixed wheels. It can rotate freely in all directions Simple kinematic model
52
SLAM
01/04/2014
53
SLAM
01/04/2014
Where X, Y are the position of the robot with respect to global frame and is the angle between axis X and the robot axis.
54
SLAM
01/04/2014
Robot Controller
Using Arduino
UNO
It's an open-source physical computing platform based on a simple microcontroller board, and a development environment for writing software for the board.
55
SLAM
01/04/2014
Arduino UNO
Is a microcontroller board based on the ATmega328 and it has: 14 digital I/O pins (of which 6 can be used as PWM outputs) 6 analog inputs 16 MHz crystal oscillator USB connection Power jack, ICSP header, and a reset button.
56 SLAM 01/04/2014
Arduino UNO
Advantages: Provide a simple interface. Easy to program USB over current protection
57
SLAM
01/04/2014
Is Arduino Motor shield uses L298P h-bridge chip which allow to drive two 7-12V DC motors with maximum 2A current. This shield can be directly mount onto standard Arduino UNO, Duemilanove and Arduino Mega.
58 SLAM 01/04/2014
Advantages: The motor shield lets you control a whole bunch of current (good for motors) with an itty-bitty signal (good for Arduinos).
59
SLAM
01/04/2014
Communication
Using WiFly Shield Arduino able to connect to 802.11b/g wireless networks. The featured components of the shield are a Roving Network's RN-131G wireless module and an SC16IS750 SPI-to-UART chip.
60 SLAM 01/04/2014
61
SLAM
01/04/2014
Plug in Arduino ,Wifly and Motor Shield power. Waitting WiFly shield to join the Wi-Fi network Open Internet browser Connect to Arduino server Browser send a request to Arduino server HTML page for contol Buttons loaded
62
SLAM
01/04/2014
Press a Button (e.g. Froward) Browser Send Request to Arduino Arduino Receives The Request Arduino Send Control signals to Motor Shield Arduino Measures Encoder Data Server Waiting for New Request
63
SLAM
01/04/2014
Future Work
Autonomous Sensor Fusion Embedded Processing Better Estimator (for large scale environment)
64
SLAM
01/04/2014
Problems
DEMO