Only released in EOL distros:
Package Summary
WIRE
- Author: Maintained by Jos Elfring, Sjoerd van den Dries
- License: BSD
- Source: svn https://robotics.wtb.tue.nl/svn/ros/release/wire
Package Summary
WIRE
- Author: Maintained by Jos Elfring, Sjoerd van den Dries
- License: BSD
- Source: svn https://robotics.wtb.tue.nl/svn/ros/release/wire
Package Summary
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.
- Maintainer: Jos Elfring <j.elfring AT tue DOT nl>
- Author:
- License: TODO
- Source: git https://github.com/tue-robotics/wire.git (branch: master)
Contents
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:
Line-by-line explanation
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.
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
- Frame in which the world model is outputted over the /world_state topic
- List of topics feeding the world model