Show EOL distros:
Package Summary
This package includes the algorithmic link between object pose prediction and scene recognition, both based on ISM trees. While it only refers to other packages with respect to the aforementioned functionalities, it includes the algorithms realizing Scene Model Sampling. E.g., it provides a (service-based) interface for the scene recognition, including an ASR-optimized visualization of ISM trees. The reason for linking scene recognition and object pose prediction within a package instead of message passing, is the size and number of scene recognition results occurring.
- Maintainer: Meißner Pascal <asr-ros AT lists.kit DOT edu>
- Author: Aumann Florian, Heller Florian, Hutmacher Robin, Meißner Pascal, Stöckle Patrick, Stroh Daniel
- License: BSD
- Source: git https://github.com/asr-ros/asr_recognizer_prediction_ism.git (branch: master)
Package Summary
This package includes the algorithmic link between object pose prediction and scene recognition, both based on ISM trees. While it only refers to other packages with respect to the aforementioned functionalities, it includes the algorithms realizing Scene Model Sampling. E.g., it provides a (service-based) interface for the scene recognition, including an ASR-optimized visualization of ISM trees. The reason for linking scene recognition and object pose prediction within a package instead of message passing, is the size and number of scene recognition results occurring.
- Maintainer: Meißner Pascal <asr-ros AT lists.kit DOT edu>
- Author: Aumann Florian, Heller Florian, Hutmacher Robin, Meißner Pascal, Stöckle Patrick, Stroh Daniel
- License: BSD
- Source: git https://github.com/asr-ros/asr_recognizer_prediction_ism.git (branch: master)
Contents
Description
This package includes the algorithmic link between object pose prediction and scene recognition, both based on ISM trees. While it only refers to other packages with respect to the aforementioned functionalities, it includes the algorithms realizing Scene Model Sampling. E.g., it provides a (service-based) interface for the scene recognition, including an ASR-optimized visualization of ISM trees. The reason for linking scene recognition and object pose prediction within a package instead of message passing, is the size and number of scene recognition results occurring.
Functionality
This package is the connection between pose prediction and scene recognition. It provides several services for controlling purpose. Its main parts are:
scene recognition for ISM logic
pose prediction for handling unfound objects
shared recognition results manager for managing ISM datastructes in both parts aforementioned
The following picture illustrates the process of the package:
Initially, the objects that were found are used to compute which scenes could be present (scene recognition). In the second step, these scenes are rated by their probability. In the last step, pose predictions for the missing objects are generated by resampling the rated results with importance sampling.
Usage
You need the ISM package for the scene detection and a source for AsrObjects.
Needed packages
- asr_lib_ism: scene recognition
- asr_lib_pose_prediction_ism: does the real pose prediction
- asr_ism_visualizations: help package for visualizing the recognized scene
- asr_world_model: the pose prediction uses a Service call to get the already found objects from the world model
- asr_msgs: messages and datatypes
- asr_object_database: information about the objects
Start system
Before you can start the rp_ism_node, you have to launch the world_model:
roslaunch asr_world_model world_model.launch
All functionality goes to one ros-node: the rp_ism_node. To launch it simply call:
roslaunch asr_recognizer_prediction_ism rp_ism_node.launch
ROS Nodes
Published Topics
The topics that the package publishes are only meant for the visualization. Those topics are:
- /ism_results_visualization
- data type: visualization_msgs/MarkerArray
- description: scene recognition results
- /pose_prediction_results_visualization
- data type: visualization_msgs/MarkerArray
- description: predicted poses for the missing objects
- /ism_results_for_pose_prediction_viz
- data type: visualization_msgs/MarkerArray
- description: sampled scene recognition results used for pose prediction
Parameters
You have to set some parameters in:
param/scene_recognition.yaml
- dbfilename:
- data type: string
- description: Sqlite DB, containing recorded object configurations that are transformed to model object configurations in an ism tree during ism learning in this node.
- raterType:
- data type: int unsigned
- description; Which rater to rate/score a recognition result should be used.
- baseFrame:
- data tyoe: string
- description: Frame to which incoming object messages are transformed
- objectSetMaxCount:
- data type: int unsigned
description: Threshold for the maximum processed number of object sets from combining input object pose samples. (Should be set to (#SamplesFromWorldModel)^(#InputObjects))
- enableRotationMode:
- data type: int
- description: Whether the orientation of rotation invariant objects should be rotated to the rotationFrame or to an object.
1 => rotationFrame is used
2 => the specified rotation object is used
- rotationFrame:
- data type: string
- description: Defines the rotation frame. The rotation only takes place if baseFrame == rotationFrame.
- rotationObjectType:
- data type: string
- description: Defines the object type of the rotation object.
- rotationObjectId:
- data type: string
- description: Defines the object id of the rotation object. (number in quotation marks to preserve leading zeros)
- bin_size:
- data type: double
- description: size of voxel
- maxProjectionAngleDeviation:
- data type: double
- description: deviation in orientation
- markerLifetime:
- data tye: double
- description: lifetime of visualization marker
- sceneMarkersSceneRecognitionPublisherName:
- data type: string
- description: visualization topic name for the results of the scene recognition
- vizSamplesClientName:
- data type: string
- description: name of service call "visualize_sampled_poses"
- pushCompletePatternsName:
- data type:string
- description: name of service call "push_complete_patterns"
param/pose_prediction.yaml
- predictionGenerationFactor:
- data type:double
- description: Factor to reduce generated results.
- equal_results_number:
- data type: bool
- description: Whether to choose an equal number of recognition results for each scene present.
- importance_resampled_size:
- data type:unsigned int
- description: Number of recognition results among n best recognition results that importance sampling is going to draw.
- foundObjectClientName:
- data type: string
- description: name of service call "get_found_object_list"
PointCloudServerName:
- data type:string
- description: name of service call "get_point_cloud"
- posePredictionMarkersPublisherName:
- data type:string
- description: visualization topic name for the predicted poses for the missing objects
- sceneMarkersPosePredictionPublisherName:
- data type: string
- description: visualization topic name for all sampled scene recognition results used for pose prediction
- latched:
- data type: bool
- description: latch publisher
Services
processGetPointCloudServiceCall: Actual pose prediction
processFindScenesServiceCall: Actual scene recognition
setLogFilePathServiceCall: set path to file for writing object constellation
processToggleVisualizationServiceCall: toggles visualization
processResetServiceCall: Clears the old recognition results