Documentation Status

wire: armadillo_matrix | problib | wire_core | wire_msgs | wire_state_estimators | wire_tutorials | wire_viz

Package Summary

Documented

WIRE

wire: armadillo_matrix | problib | wire_core | wire_msgs | wire_state_estimators | wire_tutorials | wire_viz

Package Summary

Documented

WIRE

Cannot load information on name: wire, distro: groovy, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: wire, distro: hydro, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: wire, distro: indigo, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: wire, distro: jade, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
wire: armadillo_matrix | problib | wire_core | wire_msgs | wire_state_estimators | wire_tutorials | wire_viz

Package Summary

Documented

The wire meta package is implements a framework that generates and maintains one consistent world state estimate based on object detections. It solves the data association problem by maintaining multiple hypotheses and facilitates tracking of various object attributes. The state estimators used for estimation and the probabilistic models used for association can be configured.

Cannot load information on name: wire, distro: lunar, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: wire, distro: melodic, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.

Goal

The wire_core package it is the core of the wire stack. It takes detections and fuses them to a world state estimate. Technical details can be found here:

J. Elfring, S. van den Dries, M.J.G. van de Molengraft, M. Steinbuch, Semantic world modeling using probabilistic multiple hypothesis anchoring, Robotics and Autonomous Systems, Volume 61, Issue 2, February 2013, Pages 95-105, (pdf)

An extended list of tutorials can be found here.

Approach

The package listens to wire_msgs/WorldEvidence generated by perceptual algortihms. It fuses the evidence using object class specific models. It includes multiple hypothesis-based data association and can be configured easily. See the wire/Tutorials for more information about the configuration of this package.

Launching the package

First install the stack by following the steps mentioned here. Then, launch:

$ roslaunch wire_core start.launch

Now, the world model starts. The output on the screen will look something like this:

***** 1352890681.479009 ***** 
   Number of hypotheses        = 1 
   Max probability             = 1 
   Tree height                  = 0 
Num MAP objects:      0 
Last update:          0 seconds 
Max update:           0 seconds 
Evidence buffer size: 0 
***** 1352890682.228999 ***** 
   Number of hypotheses        = 1 
   Max probability             = 1 
   Tree height                  = 0 
Num MAP objects:      0 
Last update:          0 seconds 
Max update:           0 seconds 
Evidence buffer size: 0 

If evidence is fed into the world model, it will start filtering and a non-empty world state estimate will be available on the /world_state topic. Then, the visualization might be useful to visualize both the world model input and/or output in RViz.:

$ roslaunch wire_tutorials rviz_wire_fuerte.launch

for fuerte users or

$ roslaunch wire_tutorials rviz_wire_electric.launch

for electric users.

Configuring the visualization

The world model can be figures using the parameters/world_model.yaml file:

   1 world_model_frame: /map
   2 output_frame: /map
   3 
   4 evidence_topics:
   5  - /world_evidence

Line-by-line explanation

   1 world_model_frame: /map
   2 output_frame: /map

Here the frame of the world model and its output can be defined. All input is transformed to the world_model_frame. In this frame the tracking is done. The final world state estimate is transformed to output_frame before it is published over the /world_state topic.

   4 evidence_topics:
   5  - /world_evidence

Here the input topics of the world model are defined. Note that if the input topic changes, the world_model_vis package is no longer able to visualize the world model input. This can however easily be changed, by changing the topic name in the main function of the file world_model_vis/src/visualization.cpp.

Nodes

Publishers/subscribers

Subscribed Topics

/world_evidence (wire_msgs/WorldEvidence)
  • Evidence provided by perception and fed into the world model

Published Topics

/world_state (wire_msgs/WorldState)
  • World state estimate generated by the world model

Parameters

Parameters

world_model_frame (string, default: "/map")
  • Frame in which the world model is maintained, e.g., performs the tracking
output_frame (string, default: "/map")
  • Frame in which the world model is outputted over the /world_state topic
evidence_topics (string[], default: "/world_evidence")
  • List of topics feeding the world model

Wiki: wire_core (last edited 2013-01-22 10:03:51 by SjoerdvandenDries)