I’ve finally finished the very first version of perception component of the affordance_learning stack.
Perception module is mainly consisted of perceptors, and each perceptor includes specialized feature_extractor(s) depending on the problem, or salient features that we’ve designed. Finally, there are object(s) that each feature_extractor processes. Objects can be thought as if they are the salient parts of the environment that robot -somehow- extracts from the acquired raw sensory data.
Below is the UML diagram which shows the the slightly earlier version of the architecture to some extent.
There are several issues that I see in the current system:
- OBject identification checks the similarity of the clusters according to their bounding box center change in one perception cycle, that’s in the video below id of the cluster 4 becomes 1 since the object displaced more than a prespecified threshold. This can be improved by using a more complicated similarity check (e.g. one that considers bounding box dimensions, and pose).
- SurfaceFeatureExtractor class only extracts surface normals, and the parameters are better be tuned for a more descriptive performance.
- Matlab subplots are not shown in order, not really a problem, I’m gonna fix this a few minutes later.
- PoseFeatureExtractor should be implemented before going into the learning experiments
- Gazebo range camera model doesn’t seem to acquire data from the top sides of the cylinders, this might be a problem if fill-able type affordances are to be learned.