Difference between revisions of "Data Filtering Systems"

From RoboJackets Wiki
Jump to navigation Jump to search
(Measurement Models: added more details)
m (Categorize)
 
(18 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
== Filters ==
 
== Filters ==
 
=== Kalman Filter ===
 
=== Kalman Filter ===
The [http://en.wikipedia.org/wiki/Kalman_filter Kalman filter] is a relatively simple method for determining parameters of a system from noisy measurements of that system.  It will be a good start for future studies in more complicated methods.  It first assumes that all of the noise in the system is Gaussian and then recursively estimates the unknown variables. To implement this we will need to make measurement models for each of the sensors and the model for the motors.  This will involve a lot of discussion with the Environment Data Processing System to negotiate what kind of data will be sent from the camera and LIDAR.
+
The [http://en.wikipedia.org/wiki/Kalman_filter Kalman filter] is a relatively simple method for determining parameters of a system from noisy measurements of that system.  It will be a good start for future studies in more complicated methods.  It first assumes that all of the noise in the system is Gaussian and then recursively estimates the unknown variables.
  
 +
=== EKF and UKF ===
 +
=== Information Filter ===
 
=== Particle Filter ===
 
=== Particle Filter ===
 +
 +
== SLAM ==
 +
Simultaneous localization and mapping (SLAM) uses noisy sensor data to estimate the pose of a robot and its surroundings at the same time.  Full SLAM and online SLAM.
 +
 +
=== EKF/UKF SLAM ===
 +
=== Sparsification filtering ===
 +
=== fastSLAM ===
 +
The noise in landmark measurements is path-dependent, therefore the estimates of landmark positions are covariant given the current position.  However, fastSLAM uses the observation that estimates of landmark positions are independent when given the path.
  
 
== Models ==
 
== Models ==
Bayesian filtering, and probabilistic estimation in general, uses models of the system being studied to approximate unknown variables when given other information (measurements and controls) about the system.  For robotics, we usually split these models up into world/control models and measurement models. In SLAM, internal world models are usually separate for external world models.
+
Bayesian filtering, and probabilistic estimation in general, uses models of the system being studied to approximate unknown variables when given other information (measurements and controls) about the system.  For robotics, we usually split these models up into world/control models and measurement models.
 +
 
 +
{| style="text-align:left"
 +
|-
 +
! State Variables !! Control Variables !! Measurement Variables
 +
|-
 +
|
 +
  {|
 +
  | Pose (position and angle)
 +
  |-
 +
  | Velocity (linear and angular)
 +
  |-
 +
  | Accelleration (linear and angular)
 +
  |-
 +
  | Coeff. of friction
 +
  |-
 +
  | Position of landmarks
 +
  |}
 +
|
 +
  {|
 +
  | motor speeds/path (from whatever is controlling the robot)
 +
  |-
 +
  | wheel encoders
 +
  |-
 +
  | motor currents
 +
  |}
 +
|
 +
  {|
 +
  | GPS
 +
  |-
 +
  | compass
 +
  |-
 +
  | accelerometers & gyroscopes
 +
  |-
 +
  | camera
 +
  |-
 +
  | LADAR
 +
  |}
 +
|}
  
 
=== World/Control Models ===
 
=== World/Control Models ===
World models estimate how the system changes between states when no controls are present.  Control models estimate how control actions on the system will affect the state.  We usually assume that control actions on the system increase uncertainty about the state, which is why controls are included with the world model and not the measurement model (measurements decrease uncertainty about the state) even though controls are usually measurements from our perspective.  Note that the distinction is irrelevant so long as the a priori state estimate is determined given the controls up to that next state ( <math>bel(x_{k}) = p(x_{k}|x_{1:(k-1)},y_{1:(k-1)}, u_{1:k})</math> ).
+
World models estimate how the system changes between states when no controls are present.  Control models estimate how control actions on the system will affect the state.  We usually assume that control actions on the system increase uncertainty about the state, which is why controls are included with the world model and not the measurement model (measurements decrease uncertainty about the state) even though controls are usually measurements from our perspective.  Note that the distinction is irrelevant so long as the a priori state estimate is determined given the controls up to that next state {<math>bel(x_{k}) = p(x_{k}|x_{1:(k-1)},y_{1:(k-1)}, u_{1:k})</math>}.
 +
 
  
For Candii, we will be testing two different world/control models.  One will be a simple kinematic model which assumes there is no slippage and that the wheels are velocity controlled.  The other will be a more complicated dynamic model that includes the effects of friction (of drive train and surface), drag (of surface and atmosphere), and gravity and that the wheels are current controlled (current propotional to [c - RPM], torque).  This will probably impractical with Kalman-like filters.
+
On Candii, we will be testing two different world/control models.  One will be a simple kinematic model which assumes there is no slippage and that the wheels are velocity controlled.  The other will be a more complicated dynamic model that includes the effects of friction (of drive train and surface), drag (of surface and atmosphere), and gravity and that the wheels are current controlled (current propotional to [c - RPM], torque). See [[Robot Modeling]] for more details.  This is probably impractical with Kalman-like filters.
  
 
=== Measurement Models ===
 
=== Measurement Models ===
Measurement models estimate how measurements occur as the function of the state.  We usually assume that measurements of the system decrease uncertainty about the state.
+
Measurement models estimate how measurements occur as a function of the state.  We usually assume that measurements of the system decrease uncertainty about the state.  In SLAM, we usually separate internal models (pertains to the robot) from external models (pertains to the landmarks).  We can do this because the errors associated with correlations between the landmarks are mostly independent of errors associated with correlations between the robot and the landmarks.  Said another way, where the robot is located doesn't affect how accurately it detects landmarks.  When true, it also means that the estimate of the external state (the map) never diverges.
 +
 
 +
 
 +
On Candii, the sensors related to the internal model (GPS, compass, accelerometers & gyroscopes) are linear and easy to characterize, the sensors related to the external model however are neither.  The quantity and quality of the data coming from these sensor makes it impracticable to use directly in the filter, which is why the [[Environment Data Processing Systems]] pre-process the data before it comes to this system.  Potential models for this purpose need to be studied in greater detail.
 +
 
 +
=== Initial State and Noise Estimates ===
 +
The initial state of the robot is unknown in this competition, therefore it is important that we make decent initial state and noise estimates.  If the initial estimates are significantly off, it will greatly increase the time it takes for the map to converge.
 +
 
 +
To characterize the noise in the sensors, we should carefully look at the datasheets and also test each sensor in a reproducible way.  This may mean connecting them to lab equipment or just running an automated analysis on the robot.
  
For Candii, most of the sensors (that aren't controls) are fairly linear.
+
[[Category:IGVC]][[Category:2008-2009]]

Latest revision as of 22:36, 13 June 2018

The purpose of the Data Filtering System is to take in noisy data from the various sensors (via the Data Acquisition System) and to form an accurate and cohesive picture of the robot's surroundings. It will then pass that picture to the Path Planning System.

Filters

Kalman Filter

The Kalman filter is a relatively simple method for determining parameters of a system from noisy measurements of that system. It will be a good start for future studies in more complicated methods. It first assumes that all of the noise in the system is Gaussian and then recursively estimates the unknown variables.

EKF and UKF

Information Filter

Particle Filter

SLAM

Simultaneous localization and mapping (SLAM) uses noisy sensor data to estimate the pose of a robot and its surroundings at the same time. Full SLAM and online SLAM.

EKF/UKF SLAM

Sparsification filtering

fastSLAM

The noise in landmark measurements is path-dependent, therefore the estimates of landmark positions are covariant given the current position. However, fastSLAM uses the observation that estimates of landmark positions are independent when given the path.

Models

Bayesian filtering, and probabilistic estimation in general, uses models of the system being studied to approximate unknown variables when given other information (measurements and controls) about the system. For robotics, we usually split these models up into world/control models and measurement models.

State Variables Control Variables Measurement Variables
Pose (position and angle)
Velocity (linear and angular)
Accelleration (linear and angular)
Coeff. of friction
Position of landmarks
motor speeds/path (from whatever is controlling the robot)
wheel encoders
motor currents
GPS
compass
accelerometers & gyroscopes
camera
LADAR

World/Control Models

World models estimate how the system changes between states when no controls are present. Control models estimate how control actions on the system will affect the state. We usually assume that control actions on the system increase uncertainty about the state, which is why controls are included with the world model and not the measurement model (measurements decrease uncertainty about the state) even though controls are usually measurements from our perspective. Note that the distinction is irrelevant so long as the a priori state estimate is determined given the controls up to that next state {}.


On Candii, we will be testing two different world/control models. One will be a simple kinematic model which assumes there is no slippage and that the wheels are velocity controlled. The other will be a more complicated dynamic model that includes the effects of friction (of drive train and surface), drag (of surface and atmosphere), and gravity and that the wheels are current controlled (current propotional to [c - RPM], torque). See Robot Modeling for more details. This is probably impractical with Kalman-like filters.

Measurement Models

Measurement models estimate how measurements occur as a function of the state. We usually assume that measurements of the system decrease uncertainty about the state. In SLAM, we usually separate internal models (pertains to the robot) from external models (pertains to the landmarks). We can do this because the errors associated with correlations between the landmarks are mostly independent of errors associated with correlations between the robot and the landmarks. Said another way, where the robot is located doesn't affect how accurately it detects landmarks. When true, it also means that the estimate of the external state (the map) never diverges.


On Candii, the sensors related to the internal model (GPS, compass, accelerometers & gyroscopes) are linear and easy to characterize, the sensors related to the external model however are neither. The quantity and quality of the data coming from these sensor makes it impracticable to use directly in the filter, which is why the Environment Data Processing Systems pre-process the data before it comes to this system. Potential models for this purpose need to be studied in greater detail.

Initial State and Noise Estimates

The initial state of the robot is unknown in this competition, therefore it is important that we make decent initial state and noise estimates. If the initial estimates are significantly off, it will greatly increase the time it takes for the map to converge.

To characterize the noise in the sensors, we should carefully look at the datasheets and also test each sensor in a reproducible way. This may mean connecting them to lab equipment or just running an automated analysis on the robot.