open-rmf/rmf_task

Generalized Task Planning

Yadunund opened this issue · 0 comments

Currently, the rmf_task::agv::TaskPlanner performs task allocation, ie, given a set of agents and requests, it optimally assigns the different requests across the agents such that a cost function is minimized while ensuring all agents has sufficient resources (battery, consumables) to perform the requests. The current planner also works assuming all the agents share similar mechanical and electrical traits along with other constraints and are all capable of performing the reqeusts. Hence, it is more suitable for planning within a fleet where all the robots in the fleet are similar.

This is not the same as task planning where a task is defined by series of actions that need to execute in a meaningful sequence while respecting constraints. For example, we may want to define a new task Clean to have an area of the floor be cleaned. We want to be able to define the expectation of Clean as having the floor vacuumed first, followed by mopped, then wait for 20 mins and finally disinfected. Each of the above processes (vacuuming, mopping, disinfecting) may need to be performed by a different agent. The task planner should then optimally assign each action to suitable agents such that battery/resource constraints are respected along with the goal of minimizng an overall cost.

A PDDL based planner may allow for such generalized task planning.