Commit Graph

1002 Commits

Author SHA1 Message Date
Robert Haschke
8fa66a6d2c Update pybind11 to version 2.12.0
Currently used branch was not interoperable with a standard version of pybind11.
2024-05-29 15:43:46 +02:00
VideoSystemsTech
ad5c878f19
ComputeIK: Allow additional constraints for filtering solutions (#464)
Add "constraint" property.

Co-authored-by: Robert Haschke <rhaschke@techfak.uni-bielefeld.de>
2024-05-28 16:54:10 +02:00
VideoSystemsTech
227d475282 Expose MultiPlanner to Python (#474)
Co-authored-by: Robert Haschke <rhaschke@techfak.uni-bielefeld.de>
2024-05-27 19:17:45 +02:00
Captain Yoshi
3b4ea48c18
Add unittest cartesianCollisionMinMaxDistance (#538)
... to illustrate that MoveRelative's min-max constraint fails with PipelinePlanners (e.g. Pilz) returning a partially invalid trajectory: MTC does not truncate the trajectory to its valid part and thus fails, even if the valid part fits the given min-max range. This logic is only supported for the CartesianPath planner for now.

Co-authored-by: Robert Haschke <rhaschke@techfak.uni-bielefeld.de>
2024-05-27 16:16:57 +02:00
Robert Haschke
92efc14043 Rename ros-planning org 2024-05-25 21:30:30 +02:00
Robert Haschke
7666f73e04
Simplify formatting code with https://github.com/fmtlib (#499)
* Simplify formatting code with https://github.com/fmtlib
* Update to clang-format-12
2024-05-25 19:12:42 +02:00
Captain Yoshi
a0c00646c2
Add NoOp stage (#534)
This stage can be used to add arbitrary user-defined properties w/o modifying the PlanningScene state or adding a trajectory.

Co-authored-by: Robert Haschke <rhaschke@techfak.uni-bielefeld.de>
2024-05-24 14:34:27 +02:00
Robert Haschke
54e653ebdb Fix failing assertion
The cost of a newly created Priority does not need to be finite.
An example occurs in the Pick+Place demo: the CurrentState solution
is filtered by an applicibility test, which may set the cost to infinity
while lifting the solution to the wrapper stage.
In this case, new InterfaceStates are created from the infinite cost solution.
Consequently, the state should be marked as PRUNED.
2024-05-24 12:02:20 +02:00
Robert Haschke
9c05305eff ModifyPlanningScene: check state for collisions 2024-05-24 10:49:14 +02:00
Robert Haschke
a8896e4e5d Improve TypeError exceptions
- use pybind11 API instead of Python C API
- provide more informative error messages
2024-05-23 14:08:49 +02:00
Robert Haschke
9fd2f1f858 Drop Melodic support
- py_binding_tools is released into Noetic only
- drop Python2 support
- drop TYPED_TEST_CASE
2024-05-23 14:08:49 +02:00
Robert Haschke
405755595a Switch to package py_binding_tools 2024-05-23 14:08:49 +02:00
Captain Yoshi
ad19ea5479
Add ability to move CollisionObjects (#567) 2024-05-12 11:03:47 +02:00
Sebastian Castro
819e560ed4
Improve description of max_distance property of Connect stage (#564) 2024-05-05 19:30:36 +02:00
Daniel García López
560aa0a476
Add Generator::spawn(from, to, trajectory) variant (#546) 2024-03-20 15:32:15 +01:00
Robert Haschke
55c4b52b13 Cosmetic fixes 2024-03-09 11:11:01 +01:00
Robert Haschke
5a8925df11 Revert "Disable MPS tests, failing due to #432"
This reverts commit 5382338933.
2024-03-08 17:16:19 +01:00
Robert Haschke
4aac679257 Fix generation of Solution msg: consider backward operation
Need to generate full planning scene message if planning progressed backwards:
The scene_diff field describes PlanningScene changes of the end scene relative to the start scene,
while during planning it might be inversed.
2024-03-08 17:16:19 +01:00
Abishalini
e09fecd71f Propagate errors from planners to solution comment (#525) 2024-03-08 11:13:10 +01:00
Michael Wiznitzer
0827a0d260 JointInterpolationPlanner: Check joint bounds (#505) 2024-03-07 20:33:43 +01:00
Robert Haschke
d0a904c313 Add property trajectory_execution_info (#355, #502)
... to pass a list of controller names to PlanExecution

---------

Co-authored-by: Luca Lach <llach@techfak.uni-bielefeld.de>
2024-03-07 20:01:03 +01:00
Robert Haschke
a75d50e0ed Clear JointStates in scene diff (#504)
Joints are handled in trajectories.
Scene diffs should not modify joints during execution.
Fixes #353.
2024-03-07 12:23:07 +01:00
Sebastian Jahr
b0f388a88f Set a non-infinite default timeout in CurrentState stage (#491)
Co-authored-by: Mario Prats <mario.prats@picknik.ai>
2024-03-07 12:23:07 +01:00
Henning Kayser
111d9ba207
Add GenerateRandomPose stage (#166)
Implements a generic pose randomizer

Co-authored-by: JafarAbdi <cafer.abdi@gmail.com>
Co-authored-by: Sebastian Jahr <sebastian.jahr@picknik.ai>
Co-authored-by: Robert Haschke <rhaschke@techfak.uni-bielefeld.de>
2024-03-06 22:32:13 +01:00
Captain Yoshi
911bc67c4d
GenerateGraspPose: Expose rotation_axis as property (#535) 2024-03-06 11:02:44 +01:00
Captain Yoshi
5720b83dce
Connect: ensure end-state matches goal state (#532) 2024-02-25 16:58:56 +01:00
Michael Görner
7638e5ff8b
Merge pull request #495 from ubi-agni/debug-#485
[WIP] Debug/Fix #485
2024-02-16 12:27:36 +01:00
Robert Haschke
275c15422d Adaptions for https://github.com/ros-planning/moveit/pull/3534
make_box() is a public method now
2024-02-15 22:20:34 +01:00
Robert Haschke
e163f57f9c Cleanup debug output 2024-02-15 21:42:18 +01:00
Robert Haschke
9dfd6bd2eb Fix duplicate solutions
When adding pending state pairs for a new incoming state to Connect,
we have to re-enable opposite states from ARMED state.
This changes the order of states in the interface.
If we do this while iterating over the states, we might add pairs multiple times,
because iteration continues with same state at an earlier position.
2024-02-15 21:42:18 +01:00
Robert Haschke
bf2714b42d printPendingPairs(os) -> os<<pendingPairsPrinter() 2023-10-25 22:21:36 +02:00
Robert Haschke
13264ba21d Fix leaking of failures into enumerated solutions 2023-10-25 22:21:36 +02:00
Robert Haschke
7b965863e3 Add more debugging output
- Add Stage::introspection() accessor
- Introspection: debug-log solution registration
- RemoteSolutionModel: show internal solution id as tooltip in 1st column
2023-10-25 22:19:49 +02:00
Robert Haschke
08b102d5b0 Unit tests for #485 2023-10-20 09:23:32 +02:00
Robert Haschke
605a1e5419 DelayingWrapper stage to delay solution shipping in unit tests 2023-10-20 09:23:32 +02:00
Robert Haschke
0fd989cb27 Simplify tests 2023-10-13 00:25:39 +02:00
Michael Görner
dcde89d4d5
Skip Fallbacks::replaceImpl() when already correctly initialized (#494)
Do not reinitialize a Fallbacks' pimpl if it already serves the desired interface.
2023-10-11 14:45:24 +02:00
Michael Görner
ab4bb40dfd
Fix demos (#493)
* improve demo rviz config
  - orbit view centered at workspace instead of 2d orbit
  - REALTIME trajectory display
* FixedState: setter for ignore_collisions property
* Fix clearance_cost demo
  - verify default state
  - use model frame over virtual "world" which is not known in fresh PlanningScene
  - ignore initial collisions with the IK seed
* improve documentation in Fallbacks demo
2023-10-11 14:30:54 +02:00
Robert Haschke
647f3ec413 Limit time to wait for execute_task_solution action server 2023-09-18 10:35:23 +02:00
Robert Haschke
c605a0059a Replace namespace robot_[model|state] with moveit::core 2023-05-26 01:18:17 +02:00
Robert Haschke
6f7282423d MPS: fixup processCollisionObject
- Declare CollisionObject argument as constant:
  Internally the argument is temporarily modified, but for a caller it is effectively const.
- Correctly restore the old operation mode
- Fixup check in unit test
2023-05-26 01:15:50 +02:00
Robert Haschke
3ec69fb59d
Merge PR #460: improvements to ModifyPlanningScene stage 2023-05-25 22:29:31 +02:00
Robert Haschke
5382338933 Disable MPS tests, failing due to #432 2023-05-25 21:52:07 +02:00
Robert Haschke
78da3e46e6
Gracefully handle NULL robot_trajectory (#469) 2023-05-25 17:49:23 +02:00
Robert Haschke
76d293863b
introspection: remove any invalid ROS-name chars from hostname (#465) 2023-05-19 08:48:28 +02:00
Robert Haschke
397fc070ea Fix SolutionBase::fillMessage(): also write start_scene
This method was only doing half of the job, namely adding subsolutions
to the message fields. However, the start_scene was not yet written.
This was handled manually in some but not all callers.
To avoid this inconsistency, the new method toMsg() takes care of both
actions now, while the old fillMessage() method was renamed to appendTo().
2023-05-19 08:43:14 +02:00
Robert Haschke
bd400de184 Fix add/remove object in backward operation
- addObject() will actually remove the object from scene
- removeObject() is not supported (we would need to know which object to add)
2023-05-19 08:43:12 +02:00
Robert Haschke
1daef934ee Add python binding for ModifyPlanningScene::removeObject 2023-05-19 08:43:12 +02:00
Robert Haschke
6a01550e8d ComputeIK: update RobotState before calling setFromIK()
This became necessary due to https://github.com/ros-planning/moveit/issues/3388.
2023-05-17 21:01:57 +02:00
Michael Görner
4d2a5714fa
Use pluginlib consistently (#463) 2023-05-17 19:55:18 +02:00
VideoSystemsTech
dee73b2dde
Expose argument of PipelinePlanner's constructor to Python (#462) 2023-05-16 14:32:17 +02:00
Robert Haschke
d59acdb969 Fix allowCollisions(object, enable_collision)
Call ACM::setDefaultEntry to also cover objects that are not yet known to the ACM.
2023-05-16 09:43:00 +02:00
Robert Haschke
45ca1a67a9 TestModifyPlanningScene 2023-05-16 09:42:25 +02:00
Robert Haschke
b318c3cae9 Basic Move test: MoveRelative + MoveTo 2023-05-05 00:21:11 +02:00
Robert Haschke
84cb880a9d Add python binding for ModifyPlanningScene::allowCollisions(std::string, bool) 2023-05-05 00:21:11 +02:00
Robert Haschke
1002d84946 Add python binding for Task::insert 2023-05-04 23:22:49 +02:00
Robert Haschke
d1a6916206
Stage::explainFailure() (#445)
... to facilitate spotting the stage causing a task to fail
2023-05-04 17:07:11 +02:00
Robert Haschke
ede7cb71cc
Improve documentation (#431)
* Improve general description of stage and container types
* Clarify purpose of `CurrentState` stage
* Add troubleshooting section
2023-05-04 17:02:00 +02:00
Robert Haschke
7f10292ab3
JointInterpolationPlanner: pass optional max_effort property along to GripperCommand (#458)
MoveIt passes the effort field of the last trajectory point as the max_effort for a GripperCommand.
Thus we pass the max_effort property to the effort field of the trajectory's last waypoint.
2023-05-04 15:29:53 +02:00
Robert Haschke
b346e7eb78
Task: findChild() and operator[] should directly operate on stages() (#435)
Considering the (fixed) name of the top-level container is meaningless.
2023-05-04 15:23:23 +02:00
Robert Haschke
f07b81fcd0 cleanup 2023-05-04 14:26:34 +02:00
Robert Haschke
4781ed5636 ros1-0.1.3 2023-03-06 16:37:54 +01:00
Robert Haschke
c57a0bcc12 Fixup: Remove moveit/__init__.py during .deb build
Fix install path recognition (6671aedeb7). Debian install process targets:
/tmp/binarydeb/ros-noetic-moveit-task-constructor-core-<version>/debian/ros-noetic-moveit-task-constructor-core/opt/ros/noetic/lib/python3/dist-packages/moveit
2023-03-06 16:31:59 +01:00
Robert Haschke
75e4260e2a
MoveRelative: Allow backwards operation for joint-space delta (#436) 2023-03-06 16:27:09 +01:00
Robert Haschke
61bb2fdc58
ComputeIK: Limit collision checking to JMG (#428)
That's what MoveIt is doing as well.
2023-02-28 13:18:53 +01:00
Robert Haschke
a3cb8c6584 Fix: Fetch pybind11 submodule if not yet present
cmake's execute_process pipes COMMANDs together.
Thus, `git submodule update` received the output of `git submodule init` as input
and didn't do anything.
2023-02-28 11:15:05 +01:00
Robert Haschke
ca1c7c7e24 Fix typo 2023-02-28 11:13:24 +01:00
Robert Haschke
d07aece163 ros1-0.1.2 2023-02-24 00:02:47 +01:00
Robert Haschke
6671aedeb7 Remove moveit/__init__.py during .deb builds 2023-02-23 23:55:38 +01:00
Robert Haschke
4a320f309c
Merge PR #429: MultiPlanner
MultiPlanner
2023-02-23 20:44:28 +01:00
Robert Haschke
ea776e35f6
Fix marker creation: allow zero scale for geometric shapes (#430)
Boxes, spheres, and cylinders might explicitly have a zero size. Don't reset their scaling to (1,1,1)
2023-02-23 20:42:23 +01:00
Robert Haschke
db6d90ab69 CartesianPath: Deprecate redundant property setters 2023-02-17 22:37:49 +01:00
Robert Haschke
6dc70b1d49 PlannerInterface: provide "timeout" property
The MultiPlanner requires to set individual timeouts for its planners.
2023-02-17 18:28:02 +01:00
Robert Haschke
573858e51a PlannerInterface: provide setters for properties 2023-02-17 17:33:06 +01:00
Robert Haschke
052a56a333 Add MultiPlanner solvers
a planner that tries multiple planners in sequence
2023-02-17 17:33:06 +01:00
Robert Haschke
3d3236575d JointInterpolation: fix timeout handling
The timeout parameter was essentially ignored and the check was always true.
2023-02-17 11:41:32 +01:00
Robert Haschke
eae0bdc27f ros1-0.1.1 2023-02-15 23:20:32 +01:00
Robert Haschke
7926f69e97 Provide ComputeIK.ik_frame as full PoseStamped
Released MoveIt doesn't (yet) provide a conversion from string to PoseStamped.
2023-02-15 17:05:25 +01:00
Robert Haschke
885ac49ffb Use MoveIt's roscpp_initialize 2023-02-15 17:05:25 +01:00
Robert Haschke
d95a2fc787 Use MoveIt's libmoveit_python_tools.so
Drop our own version of that lib and thus resolve a deploy conflict.
2023-02-15 14:30:14 +01:00
Robert Haschke
4b5de15e1b Remove unused eigen_conversions includes 2023-02-11 13:47:35 +01:00
Robert Haschke
f2d97e524d Fix odr compiler warning on build farm
https://build.ros.org/job/Ndev_db__moveit_task_constructor__debian_buster_amd64/3
2023-02-11 13:31:50 +01:00
Robert Haschke
2843459b34 Fix buildfarm errors
- Add missing package dependencies
- Add author tags to package.xml
2023-02-03 12:24:48 +01:00
Robert Haschke
49b3bd0d56 ros1-0.1.0 2023-02-02 10:02:45 +01:00
Robert Haschke
93b46ef214 GeneratePose: forward registered properties from received solution 2023-01-28 12:01:45 +01:00
Robert Haschke
d9cff5510f Fix more -Wold-style-cast warnings 2023-01-05 16:24:02 +01:00
Robert Haschke
91d9518d3c Replace namespace robot_model -> moveit::core 2023-01-05 03:14:11 +01:00
JafarAbdi
f055fabbd1 Fix clang-tidy warnings
- Replace old-style casts
- Fix missing initialization
2023-01-04 23:52:38 +01:00
Jochen Sprickerhof
770a8a0b17 Fix call of PropagatingEitherWay::computeGeneric()
computeGeneric is templated and private so it will be undefined in the
shared object and when using the computeForward/Backward functions.
2023-01-04 21:39:33 +01:00
Robert Haschke
f872d58520
Expose ContainerBase::childByIndex via operator[](int) (#413) 2022-12-12 20:44:37 +01:00
Robert Haschke
26c690c3b6 Merge PRs #412 (fix-ci) and #409 (more cost-terms) 2022-12-11 22:38:32 +01:00
Robert Haschke
33e9c5d212 Fix clang-tidy issues 2022-12-11 22:37:10 +01:00
Robert Haschke
ced37a029c Update/Stick pybind11 to version 2.9.1-smart_holder
... to maintain compatibility with Python 3.6 and 2.7
2022-12-11 21:34:53 +01:00
Robert Haschke
7c35f6c580 Update/Stick pybind11 to version 2.9.1-smart_holder
... to maintain compatibility with Python 3.6 and 2.7
2022-12-11 17:42:07 +01:00
Robert Haschke
341f1838b5 Build python bindings with size optimization 2022-12-11 17:39:55 +01:00
Robert Haschke
4886fc3f7b Expose CostTerms to python 2022-12-11 17:39:55 +01:00
Robert Haschke
6de570c7a6 new TrajectoryCostTerm: DistanceToReference 2022-12-09 11:19:41 +01:00
Robert Haschke
a9b4947845 PathLength: allow weighting of different joints 2022-12-09 10:16:19 +01:00
Robert Haschke
de22cba99a Fetch pybind11 submodule if not yet present 2022-12-09 09:05:17 +01:00
Robert Haschke
274c75f68f Fix SimpleGrasp/SimpleUnGrasp wrapper
- Wrap common base class SimpleGraspBase to reduce redundancy
- Use correct defaults for stage name
2022-12-08 09:37:33 +01:00