Robert Haschke
046309d60a
Simplify rclcpp::Node creation
...
Directly pass node name and namespace instead of using options.
2024-05-08 10:19:28 +02:00
Robert Haschke
739375298a
Merge branch master into ros2
2024-03-09 13:34:36 +01:00
Robert Haschke
647f3ec413
Limit time to wait for execute_task_solution action server
2023-09-18 10:35:23 +02:00
Robert Haschke
349e3c6c6c
Merge branch master into ros2
2023-05-26 16:38:15 +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
d1a6916206
Stage::explainFailure() ( #445 )
...
... to facilitate spotting the stage causing a task to fail
2023-05-04 17:07:11 +02:00
Robert Haschke
b3d20cdcec
Merge branch 'master' into ros2
2023-01-05 16:54:41 +01:00
Robert Haschke
9924dfe25f
Merge branch master into ros2
2022-11-02 19:16:38 +01:00
Robert Haschke
4c9b16511b
Hopefully fix spurious test failure
2022-10-24 10:21:28 +02:00
Robert Haschke
3b438f9b1c
Merge ROS1 fixes
2022-06-15 16:44:38 +02:00
Jafar
e923fbc0c6
Fix Task's move constructor ( #371 )
...
* Add unit test
* Fix TaskPrivate's move assignment operator
* Slightly simplify code
Co-authored-by: Robert Haschke <rhaschke@techfak.uni-bielefeld.de>
2022-06-14 22:13:19 +02:00
JafarAbdi
11b81856d5
Merge d2918f130d
2022-05-26 21:58:24 +00:00
Robert Haschke
c7b2067b86
Merge PR #309 : Fix Pruning
2022-01-05 20:19:51 +01:00
Jafar Abdi
7dbe0b87e1
Return MoveItErrorCode from task::plan ( #319 )
...
... to know whether the plan failed due to timeout, preemption, or actual planning failure
2022-01-02 15:32:37 +01:00
JafarAbdi
f21c8ccd35
Port core to ROS2
2021-11-25 23:02:51 +03:00
Robert Haschke
e67b3252fc
static TaskPrivate::swap() -> ContainerBasePrivate::operator=()
...
- Enable moving/swapping of other container impls (e.g. Fallbacks)
- Clarify (via move semantics) that content of source impl will be lost
- Get rid of friend declarations
2021-11-24 21:17:49 +01:00
Michael Görner
36d9d3e8c0
Rework PipelinePlanner creation ( #249 )
...
- Moved Task::createPlanner into PipelinePlanner::create
- Handle mutiple planner pipeline configs as introduced in https://github.com/ros-planning/moveit/pull/2127
2021-03-29 12:00:28 +02:00
Robert Haschke
a6fa45214f
Remove return value from Container::insert
...
adapted Container::add
Logical consequence of removing the ROS_ERROR output in `setParent`
2021-02-24 12:22:38 +01:00
Robert Haschke
ae843a784e
Merge PR #214 (fix various issues) and #215 (rework rviz introspection)
2020-10-24 04:45:53 +02:00
Robert Haschke
b91d87c6eb
IntroSpection: indicateReset() on disable
2020-10-24 04:43:30 +02:00
Robert Haschke
b071a059f9
Rename TaskPrivate::id -> TaskPrivate::ns
...
TaskPrivate's id_ actually served as a namespace parameter.
2020-10-24 04:43:30 +02:00
Robert Haschke
cb0f20cad7
Improve task unittests
2020-10-24 03:22:46 +02:00
Jafar Abdi
be270cb574
Task: Add ability to set timeout ( #213 )
...
Task::setTimeout will allow setting an overall timeout.
2020-10-24 03:22:05 +02:00
Michael Görner
ee6c50ad31
Apply clang-format-10 ( #199 )
2020-08-20 11:56:53 +02:00
v4hn
6bebe3f3ed
do not mix pimpl() and impl for no reason
2020-08-11 20:43:34 +02:00
v4hn
7ba73306ca
introspection *can* be disabled
...
Otherwise a new task will always setup the publisher,
even if introspection is disabled afterwards.
It is a good idea to keep introspection on, but there should be a way to initialize the C++ classes without ROS communication.
2020-07-22 12:57:34 +02:00
v4hn
0aff5d56dd
replace remaining typedefs by using declaration
...
I have no idea why these were not picked up by clang-tidy.
2020-07-22 12:57:34 +02:00
Robert Haschke
ee7ebb3b96
SolutionMsg: always fill start_scene ( #175 )
...
So far, the start_scene field of a SolutionMsg was only filled by Introspection::fillSolution(),
but not yet by Task::execute().
Addendum(v4hn): The previous approach was actually reasonable too (although the scene should have been marked as `is_diff`) for solutions sent for execution, but keeping the full start_scene around can facilitate debugging from recorded data.
2020-06-18 11:07:05 +02:00
v4hn
15707673ed
clang-tidy: performance-*
...
I NOLINTed the noexcept move constructor for Task for now because
the constructor *can* indeed throw exceptions.
2020-06-11 11:03:50 +02:00
v4hn
8faba159f9
clang-tidy: llvm-namespace-comment
2020-06-11 11:03:50 +02:00
v4hn
b762079478
clang-tidy: readability-named-parameters
2020-06-11 11:03:50 +02:00
v4hn
36166348bc
clang-tidy: use using over typedef
...
$ run-clang-tidy.py -header-filter='.*' -checks='modernize-use-using' -fix
add .clang-tidy file
2020-06-11 11:03:50 +02:00
v4hn
ebf7b751d2
do not reset on plan
...
users can reset explicitly as needed.
Reset sends ROS messages and prevents { plan(1); plan(1) } style usage.
2020-06-11 11:03:50 +02:00
v4hn
b9839a3f22
check for valid robot model
...
Also, no need to reset() unless the model is different and not the first.
2020-06-11 11:03:50 +02:00
Robert Haschke
499fcfb04b
cleanup / renaming
...
* Rename pruneInterface() -> resolveInterface()
* Rename accepted (interface) -> expected
* Improve exception strings
2020-04-10 20:11:51 +02:00
Robert Haschke
e56c772ecb
Combine pruneInterface() + validateConnectivity()
...
Validate interfaces during resolution. No need to separately validate interfaces.
Thus, validateConnectivity() is removed from Task::init().
Functions are kept (but simplified) for unit testing.
2020-04-10 19:59:27 +02:00
v4hn
cc86dd8a74
rename Task::erase -> eraseTaskCallback
...
`erase` is too general for a container class,
when it's not actually about erasing children or the container itself.
2020-04-01 15:05:20 +02:00
v4hn
c046ec605d
streamline add/insert interfaces for Task/Container
...
`add` falls back to `insert` for both structures,
but `add` throws exceptions and does not provide a return value.
`insert` provides standard STL container access.
2020-04-01 15:05:20 +02:00
v4hn
df8a783239
enforce one-parent policy in StagePrivate
...
So new containers cannot get this wrong by accident.
2020-04-01 15:05:20 +02:00
v4hn
8f56d4ae79
avoid copy from const id reference
...
This mustn't compile as users got confused about it:
```
Task t;
t.id() = "foobar";
```
2020-03-05 12:08:59 +01:00
Markus Vieth
534d520a04
Add return value to Task::execute ( #136 )
2020-02-20 11:31:51 +01:00
Robert Haschke
463486257b
Merge #120 : Add computation timing
2020-02-06 16:18:49 +01:00
Jafar Abdi
aa11b66824
use runCompute()
2020-02-06 16:17:55 +01:00
Robert Haschke
ba815cff34
Task: don't publish solutions by default
...
Having multiple solutions, automatic publishing of intermediate solutions is confusing.
One never knows, which one is the final one. If desired, the user should setup a hook for this.
2020-01-11 09:00:34 +01:00
Henning Kayser
c1f6ca8e84
Expose SolutionCallback API in Task ( #121 )
2020-01-11 08:33:57 +01:00
Michael Görner
f7b259259e
Introduce clang-format ( #102 )
...
* fix catkin_lint issues
* introduce clang-format config and apply it
2019-07-18 11:04:35 +02:00
Robert Haschke
95455c2a26
fix Task::operator=(Task&&)
...
To move a task instance to another one, it's not sufficient to swap all task members,
but we also need to adapt all back pointers, i.e. me_ and parent_ pointers of children,
to point to the (swapped) task instances.
2019-06-04 14:20:47 +02:00
Robert Haschke
11fb15fd0c
fix clang-tidy warnings
...
- virtual functions used in constructor / destructor
- captured variable in lambda expression not used
- unhandled enums in switch
2019-05-03 01:53:17 +02:00
Robert Haschke
905b6a3b0c
move validateConnectivity() from ContainerBase to StagePrivate
...
... to allow specific stage types (PropagatingEitherWay) implementing their own validation
No need for a public interface.
2019-03-11 13:54:54 +01:00
Robert Haschke
71099c68d4
Task: fix RobotModelPtr leak
...
On Task::clear() also need to reset introspection's cache.
2019-02-09 01:00:29 +01:00