🤖
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
  1. Probabilistic Robotics

Motion Model

PreviousDiscrete Bayes FilterNextPerception Model

Last updated 1 year ago

Recall that one of steps in Bayes Filter algorithm is to perform a prediction. The prediction is an estimate of the state transition:

p(xt∣ut−1,xt−1)p(x_t|u_{t-1},x_{t-1})p(xt​∣ut−1​,xt−1​)

How we use the model depends on the filter algorithm. For example, with particle filter, we essentially simulate a physical event and it's a direct application of the motion model. The input is ut−1u_{t-1}ut−1​and xt−1x_{t-1}xt−1​, and the output is xtx_txt​. With particle filter and other sampling methods, we don't need to calcualte p(xt∣ut−1,xt−1)p(x_t|u_{t-1},x_{t-1})p(xt​∣ut−1​,xt−1​). For algorithms that require an explicit calculation, the inputs are xtx_txt​, ut−1u_{t-1}ut−1​, and x1x_1x1​. However, ut−1u_{t-1}ut−1​ and xt−1x_{t-1}xt−1​are real values while xtx_txt​is hypothetical.

In the book , the auther presents two models:

  • velocity model

  • odometry model

The mathematical derivation starts from assuming the instantenous movement of the robot follows a perfect circular path.

TODO

Probabilistic Robotics