OMPL constrained planning#347
OMPL constrained planning#347tylerjw merged 1 commit intomoveit:mainfrom bostoncleek:pr-ompl_constraints
Conversation
|
@JeroenDM I was not able to achieve the same performance as your PR. Sometimes the equality constraints cannot be satisfied. Do you have any advice? |
|
@bostoncleek I cannot think of something at first glance. I can look into it in more detail this weekend. What do you mean specifically with the constraints not being satisfied? Does it work if you increase the planning time? A question I had about the animations: is there some postprocessing involved to generate the second "cleaner" path? How does it work? It seems to work really well :) |
|
@JeroenDM For example the 45deg equality contraint will produce the following error: For the second path I just called |
Codecov Report
@@ Coverage Diff @@
## main #347 +/- ##
==========================================
+ Coverage 48.05% 53.25% +5.20%
==========================================
Files 156 209 +53
Lines 14941 18856 +3915
==========================================
+ Hits 7179 10040 +2861
- Misses 7762 8816 +1054
Continue to review full report at Codecov.
|
|
@bostoncleek I've found a possible cause. The position error is To be clear, this would be a bug in how I wrote the tutorials or implemented the constraints. We either should lower the default constraint tolerance or increase the EQUALITY_CONSTRAINT_THRESHOLD_. (This remains a hack to specify equality constraints and is still one of the messy parts of the current implementation.) I'm not 100% sure yet, I quickly went through the geometric_shapes package but did not get to the bottom of this. |
henningkayser
left a comment
There was a problem hiding this comment.
Looks flawless to me. Demo and tests work great and I really didn't have a lot to criticize besides the commented code and lack of tutorials. Otherwise, lgtm.
moveit_demo_nodes/run_ompl_constrained_planning/src/run_ompl_constrained_planning.cpp
Outdated
Show resolved
Hide resolved
moveit_demo_nodes/run_ompl_constrained_planning/src/run_ompl_constrained_planning.cpp
Outdated
Show resolved
Hide resolved
moveit_planners/ompl/ompl_interface/include/moveit/ompl_interface/detail/ompl_constraints.h
Show resolved
Hide resolved
...ompl_interface/src/parameterization/joint_space/constrained_planning_state_space_factory.cpp
Show resolved
Hide resolved
moveit_planners/ompl/ompl_interface/src/planning_context_manager.cpp
Outdated
Show resolved
Hide resolved
moveit_planners/ompl/ompl_interface/src/detail/ompl_constraints.cpp
Outdated
Show resolved
Hide resolved
I added another tutorial and there are 2 extras people can run. Referring to the comments code, do you want doxygen style comments in the tutorial/test and/or more comments in the implementation? |
I tested this. Thank you for adding this. I'll look more closely at the code early next week. This is a large one. 😄 |
|
The servo test failure should be fixed now if you rebase this on main. @bostoncleek |
Uses OMPL for constrained cartesian planning. Co-authored-by: JeroenDM <jeroendemaeyer@live.be>
@tylerjw The PR has been rebased. |
tylerjw
left a comment
There was a problem hiding this comment.
I read through these changes and tested them again. This will be a really awesome feature. I left comments on two small style issues. For the newline thing, you should be able to configure your editor to fix that whenever you save a file.
| DESTINATION share/${PROJECT_NAME} | ||
| ) | ||
|
|
||
| ament_package() No newline at end of file |
| - panda_joint4 | ||
| - panda_joint5 | ||
| - panda_joint6 | ||
| - panda_joint7 No newline at end of file |
| - -2.356 | ||
| - 0.0 | ||
| - 1.571 | ||
| - 0.785 No newline at end of file |
| <export> | ||
| <build_type>ament_cmake</build_type> | ||
| </export> | ||
| </package> No newline at end of file |
|
|
||
| rclcpp::shutdown(); | ||
| return 0; | ||
| } No newline at end of file |
| - panda_joint4 | ||
| - panda_joint5 | ||
| - panda_joint6 | ||
| - panda_joint7 No newline at end of file |
| - -2.356 | ||
| - 0.0 | ||
| - 1.571 | ||
| - 0.785 No newline at end of file |
| 'robot_state_publisher': robot_state_publisher, | ||
| 'fake_joint_driver_node': fake_joint_driver_node, | ||
| 'mongodb_server_node': mongodb_server_node, | ||
| 'ompl_constraint_test': ompl_constraint_test} No newline at end of file |
| int ret = RUN_ALL_TESTS(); | ||
| rclcpp::shutdown(); | ||
| return ret; | ||
| } No newline at end of file |
| std::thread executor_thread_; | ||
| moveit::planning_interface::MoveGroupInterfacePtr move_group_; | ||
| std::string ref_link_, ee_link_; | ||
| // mutable std::mutex latest_state_mutex_; |
There was a problem hiding this comment.
[nit] remove commented out code
OMPL for constrained cartesian planning.
Co-authored-by: JeroenDM jeroendemaeyer@live.be
Description
This is a port from PR 2273 that provides position constraints.
A demo and integration test are included.
Add the follow lines to ompl_planning.yaml in panda_config under
panda_arm:Demo
Unit Tests
Integration Test
The demo outputs:
Box Constraint
Plane Constraint
Checklist