Only released in EOL distros:
Package Summary
hector_object_tracker is the core package of hector_worldmodel. It listens to percept message from detectors (e.g. heat signatures of persons or recognitions of other objects of interest in the scene) and fuses all information to a single worldmodel state. Objects will be tracked over time and their states can be influenced by a couple of services. The percept to object association problem is solved either automatically based on the Mahalanobis distance, or a unique object_id can be given in the percept message. If a hector_nav_msgs/GetDistanceToObstacle service is available, the object_tracker can optionally deduce the depth of objects in the scene by projection to the nearest obstacle (wall).
- Author: Johannes Meyer
- License: BSD
- Source: git https://github.com/tu-darmstadt-ros-pkg/hector_worldmodel.git (branch: master)
Package Summary
hector_object_tracker is the core package of hector_worldmodel. It listens to percept message from detectors (e.g. heat signatures of persons or recognitions of other objects of interest in the scene) and fuses all information to a single worldmodel state. Objects will be tracked over time and their states can be influenced by a couple of services. The percept to object association problem is solved either automatically based on the Mahalanobis distance, or a unique object_id can be given in the percept message. If a hector_nav_msgs/GetDistanceToObstacle service is available, the object_tracker can optionally deduce the depth of objects in the scene by projection to the nearest obstacle (wall).
- Author: Johannes Meyer
- License: BSD
- Source: git https://github.com/tu-darmstadt-ros-pkg/hector_worldmodel.git (branch: master)
Package Summary
hector_object_tracker is the core package of hector_worldmodel. It listens to percept message from detectors (e.g. heat signatures of persons or recognitions of other objects of interest in the scene) and fuses all information to a single worldmodel state. Objects will be tracked over time and their states can be influenced by a couple of services. The percept to object association problem is solved either automatically based on the Mahalanobis distance, or a unique object_id can be given in the percept message. If a hector_nav_msgs/GetDistanceToObstacle service is available, the object_tracker can optionally deduce the depth of objects in the scene by projection to the nearest obstacle (wall).
- Maintainer status: maintained
- Maintainer: Johannes Meyer <meyer AT fsr.tu-darmstadt DOT de>
- Author: Johannes Meyer
- License: BSD
- Source: git https://github.com/tu-darmstadt-ros-pkg/hector_worldmodel.git (branch: catkin)
Package Summary
hector_object_tracker is the core package of hector_worldmodel. It listens to percept message from detectors (e.g. heat signatures of persons or recognitions of other objects of interest in the scene) and fuses all information to a single worldmodel state. Objects will be tracked over time and their states can be influenced by a couple of services. The percept to object association problem is solved either automatically based on the Mahalanobis distance, or a unique object_id can be given in the percept message. If a hector_nav_msgs/GetDistanceToObstacle service is available, the object_tracker can optionally deduce the depth of objects in the scene by projection to the nearest obstacle (wall).
- Maintainer status: maintained
- Maintainer: Johannes Meyer <meyer AT fsr.tu-darmstadt DOT de>
- Author: Johannes Meyer
- License: BSD
- Source: git https://github.com/tu-darmstadt-ros-pkg/hector_worldmodel.git (branch: catkin)
Package Summary
hector_object_tracker is the core package of hector_worldmodel. It listens to percept message from detectors (e.g. heat signatures of persons or recognitions of other objects of interest in the scene) and fuses all information to a single worldmodel state. Objects will be tracked over time and their states can be influenced by a couple of services. The percept to object association problem is solved either automatically based on the Mahalanobis distance, or a unique object_id can be given in the percept message. If a hector_nav_msgs/GetDistanceToObstacle service is available, the object_tracker can optionally deduce the depth of objects in the scene by projection to the nearest obstacle (wall).
- Maintainer status: maintained
- Maintainer: Johannes Meyer <meyer AT fsr.tu-darmstadt DOT de>
- Author: Johannes Meyer
- License: BSD
- Source: git https://github.com/tu-darmstadt-ros-pkg/hector_worldmodel.git (branch: catkin)
Package Summary
hector_object_tracker is the core package of hector_worldmodel. It listens to percept message from detectors (e.g. heat signatures of persons or recognitions of other objects of interest in the scene) and fuses all information to a single worldmodel state. Objects will be tracked over time and their states can be influenced by a couple of services. The percept to object association problem is solved either automatically based on the Mahalanobis distance, or a unique object_id can be given in the percept message. If a hector_nav_msgs/GetDistanceToObstacle service is available, the object_tracker can optionally deduce the depth of objects in the scene by projection to the nearest obstacle (wall).
- Maintainer status: maintained
- Maintainer: Johannes Meyer <meyer AT fsr.tu-darmstadt DOT de>
- Author: Johannes Meyer
- License: BSD
- Source: git https://github.com/tu-darmstadt-ros-pkg/hector_worldmodel.git (branch: catkin)
Contents
Overview
This package provides a node for tracking the position of objects of interest as described in this paper
@INPROCEEDINGS{Meyer:2010:WorldModel, author = {J. Meyer and P. Schnitzspan and S. Kohlbrecher and K. Petersen and O. Schwahn and M. Andriluka and U. Klingauf and S. Roth and B. Schiele and O. von Stryk}, title = {A Semantic World Model for Urban Search and Rescue Based on Heterogeneous Sensors}, year = {2011}, pages = {180 -- 193}, editor = {Ruiz-del-Solar, Javier and Chown, Eric and Ploeger, Paul G.}, series = {Lecture Notes in Computer Science, Lecture Notes in Artificial Intelligence}, booktitle = {RoboCup 2010: Robot Soccer World Cup XIV}, url = {https://springerlink3.metapress.com/content/n515v876ll57334l/resource-secured/?target=fulltext.pdf&sid=yyw2tr55m2on31z0hpufyw55&sh=www.springerlink.com}, }
ROS API
hector_object_tracker
hector_object_tracker is the central node of hector_worldmodel. It maintains a list of known objects in the environment and implements the association of incoming observations (percepts) and tracking. The observations have to be provided by at least one external node which implements a detector for certain object classes.Subscribed Topics
worldmodel/image_percept (hector_worldmodel_msgs/ImagePercept)- An observation of an object represented by image coordinates, a camera info and an estimated distance (optional).
- An observation of an object represented by a 3D pose.
- Update the object model with another model. Objects will be either added or fused.
- System command. If the string equals "reset" the object database is cleared.
Published Topics
worldmodel/object (hector_worldmodel_msgs/Object)- Published for every update of an existing object or if a new object has been added.
- The complete list of objects (latched). Republished for every update of the database.
- Single marker publisher for each tracked object.
- Marker array publisher with annotated markers for each objects for visualization in rviz.
Services
worldmodel/get_object_model (hector_worldmodel_msgs/GetObjectModel)- Returns the latest state of the object model. Used by the hector_worldmodel_geotiff_plugins.
- Sets the internal state of an object (PENDING, ACTIVE, CONFIRMED, DISCARDED, ...). This state information is for interaction with a state machine and influences whether the object information is still updated or not.
- Sets the name field of an object identified by its object_id.
- Adds an object to the model or updates an existing one (without fusion).
Services Called
get_distance_to_obstacle (hector_nav_msgs/GetDistanceToObstacle)- Returns the distance to the next obstacle in the map in the direction of a view ray to project percepts. This service is implemented in hector_mapping. Service name can be overridden by the [class_id/]distance_to_obstacle_service parameter.
- Returns the normal vector of the wall at a certain position. Used to fill the orientation of an object in the database, e.g. if there are objects at both sides of a wall. Service name has to be set explicitly with the [class_id/]get_normal_service parameter.
- Plugin interface for percept verification services called for every incoming hector_worldmodel_msgs/ImagePercept or hector_worldmodel_msgs/PosePercept. Service servers can confirm or discard the percept based on its position in the camera frame (e.g. for thermal self-filtering). The list of verification services to be called has to be specified in the [class_id/]verification_services parameter.
- Plugin interface for object estimate verification called for every incoming hector_worldmodel_msgs/ImagePercept or hector_worldmodel_msgs/PosePercept. Service servers can confirm or discard the percept based on its mapped position and full state information. The list of verification services to be called has to be specified in the [class_id/]verification_services parameter.
Parameters
~frame_id (string, default: map)- The frame_id of the frame in which the objects are modeled.
- The namespace prefix for all worldmodel related topics and services.
- If greater than 0, republish the object model every x seconds.
- Project objects to the next obstacle in the map using the get_distance_to_obstacle service.
- Consider the orientation of objects as given in the percept or by the get_normal service during the association step.
- Default object distance considered for image percepts without distance information (msg.distance == 0.0) if project_objects is false.
- Assumed variance of observations in distance (given in m^2).
- Assumed variance of observations in (opening) angle (given in rad^2).
- Minimum z coordinate of objects. Percepts with a z coordinate which is smaller than this value will be discarded.
- Maximum z coordinate of objects. Percepts with a z coordinate which is greater than this value will be discarded.
- Minimum support (added support of all percepts associated to the same object) where the object is automatically switched to the PENDING state.
- Minimum support (added support of all percepts associated to the same object) where the object is automatically switched to the ACTIVE state.
- If the support (added support of all percepts associated to the same object) drops below this value the object is automatically switched to the INACTIVE state.
- Objects which are closer to a CONFIRMED object than this distance will automatically be set to DISCARDED state.
- Color of the marker published for objects of this class (r,g,b,optionally a).
- The hector_nav_msgs/GetDistanceToObstacle service to call for percepts of this class if project_objects parameter is enabled.
- The hector_nav_msgs/GetNormal service to call for percepts of this class. The return value overwrites the orientation given in the percept message.
- The name of a sensor_msgs/CameraInfo topic to subscribe to. For each incoming message the support of every object within the field of view and within a certain minimal and maximum distance will be decreased.
- Only apply this negative update for objects of class class_id.
- Minimum estimated distance of the object
- Maximum estimated distance of the object
- Minimum distance of the object from the image border in pixels
- Only apply negative update if the object had no associated percept within the last x seconds.
See object_tracker.launch for a sample configuration.