Skip to content

Probability Map Tracking

L-zl edited this page Aug 9, 2021 · 1 revision

Introduction

The tracking node takes the noisy observation data (position of targets) from the object detector, and is maintaining a probability map of the entire surveillance area (perimeter) to estimate the targets' position more accurately. If there are multiple trackers watching on the same perimeter, all of them will also communicate with each other and make a consensus.

Components

Grid Map Class

The grid map class is designed to manage the probability map data. It can handle the coordinates converting, map updating and fusing, also responsible for outputting the estimated results.

Tracker Class

Every tracking robot (whether it is a drone or a ground robot) runs this node. It's responsible for receiving data from the object detector, reformat the data so that it can fit into the grid map class.

When there are multiple tracking robots, the node will finish a map updating process by two steps. First, the data from the local detectors are transformed and sent to the consensus network. The detection data from other trackers is then received and integrated into the local probability map. Second, the updated probability map will be broadcasted to the consensus network again for achieving a final consensus. Each tracker will pull down neighbors' map and fuse them all with the local map.

Benchmark Node

The benchmark node is collecting estimation message from trackers and the ground truth from targets. Then it will compute and plot the Root Mean Square Error (RMSE) value to measure how good is the estimation from trackers.

It's also publishing the Marker message to Rviz to simply visualize the estimation data.

Run and test

Clone this wiki locally