-
Notifications
You must be signed in to change notification settings - Fork 947
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
Benchmarking with different Motion Planners (STOMP, CHOMP, OMPL) #992
Benchmarking with different Motion Planners (STOMP, CHOMP, OMPL) #992
Conversation
- plugin: chomp_interface/CHOMPPlanner | ||
planners: | ||
- CHOMP | ||
- plugin: stomp_moveit/StompPlannerManager |
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.
maybe stomp_moveit
should be renamed to stomp_interface
to be consistent with OMPL and CHOMP?
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.
I'm guessing this is tied by the package name
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.
yes this is the package name: stomp_moveit
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.
My point was that perhaps the package should be renamed for consistency. This can be done later, if others agree.
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.
i agree it would be nice
@@ -27,3 +27,4 @@ benchmark_config: | |||
- plugin: my_plugin_ns/my_plugin | |||
planners: | |||
- MyPlanner | |||
|
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.
please don't introduce changes like this into PRs since nothing else in this file was modified
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 this was my mistake, removed this change
@@ -532,6 +532,9 @@ bool BenchmarkExecutor::plannerConfigurationsExist(const std::map<std::string, s | |||
planning_interface::PlannerManagerPtr pm = planner_interfaces_[it->first]; | |||
const planning_interface::PlannerConfigurationMap& config_map = pm->getPlannerConfigurations(); | |||
|
|||
if (pm->getDescription().compare("stomp") || pm->getDescription().compare("chomp")) |
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.
what is this for? add comment inline
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.
added comments explaining this, I put this here because for STOMP and CHOMP, the benchmarking was throwing an error as this line for CHOMP/STOMP returns a size of 0 for the config_map parameter which was causing an error. After putting this check, everything worked fine.
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.
Ready to be merged once one small comment is updated.
- plugin: chomp_interface/CHOMPPlanner | ||
planners: | ||
- CHOMP | ||
- plugin: stomp_moveit/StompPlannerManager |
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.
My point was that perhaps the package should be renamed for consistency. This can be done later, if others agree.
@@ -532,6 +532,11 @@ bool BenchmarkExecutor::plannerConfigurationsExist(const std::map<std::string, s | |||
planning_interface::PlannerManagerPtr pm = planner_interfaces_[it->first]; | |||
const planning_interface::PlannerConfigurationMap& config_map = pm->getPlannerConfigurations(); | |||
|
|||
// if the planner is chomp or stomp skip this function and return true for checking planner configurations for the | |||
// planning group other wise an error occurs, this is kind of a trick which works well |
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.
Even with other wise
replaced with otherwise
, I still can't parse this. Why is this a trick? Perhaps the issue that with OMPL, a specific planning algorithm needs to be defined for a planning group, whereas with STOMP and CHOMP this is not necessary.
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.
changed comment
b236e84
to
3165b80
Compare
Sorry, I did something bad here while rebasing, accidentally rebased with the wrong local branch ( So at the end I basically merged the commits from this PR into the current one. But I am trying to fix this using |
its not clear if i should review this |
@davetcoleman I had a question for you, is it possible to undo a rebase after I already pushed it (I think it is kind of complicated coz I deleted my local branch on my laptop) ? I actually wanted to rebase my This specifc PR has only 6 commits but the branch which I used to rebase this with had 10 commits so I ended up with 16 commits in this PR. Should I get rid of this PR and open a new one ? .... I am Sorry for the confusion pertaining to this specific PR. |
you can branch off of |
ok, thanks Dave, I will read up on |
3165b80
to
ed9bdf6
Compare
Hi @davetcoleman , I have fixed this PR and removed the redundant commits added due to my wrong rebase earlier. This PR is now ready for review and Travis passes. |
# of motion plan queries and start states in the Kitchen scene. | ||
|
||
# Five planners from two different plugins are run a total of 50 times each, with a | ||
# maximum of 10 seconds per run. Output is stored in the /home/benchmarks directory. |
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.
Output is stored in the /home/benchmarks directory.
This is not true, right? Line 18 has a different location
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.
yes, you are right, fixed!
# of motion plan queries and start states in the Kitchen scene. | ||
|
||
# Five planners from two different plugins are run a total of 50 times each, with a | ||
# maximum of 10 seconds per run. Output is stored in the /home/benchmarks directory. |
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.
same directory issue
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.
fixed
// planning group otherwise an error occurs, because for OMPL a specific planning algorithm needs to be defined for | ||
// a planning group, whereas with STOMP and CHOMP this is not necessary | ||
if (pm->getDescription().compare("stomp") || pm->getDescription().compare("chomp")) | ||
return true; |
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 should be continue
not return
... in case OMPL is also in the list of planner interfaces to check
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.
fixed
* addition of launch files and yaml files for benchmarking to work with STOMP and CHOMP * trick to make CHOMP and STOMP work with the existing benchmarks * changed default output directory in yaml files * applied clang format * addressed PR requested changes * fixed comment message * fixed some bugs in comments, addressed PR requested changes * q
cherry picked to melodic |
…eit#992) * addition of launch files and yaml files for benchmarking to work with STOMP and CHOMP * trick to make CHOMP and STOMP work with the existing benchmarks * changed default output directory in yaml files * applied clang format * addressed PR requested changes * fixed comment message * fixed some bugs in comments, addressed PR requested changes * q
…eit#992) * addition of launch files and yaml files for benchmarking to work with STOMP and CHOMP * trick to make CHOMP and STOMP work with the existing benchmarks * changed default output directory in yaml files * applied clang format * addressed PR requested changes * fixed comment message * fixed some bugs in comments, addressed PR requested changes * q
Co-authored-by: Jafar Abdi <cafer.abdi@gmail.com> Co-authored-by: Tyler Weaver <tyler@picknik.ai>
Benchmarking with different Motion Planners (STOMP, CHOMP, OMPL)
This PR is a work done by Raghavender as a part of 2018 Google summer of code. As a part of this PR, benchmarking works for different motion planners (CHOMP, STOMP, OMPL) available in MoveIt. For a particular benchmark(start sates, planning scene, goal states, queries, etc.), different planners can be evaluated.
Checklist