Recognition Node

Description: This tutorial explains how to start a ROS recognition node and recognize objets

Tutorial Level:

Setting up the node

Compile the code, start your roscore and do the following:

Then, run the recogntion node in tod_detection/bin/ with the following parameters to listen to a bag file:

./recognition_node camera:=/camera/rgb points2:=/camera/depth/points2 --base path_to_your_base

With the following for a Kinect:

./recognition_node camera:=/camera/rgb points2:=/camera/rgb/points --base path_to_your_base

You will need to have a bag running to have data being processed, e.g.:

rosbag play t0004.bag -r 0.5

Configuration

Tod works well with the following config.yaml :

%YAML:1.0
# TODParameters
TODParameters:
   # GuessParameters
   GuessParameters:
      min_cluster_size: 10
      min_inliers_count: 5
      ransac_iterations_count: 100
      max_projection_error: 10.
      descriptor_distance_threshold: 0.5
      min_stddev_factor: 0.
   # FeatureExtractionParams
   feature_extraction_params:
      detector_type: DynamicFAST
      extractor_type: multi-scale
      descriptor_type: rBRIEF
      detector_params:
         max_features: 1500.
         min_features: 1000.
         threshold: 200.
      extractor_params:
         octaves: 3.
   # MatcherParameters
   MatcherParameters:
      matcher_type: LSH-BINARY
      ratio_threshold: 0.8
      knn: 3
      do_ratio_test: 1
   # ClusterParameters
   ClusterParameters:
      max_distance: 100

Service

Just launch the code with --service, and the "tod" service will be created. It is the same a the Tabletop_detector service (for the arguments).

Wiki: tod_detecting/Tutorials/Recognition Node (last edited 2011-04-21 23:52:15 by VincentRabaud)