Commit Graph

682 Commits

Author SHA1 Message Date
Captain Yoshi
1655762a63
Avoid duplicate scenes in Solution.msg from generator stages (#639)
Some checks failed
CI / ${{ matrix.env.IMAGE }}${{ matrix.env.NAME && ' • ' || ''}}${{ matrix.env.NAME }}${{ matrix.env.CATKIN_LINT && ' • catkin_lint' || ''}}${{ matrix.env.CLANG_TIDY && ' • clang-tidy' || '' }} (map[CLANG_TIDY:true IMAGE:noble-ci-testing TARGET_CMAKE_… (push) Has been cancelled
CI / ${{ matrix.env.IMAGE }}${{ matrix.env.NAME && ' • ' || ''}}${{ matrix.env.NAME }}${{ matrix.env.CATKIN_LINT && ' • catkin_lint' || ''}}${{ matrix.env.CLANG_TIDY && ' • clang-tidy' || '' }} (map[DOCKER_RUN_OPTS:-e PRELOAD=libasan.so.8 -e LSAN_OPTI… (push) Has been cancelled
CI / ${{ matrix.env.IMAGE }}${{ matrix.env.NAME && ' • ' || ''}}${{ matrix.env.NAME }}${{ matrix.env.CATKIN_LINT && ' • catkin_lint' || ''}}${{ matrix.env.CLANG_TIDY && ' • clang-tidy' || '' }} (map[IMAGE:jammy-ci]) (push) Has been cancelled
CI / ${{ matrix.env.IMAGE }}${{ matrix.env.NAME && ' • ' || ''}}${{ matrix.env.NAME }}${{ matrix.env.CATKIN_LINT && ' • catkin_lint' || ''}}${{ matrix.env.CLANG_TIDY && ' • clang-tidy' || '' }} (map[IMAGE:noble-ci NAME:ccov TARGET_CMAKE_ARGS:-DCMAKE_B… (push) Has been cancelled
Format / pre-commit (push) Has been cancelled
CI / doc (push) Has been cancelled
CI / deploy (push) Has been cancelled
If start and end scene of a stage are identical (e.g. from a generator), we can use an (empty) scene diff as well.
2025-09-10 17:33:31 +02:00
Gauthier Hentz
7384702448
Allow max Cartesian link speed in PlannerInterface (#277)
Some checks are pending
CI / ${{ matrix.env.IMAGE }}${{ matrix.env.NAME && ' • ' || ''}}${{ matrix.env.NAME }}${{ matrix.env.CATKIN_LINT && ' • catkin_lint' || ''}}${{ matrix.env.CLANG_TIDY && ' • clang-tidy' || '' }} (map[CLANG_TIDY:true IMAGE:noble-ci-testing TARGET_CMAKE_… (push) Waiting to run
CI / ${{ matrix.env.IMAGE }}${{ matrix.env.NAME && ' • ' || ''}}${{ matrix.env.NAME }}${{ matrix.env.CATKIN_LINT && ' • catkin_lint' || ''}}${{ matrix.env.CLANG_TIDY && ' • clang-tidy' || '' }} (map[DOCKER_RUN_OPTS:-e PRELOAD=libasan.so.8 -e LSAN_OPTI… (push) Waiting to run
CI / ${{ matrix.env.IMAGE }}${{ matrix.env.NAME && ' • ' || ''}}${{ matrix.env.NAME }}${{ matrix.env.CATKIN_LINT && ' • catkin_lint' || ''}}${{ matrix.env.CLANG_TIDY && ' • clang-tidy' || '' }} (map[IMAGE:jammy-ci]) (push) Waiting to run
CI / ${{ matrix.env.IMAGE }}${{ matrix.env.NAME && ' • ' || ''}}${{ matrix.env.NAME }}${{ matrix.env.CATKIN_LINT && ' • catkin_lint' || ''}}${{ matrix.env.CLANG_TIDY && ' • clang-tidy' || '' }} (map[IMAGE:noble-ci NAME:ccov TARGET_CMAKE_ARGS:-DCMAKE_B… (push) Waiting to run
CI / doc (push) Blocked by required conditions
CI / deploy (push) Blocked by required conditions
Format / pre-commit (push) Waiting to run
2025-09-10 14:30:26 +02:00
Robert Haschke
e9eab62f5f
Enable collisions visualizations (#708)
Some checks failed
CI / ${{ matrix.env.IMAGE }}${{ matrix.env.NAME && ' • ' || ''}}${{ matrix.env.NAME }}${{ matrix.env.CATKIN_LINT && ' • catkin_lint' || ''}}${{ matrix.env.CLANG_TIDY && ' • clang-tidy' || '' }} (map[CLANG_TIDY:true IMAGE:noble-ci-testing TARGET_CMAKE_… (push) Has been cancelled
CI / ${{ matrix.env.IMAGE }}${{ matrix.env.NAME && ' • ' || ''}}${{ matrix.env.NAME }}${{ matrix.env.CATKIN_LINT && ' • catkin_lint' || ''}}${{ matrix.env.CLANG_TIDY && ' • clang-tidy' || '' }} (map[DOCKER_RUN_OPTS:-e PRELOAD=libasan.so.8 -e LSAN_OPTI… (push) Has been cancelled
CI / ${{ matrix.env.IMAGE }}${{ matrix.env.NAME && ' • ' || ''}}${{ matrix.env.NAME }}${{ matrix.env.CATKIN_LINT && ' • catkin_lint' || ''}}${{ matrix.env.CLANG_TIDY && ' • clang-tidy' || '' }} (map[IMAGE:jammy-ci]) (push) Has been cancelled
CI / ${{ matrix.env.IMAGE }}${{ matrix.env.NAME && ' • ' || ''}}${{ matrix.env.NAME }}${{ matrix.env.CATKIN_LINT && ' • catkin_lint' || ''}}${{ matrix.env.CLANG_TIDY && ' • clang-tidy' || '' }} (map[IMAGE:noble-ci NAME:ccov TARGET_CMAKE_ARGS:-DCMAKE_B… (push) Has been cancelled
Format / pre-commit (push) Has been cancelled
CI / doc (push) Has been cancelled
CI / deploy (push) Has been cancelled
2025-08-22 08:38:44 +02:00
Robert Haschke
336ad4456c
LimitSolutions wrapper stage (#710)
* Add python bindings for PassThrough
* Add LimitSolutions stage
2025-08-22 08:37:09 +02:00
Robert Haschke
bf001bd093 Improve code documentation
Some checks failed
CI / ${{ matrix.env.IMAGE }}${{ matrix.env.NAME && ' • ' || ''}}${{ matrix.env.NAME }}${{ matrix.env.CATKIN_LINT && ' • catkin_lint' || ''}}${{ matrix.env.CLANG_TIDY && ' • clang-tidy' || '' }} (map[CLANG_TIDY:true IMAGE:noble-ci-testing TARGET_CMAKE_… (push) Has been cancelled
CI / ${{ matrix.env.IMAGE }}${{ matrix.env.NAME && ' • ' || ''}}${{ matrix.env.NAME }}${{ matrix.env.CATKIN_LINT && ' • catkin_lint' || ''}}${{ matrix.env.CLANG_TIDY && ' • clang-tidy' || '' }} (map[DOCKER_RUN_OPTS:-e PRELOAD=libasan.so.8 -e LSAN_OPTI… (push) Has been cancelled
CI / ${{ matrix.env.IMAGE }}${{ matrix.env.NAME && ' • ' || ''}}${{ matrix.env.NAME }}${{ matrix.env.CATKIN_LINT && ' • catkin_lint' || ''}}${{ matrix.env.CLANG_TIDY && ' • clang-tidy' || '' }} (map[IMAGE:jammy-ci]) (push) Has been cancelled
CI / ${{ matrix.env.IMAGE }}${{ matrix.env.NAME && ' • ' || ''}}${{ matrix.env.NAME }}${{ matrix.env.CATKIN_LINT && ' • catkin_lint' || ''}}${{ matrix.env.CLANG_TIDY && ' • clang-tidy' || '' }} (map[IMAGE:noble-ci NAME:ccov TARGET_CMAKE_ARGS:-DCMAKE_B… (push) Has been cancelled
Format / pre-commit (push) Has been cancelled
CI / doc (push) Has been cancelled
CI / deploy (push) Has been cancelled
2025-08-13 11:39:38 +02:00
Captain Yoshi
a0da41a4aa
Fix clamping of joint constraints (#665)
Some checks failed
CI / ${{ matrix.env.IMAGE }}${{ matrix.env.NAME && ' • ' || ''}}${{ matrix.env.NAME }}${{ matrix.env.CATKIN_LINT && ' • catkin_lint' || ''}}${{ matrix.env.CLANG_TIDY && ' • clang-tidy' || '' }} (map[CLANG_TIDY:true IMAGE:noble-ci TARGET_CMAKE_ARGS:-DC… (push) Has been cancelled
CI / ${{ matrix.env.IMAGE }}${{ matrix.env.NAME && ' • ' || ''}}${{ matrix.env.NAME }}${{ matrix.env.CATKIN_LINT && ' • catkin_lint' || ''}}${{ matrix.env.CLANG_TIDY && ' • clang-tidy' || '' }} (map[DOCKER_RUN_OPTS:-e PRELOAD=libasan.so.5 -e LSAN_OPTI… (push) Has been cancelled
CI / ${{ matrix.env.IMAGE }}${{ matrix.env.NAME && ' • ' || ''}}${{ matrix.env.NAME }}${{ matrix.env.CATKIN_LINT && ' • catkin_lint' || ''}}${{ matrix.env.CLANG_TIDY && ' • clang-tidy' || '' }} (map[IMAGE:jammy-ci]) (push) Has been cancelled
CI / ${{ matrix.env.IMAGE }}${{ matrix.env.NAME && ' • ' || ''}}${{ matrix.env.NAME }}${{ matrix.env.CATKIN_LINT && ' • catkin_lint' || ''}}${{ matrix.env.CLANG_TIDY && ' • clang-tidy' || '' }} (map[IMAGE:noble-ci NAME:ccov TARGET_CMAKE_ARGS:-DCMAKE_B… (push) Has been cancelled
Format / pre-commit (push) Has been cancelled
CI / doc (push) Has been cancelled
CI / deploy (push) Has been cancelled
Do not enforce position bounds (by clamping to valid positions), but let the stage fail if joints are outside the limits.
2025-02-25 13:12:53 +01:00
Robert Haschke
bad8e13254 Fix error message
... due to copy-paster error in 9ea1692f96
2025-02-11 08:10:18 +01:00
Robert Haschke
9ea1692f96
Correctly report failures instead of issueing console warnings
Don't use command-line warnings, but spawn failure solutions.
2025-02-06 15:09:15 +01:00
Robert Haschke
4dfcf09516 clang-format-14 2024-12-22 14:09:08 +01:00
Robert Haschke
cd0ab8838c CI: Add Noble build 2024-12-22 14:09:08 +01:00
Robert Haschke
8c0609a711 clang-tidy fixes: std::endl -> '\n' 2024-12-22 12:29:05 +01:00
Robert Haschke
f29784e750 Improve error message
Indicate source of error as CartesianPath.
2024-12-06 12:07:15 +01:00
Michael Görner
721ff356b7
provide a fmt wrapper (#615)
for special eigen formatter, which is not available in fmt9

https://github.com/fmtlib/fmt/issues/3465
https://stackoverflow.com/a/73755864/21260084
2024-09-24 20:41:12 +02:00
Robert Haschke
99ccc115e0
Update API: JumpThreshold -> CartesianPrecision (#611)
Python: Access properties via writable references
This allows to modify properties in place, e.g. cartesian_solver.precision.translational = 0.01
2024-09-17 10:59:14 +02:00
Captain Yoshi
fdc06c3b91
Reduce stop time due to preempt (#598)
The preempt_request_ flag was only checked at the top-level task container before each compute iteration.
As a single sweep might take a while, we should check the flag before computing each stage.
2024-07-19 15:46:12 +02:00
Captain Yoshi
cd28bdcd1f
Fix early planning preemption (#597)
Calling preempt() before plan() is able to reset the preempt_requested_ flag causes the preemption request to get lost. To avoid this issue, we allow a) manual resetting of the request and b) reset the request before leaving plan().
2024-07-17 14:56:01 +02:00
Paul Gesel
60ccd74443
MoveRelative: fix segfault on empty trajectory (#595)
Check that at least one robot state exists in the robot trajectory before accessing it.

Signed-off-by: Paul Gesel <paul.gesel@picknik.ai>
2024-07-16 17:18:16 +02:00
Robert Haschke
2e9a223827
MoveRelative: handle equal min/max distance (#593)
When min_distance == max_distance > 0.0, the minimal distance might be missed due to numerical errors.
To avoid this, deactivate the minimal distance check and run the full distance as given by max_distance.
2024-07-16 08:24:55 +02:00
Robert Haschke
6d376fb8b9 Connect: Relax validity check of reached end state 2024-07-12 06:31:33 +02:00
Robert Haschke
fbc05e4496
Add property to enable/disable pruning at runtime (#590) 2024-07-06 16:51:14 +02:00
Robert Haschke
907014cd57 Disable pruning by default 2024-07-04 12:05:31 +02:00
Robert Haschke
42a08d6444 PassThrough: cleanup unused headers 2024-07-04 11:57:31 +02:00
Robert Haschke
a84479cc58 Avoid segfault if TimeParameterization is not set 2024-07-03 09:32:30 +02:00
Robert Haschke
b1336dc210 CartesianPath: allow ik_frame definition
... if start and end are given as joint-space poses
2024-06-29 18:02:05 +02:00
Robert Haschke
177e19de1f Generalize utils::getRobotTipForFrame()
... to return error_msg instead of calling markAsFailure() on a solution
2024-06-29 17:55:45 +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
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
9c05305eff ModifyPlanningScene: check state for collisions 2024-05-24 10:49:14 +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
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
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
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
Robert Haschke
647f3ec413 Limit time to wait for execute_task_solution action server 2023-09-18 10:35:23 +02:00