Closed jeking04 closed 8 years ago
Wow, this sounds like a great idea. I like paralleling PlanningMethod, perhaps we can make a PrpyMethod base implementation for adding these reflexive method chains.
Sounds great! A few points:
prpy/perception
should handle all robot-specific things, including extrinsics and mapping perception objects to kinbodies.rock.yaml
that contains the dict that maps kinbodies to perception objects. The base class then contains an object
dict that loads that.DetectObjects
function to take an optional list of kinbodies, if we want to focus the search for specific object sets.Okey dokey,
I have started these changes in this branch: https://github.com/personalrobotics/prpy/tree/feature/perception_pipeline
and the associated herbpy branch of the same name.
This currently just calls the kinbody_detector, which is a separate package, and lets the kinbody_detector load objects into the environment. Next we can work on restructuring that package and pulling some functionality into prpy (per Bullet 1 above). But have a look at that branch and make sure structurally its what we have in mind.
Next up I am going to try to create a rock detector. Then we will need something that parallels the Sequence or Ranked MetaPlanners. I think this goes along the lines of bullet 4.
@jeking04 and I just had a chat about where to place the logic and code that updates the OpenRAVE environment. Note that this logic can be fairly complicated and possibly custom for different demos/objects and would have to handle things like:
My suggestion is to create a perception/worldupdater.py
[or something better named] that holds the logic for updating the world that takes in an env
and possibly a list of whatever the detector[s] output[s] and updates the env
.
anyone else noticing prpy.perception isn't showing up as a module in python? I had to add some references to it in setup.py and init to see it
Added in #189 as part of the block sorting demo.
Now that we have both apriltags and rock I think we are ready to implement a perception pipeline. This issue is for discussing concrete implementation details related to this.
The current idea is to follow the planning pipeline. Here is a stab at some of the implementation details that we can do right now:
Future:
Okay, I think this captures most of what we discussed during the rock demo today. What do people think?