-
Notifications
You must be signed in to change notification settings - Fork 4
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
Add AnytimePathShortening on top of Default RRTConnect #204
base: ros2-devel
Are you sure you want to change the base?
Conversation
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.
Changes seem trivial enough, only wonder if we should validate on cubed melon since we saw several failures on that food type during the showcase.
I don’t understand. The output of an RRT is never meant to be run directly on a robot. It’s meant to be post-processed by a path shortening algorithm and then sent to the re-timer. And yes, you’d never ever want to run RRT* over a biRRT-connect + path shortening. Fortunately OMPL also implements path-shortening.
|
Ah, the path shortening algorithm is what I missed. Thanks for the correction! I added I'm currently working on a script to benchmark the "move above food" plans in sim, to get quantitative guidance for tuning AnytimePathShortening parameters, and to protect against future regressions. |
Excellent. It’d be good to benchmark a few things:1. How expensive your collision checks are. 2. How much time you’re spending path shortening. ADA can sometimes be tricky as some of its joints have continuous rotations so you need to verify that the path-shortening actually understands that (does the mod 2pi when comparing two rotations).Additionally, if your goal is an end-effector transform, you can use IKFast to analytically compute a set of IK solutions and send the set of goals to your planner. Even for a 6-dof arm like the Jaco, you’ll have a finite set of degenerate IK solutions. The GeoDude team has a lot of experience speeding up planners.
|
Quantitatively benchmarking on 192 "above food" plans (varying x, y, fork roll, and fork pitch), I'm not yet seeing the gains of Path Shortening + RRTConnect above RRT*. I'll play around with the path shortening parameters more (here), but let me know if you have suggestions.
|
Description
I've been noticing many more planning failures lately (summer onwards) than we had in our Jan study. It turns out, that when I switched our default planner to RRTConnect #181 (side-note: I should not have done it as part of an unrelated PR), I did not add path shortening. This was resulting in the outputted plans having large swivels, which out system rejected.
This PR addresses that.
Testing procedure
Empirically, I tried this with 8 bites of string cheese at various locations on the plate, and none of them had a planning failure.
Before opening a pull request
python3 -m black .
ada_feeding
directory, run:pylint --recursive=y --rcfile=.pylintrc .
.Before Merging
Squash & Merge