🤖
Introduction to ROS2 and Robotics
  • Introduction
  • ROS2
    • Index
    • IDE and CMake Setup
      • How to add additional include search path
    • ROS2 Building Blocks
      • ROS Workspace and Package Layout
      • Launch File
      • tf2
      • Quality of Service
      • Configurations
        • Rviz Configuration
      • Built-in Types
        • Built-in Message Type
    • ROS Architecture
      • Intra-process Communication
    • Navigation and Planning
      • Navigation Stack and Concepts
      • Navigation2 Implementation Overview
        • 🏗️Cost Map
        • Obstacle Avoidance and DWB Controller
      • DWB Controller
      • Page 5
    • How to launch the Nav2 stack
    • ROS2 Control
      • Online Resources
      • Overview of Codebase
    • 🍳Cookbook
      • Useful Commands
      • How to specify parameters
      • How to build the workspace
      • 🏗️How to publish message to a topic from command line?
      • How to inspect service and make a service call
      • How to properly terminate ROS and Gazebo
      • How to add and remove models in Gazebo simulation dynamically
      • 🚧How to spin nodes
    • 🛒Tutorials
      • Services and Communication between ROS2 and Gazebo
      • Subscription and Message Filters Demo
      • Executor and Spin Explained
      • Lifecycle Node Demo
      • Robotic Arm Demo
      • ⚒️Multiple Robotic Arms Simulation Demo
      • 🚧Introduction to xacro
    • Page
    • 🍺Tech Blog
      • Difference between URDF and SDF and how to convert
  • Gazebo
    • Index
    • Terminology
    • GUI
    • World Frame and Axis
    • Cookbook
    • Page 1
  • Programming in Robotics
    • C++
      • CMake
    • Python
    • Rust
  • Mathematics in Robotics
    • Linear Algebra
    • Matrix Properties
    • Probability
      • Expectation-Maximization Algorithm
    • Multivariable Function and Derivatives
  • Physics in Robotics
  • Control of Dynamic Systems
    • Dynamic Response and Transfer Function
    • Block Diagram
    • PID Controller
  • Robot Modeling and Control
    • Rotation and Homogeneous Transformation
  • Probabilistic Robotics
    • Bayes Filter
    • Kalman Filter
    • Particle Filter
    • Discrete Bayes Filter
    • Motion Model
    • Perception Model
    • Localization
    • SLAM
  • Miscellany
  • Concept Index
    • Quaternions
Powered by GitBook
On this page
  • Correlation-Based Measurement Models
  • Likelihood Fields for Range Finders
  • Beam Models of Range Finders
  1. Probabilistic Robotics

Perception Model

This article focus on the following calculation in the Bayes Filter algorithm:

p(zt∣xt)p(z_t|x_t)p(zt​∣xt​)

which is the probability of obtaining the measurement ztz_tzt​ given the current robot state xtx_txt​. For robots are often operating in a given environment, a map is avaialble in many applications. In such cases, we can have an additional term in the formula as follows:

p(zt∣xt,m)p(z_t|x_t, m)p(zt​∣xt​,m)

where mmm represents the information of the map.

In this article, we will present a couple of perception models:

  • correlation-based measurement models

  • likelihood fields model for range finders

  • feature based models

  • beam model

Disclaimer: The content of this article is based on the chapter 6 in the book Probabilistic Robotics.

You may notice that we rearrange the order of different models. The reason is that it may be easier to follow if we start with simple models.

One thing to notice is that the first three models use the map information directly, while the beam model extracts the map information by learning from the data.

Correlation-Based Measurement Models

Correlation-Based measurement model is essentially a pattern matching algorithm. Given a robot state (note that this is not the current state of the robot. Instead, it's any possible state) and the sensor data, the algorithm performs the following steps

  • construct a local map MlocallocalframeM_{local}^{local frame}Mlocallocalframe​ based on the sensor data.

  • use the provided robot state, we can map the local map data to the global map. (denoted by MlocalglobalframeM_{local}^{global frame}Mlocalglobalframe​)

  • calculate a similarity score between the constructed map (i.e. MlocalglobalframeM_{local}^{global frame}Mlocalglobalframe​) and the real map

In the correlation-based measure model, we use correlation as the similarity measure. The correlation is then bounded away from zero. The obtains positive values is interpreted as the probability of the measurement. This interpretation is actually one of the drawbacks of correlation-based measurement models because there is no corresponding physical meaning.

Here we provide examples to visualize the idea. Suppose we have a global map and the robot collects some data which is used to construct a local map:

Now we ask the question: given the local map, where do you think is the robot?

To an human eye, this is not a hard question. It's reasonable to make the following guesses:

So why these spots? In fact, given a pose (x,y,θ)(x, y, \theta)(x,y,θ) of the robot, we can project the collected sensor data to the global map and if the "pattern matches", then we know the pose (x,y,θ)(x, y, \theta)(x,y,θ) is likely to be the actual pose of the robot.

The "pattern matching" has two parts: (1) pattern and (2) matching. For pattern part roughly corresponds to the transformation from local map to global map in the correlation-based models and the matching part is the calculation of similarity.

Likelihood Fields for Range Finders

TODO

Beam Models of Range Finders

PreviousMotion ModelNextLocalization

Last updated 1 year ago

Prerequisite:

EM Algorithm