-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added separate LockedPlanningMethod and ClonedPlanningMethod calls. #280
Conversation
This separates the @PlanningMethod decorator into two decorators: - @LockedPlanningMethod locks the current robot environment and executes the wrapped method. - @ClonedPlanningMethod clones the current robot environment and executes the wrapped method. This distinction is useful for planning calls that are so fast that they take less time than the cloning operation itself, such as optimistic plans like `SnapPlanner` and fast mathematical solutions such as `KunzCircularBlender`. This commit refactors all existing planning calls except `SnapPlanner` to use `@ClonedPlanningMethod` and updates the README to explain the distinction. `@PlanningMethod` is changed to inherit from `@ClonedPlanningMethod` but print a warning if it is used.
parallel and to paralellize planning and execution. In general, locked | ||
planning methods are used for calls that will terminate extremely quickly, | ||
while cloned planning methods are used for calls that might take a significant | ||
amount of time. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This description does not clearly articulate the difference between the two decorators. For example, it currently implies that @LockedPlanningMethod
allows PrPy to parallelize multiple planners. I think you should reword this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo: paralellize
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure I'll fix your typos 😉
854b6f3
I am generally supportive of this change. My only concern is about the potential confusion introduced by I am not sure what the best way to address this is. At a minimum, we need to clearly document that |
I made some doc changes in 788d1d5 to clarify the above. I think it's largely harmless to have Metaplanners will probably need to always use cloning for now, because they need to lock an |
👍 Thanks for improving the documentation. I will merge this once Travis finishes on #278. |
Not sure what the issue was, it merged just fine on command-line with no input. |
Finally got Travis to run on this. LGTM. |
This should be merged after #278 and #279.
This separates the
@PlanningMethod
decorator into two decorators:@LockedPlanningMethod
locks the current robot environment and executes the wrapped method.@ClonedPlanningMethod
clones the current robot environment and executes the wrapped method.This distinction is useful for planning calls that are so fast that they take less time than the cloning operation itself, such as optimistic plans like
SnapPlanner
and fast mathematical solutions such asKunzCircularBlender
.This commit refactors all existing planning calls except
SnapPlanner
to use@ClonedPlanningMethod
and updates the README to explain the distinction.@PlanningMethod
is changed to inherit from@ClonedPlanningMethod
but print a warning if it is used.