## page was renamed from world_modeling/Tutorials/Data association exploiting multiple object attributes ## page was renamed from ros.org/wiki/world_modeling/Tutorials/Data association exploiting multiple object attributes ## For instruction on writing tutorials ## http://www.ros.org/wiki/WritingTutorials #################################### ##FILL ME IN #################################### ## for a custom note with links: ## note = ## for the canned note of "This tutorial assumes that you have completed the previous tutorials:" just add the links ## note.0=[[ROS/Tutorials|ROS tutorials]] ## descriptive title for the tutorial ## title = Data association exploiting multiple object attributes ## multi-line description to be displayed in search ## description = If a world model object contains different attributes, the data association might simplify, e.g., a red blob is most likely to originate from a red world model object. This tutorial demonstrates the exploitation of multiple attributes per object during data association. ## the next tutorial description (optional) ## next = ## links to next tutorial (optional) ## next.0.link=[[wire/Tutorials/Tracking an unknown number of objects|Tracking an unknown number of objects]] ## next.1.link= ## what level user is this tutorial for ## level= BeginnerCategory ## keywords = #################################### <> <> == Goal == The task of the [[wire]] meta package is fusing measurements into one consistent world state estimate. In order to achieve this the data association problem has to be solved. In this demo, two different objects are present. Both objects are detected with two discrete properties: || || Color || Shape || || Object 1 || green || square || || Object 2 || red || square || and one continuous property being position <> == Approach == In order to determine whether an association between a measurement and a world model object is valid, both discrete and continuous properties are considered. As a result, the association between a red blob and a green world model object, or vice versa, gets a low probability. The same holds for world model objects that have a predicted position far from the measured position. By taking all available attributes into account the data association problem is simplified. The object position estimates are tracked using Kalman filters with a constant velocity motion model. == Data == In order to be able to reproduce the result shown in the video above, make sure that you have cloned and compiled the [[wire]] packages: {{{ $ git clone https://github.com/tue-robotics/wire.git $ catkin_make }}} Fetch the data for this tutorial ([[attachment:demo02.bag]]) and decompress this file: {{{ $ rosbag decompress demo02.bag }}} The bag file contains [[tf]]s, object detections and both rgb and depth images. The images are only included for ease of interpretation and inspection. These are not used by wire. == Reproducing the result == Start a ROS core: {{{ $ roscore }}} Then, set the [[Clock#Using_Simulation_Time_from_the_.2BAC8-clock_Topic|use_sim_time]] parameter to true: {{{ $ rosparam set use_sim_time true }}} and launch the [[wire_core]]: {{{ $ roslaunch wire_core start.launch }}} In a new terminal, launch the visualization: {{{ $ roslaunch wire_tutorials rviz_wire_kinetic.launch }}} Finally, play back the data: {{{ $ rosbag play demo02.bag --clock }}} The results should be similar to the results shown in the video above. ## AUTOGENERATED DO NOT DELETE ## TutorialCategory ## FILL IN THE STACK TUTORIAL CATEGORY HERE