Open rhaschke opened 2 years ago
Any updates on this feature? As I understand, this would greatly reduce the planning time as it allows parallel planning in different threads, right?
We are very interested in this feature as our planning time is already too long for our application. The main solution we have found is to precompute the task offline, as mentioned here, but sometimes it is necessary to do it in real time.
Are there any plans to implement it in the near future?
Unfortunately, we didn't have time to start working on this and I don't foresee any change of that situation. However, you are highly welcome to contribute to the project.
This ZenHub epic is used to collect ideas and (later) concrete TODOs for a rework of scheduling. The current "round-robin" scheduling, requires hierarchically calling
canCompute()
andcompute()
and the whole pipeline.Main goals
Proposal
canCompute()
. To this end, it's API would be augmented by a reference to the job queue.boost::signals2
instead, which will be set up once during init(), setting up all signal-slot connections.canCompute(bool)
.ComputeIK
.canCompute(false)
.This approach will render the existingAs outlined in https://github.com/ros-planning/moveit_task_constructor/issues/314, these methods are still needed to judge - by the container - whether a child should become inactive or not: We need to distinguish between temporarily inactive (i.e. child cannot compute) and exhausted (cannot compute + feeding stages are exhausted too.canCompute
andonNewFailure
methods superfluous.priorityUpdated(Priority)
to allow ordering of queued jobs by (state) priority.Prioritization / Scheduler variants