RAPP Platform Wiki
v0.6.0
RAPP Platform is a collection of ROS nodes and back-end processes that aim to deliver ready-to-use generic services to robots
|
Recognition of known objects, implemented in RAPP Platform, is based on feature points extracted from the image. From this reason, only textured objects can be recognized and localized on the image at the moment, but in typical RAPP scenarios there are a lot of objects of this type - food boxes and cans, books, medicines and more everyday things. Object recognition module is able to recognize multiple objects at the same time, many instances od the same type of object in particular. Whole process of object learning and recognition is composed of four services.
Every user using object recognition module owns separate objects database. Recognition module can use all of the models or only selected subset during object detection, and this subset loaded at the moment is called operational memory.
Recognition module is prepared to find specific object instances, learnt beforehand by the user. To learn new objects, picture consisting its view on plain (featureless) background should be used. Best recognition results are achieved, if models are learnt using the same sensor that will be used for detection (i.e. don't use high resolution, high quality object images if recognition will be done using lower quality camera). Every model should have different name. Subsequent calls to learn service with the same object name will overwrite previously learnt model. Model names are used in further calls of load service.
Clears operational memory for selected user. After this operation, object recognition module will always fail to recognize anything.
Load one or more models to operational memory. This operation should be done at least once before first recognition request. Subsequent calls of this service extends operational memory. To replace operational memory with new models, clear service should be called first.
When set of models is loaded to operational memory, user can provide query image to detect objects on. If any object of known type is recognized, its center point in query image, model name and recognition score (certainty) is returned. User can setup search results to contain only limited number of strongest object hypotheses. If more objects are found, weakest are dropped.
[[images/object_recognition/ex_match_0.jpg]]
Service URL: /rapp/rapp_object_detection/learn_object
Service type: ```bash
string fname
string name
int32 result ```
Service URL: /rapp/rapp_object_detection/clear_models
Service type: ```bash
int32 result ```
Service URL: /rapp/rapp_object_detection/load_models
Service type: ```bash
string user
int32 result ```
Service URL: /rapp/rapp_object_detection/find_objects
Service type: ```bash
string fname
uint32 limit
string[] found_names
geometry_msgs/Point[] found_centers
float64[] found_scores
int32 result ```
#Launchers
Launches the object_recognition node and can be launched using ``` roslaunch rapp_object_recognition object_detection.launch ```
#Web services
TBD