personalrobotics / prpy

Python utilities used by the Personal Robotics Laboratory.
BSD 3-Clause "New" or "Revised" License
62 stars 19 forks source link

Abstracted robot collision checking into class for snap and vectorfield #331

Closed cdellin closed 8 years ago

cdellin commented 8 years ago

In the push for baked checking in PrPy, this is a first pass which creates a two robot collision checkers:

This PR also refactors the SnapPlanner and VectorFieldPlanner planners to make use of this abstraction. The planners default to SimpleRobotCollisionChecker, 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 the baked_checkers branch of or_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 vanilla CollisionPlanningError is currently thrown.

I'll wait to implement this for TSRPlanner until its PR (#322) is merged.

mkoval commented 8 years ago

Looks good, other than the minor comments I left above. Can you also add this to CHOMP, GreedyIk, and TSRPlanner?

cdellin commented 8 years ago

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.

cdellin commented 8 years ago

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.)

cdellin commented 8 years ago

Comments addressed!