Closed cdellin closed 8 years ago
Looks good, other than the minor comments I left above. Can you also add this to CHOMP, GreedyIk, and TSRPlanner?
I addressed most of the comments, and also added this for ChompPlanner
.
I'd prefer to wait to add this to TSRPlanner
until #322 is merged. Also, the current implementation of GreedyIKPlanner
does its collision checking in FindIKSolutions
, and unfortunately there's no way to add baked support to that planner.
I like how immediately after my last comment, you went ahead and merged #322. Fine! TSRPlanner
support is now in. (I refactored the robot collision interface to make it a bit nicer and more consistent with the native OpenRAVE interface.)
Comments addressed!
In the push for baked checking in PrPy, this is a first pass which creates a two robot collision checkers:
SimpleRobotCollisionChecker
BakedRobotCollisionChecker
Each of these can be constructed for a robot, and expose a simpleCheckCollision
method, which raises a PrPy exception upon collision.This PR also refactors the
SnapPlanner
andVectorFieldPlanner
planners to make use of this abstraction. The planners default toSimpleRobotCollisionChecker
, but a different type can be passed in when they are instantiated, and this type will be used for its collision checking.Note that the
BakedRobotCollisionChecker
is experimental, and only works with thebaked_checkers
branch ofor_fcl
at the moment. Currently, the underlying checker does not expose which links provoked the collision, so the collision report is not helpful, and a vanillaCollisionPlanningError
is currently thrown.I'll wait to implement this for
TSRPlanner
until its PR (#322) is merged.