rmf_task repository

Repository Summary

Checkout URI https://github.com/open-rmf/rmf_task.git
VCS Type git
VCS Version humble
Last Updated 2024-03-04
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rmf_task 2.1.8
rmf_task_sequence 2.1.8

README

rmf_task

codecov

Overview

The rmf_task repository contains two packages, rmf_task and rmf_task_sequence.

rmf_task

Provides APIs and base classes for defining and managing Tasks in RMF. * rmf_task::Task is a pure abstract interface for an executable Task. What this task represents, how it can be modelled and finally executed are left for the user to implement. To aid such implementations, the following classes are available: * Active: A pure abstract interface to manage the runtime execution of a Task. * Booking: Stores basic information about the task. * Description: An abstract interface to define the specifics of a task which when implemented help differentiate different tasks from one another. * Model: A pure abstract interface to compute the Estimate state of the robot after the task is completed along with an invariant_duration which is the time component of the task that does not change regardless of where the robot starts. * Tag: Static information about the task. * rmf_task::TaskPlanner: API which solves the problem of optimal allocation of tasks among available robots. For a given collection of tasks and robots belonging to a fleet (ie, they share physical and kinematic traits), the planner determines the best ordering of tasks across robots such that tasks are completed in the shortest durations given their requested start times. It does this while also accounting for resource constraints of the robots such as battery level and automatically injects recharging tasks in the robot’s task itinerary when needed. Here tasks are represented by Requests which are made up of Booking and Description elements respectively.

rmf_task_sequence

Provides an out-of-the-box implementation of rmf_task. * rmf_task_sequence::Task, which assumes a task to be composed of a sequence of phases that need to be executed in-order for the task to be completed. A phase inturn may be composed of a set of Events. * The following events that are presently available (contributions are welcome): * Bundle * DropOff * GoToPlace * PerformAction * PickUp * Placeholder * WaitFor * See Usage for information on how composed tasks are integrated with the rest of Open-RMF.

Full API documentation:

Usage

  • rmf_task_sequence contains implementations of the models for the out of the box events and phases. The implementations of how to command the actual robot to perform these events, ie, the Active components, are defined in rmf_fleet_adapter These flexible task definitions are conveyed via json payloads whose schemas are defined in rmf_api_msgs. The schemas for the “description” field are provided in rmf_fleet_adapter here. The fleet adapter currently only supports tasks that are defined as a sequence of phases as defined in rmf_task_sequence. It can very easily be extended to support other user implemented task definitions.
  • Users can specify how the robot should react when a task is canceled or interrupted at any given phase. Each phase can have its own unique response and can be described here See Examples below on how to submit tasks to RMF. These tasks can either be directly assigned to a specific robot or have RMF determine the optimal allocation based on its multi-fleet task allocation framework. This is described in greater detail here

Note: When stringing together activities (same as events) in a compose task description (same as flexible task), users need to populate a category and description for each activity. The schemas for various descriptions are provided here. See event_description__X where X is the name of the event. Then, care must be taken to ensure the category is populated with this same X.

Examples

Examples of constructing and submitting custom tasks is provided in the rmf_demos repository https://github.com/open-rmf/rmf_demos/tree/main/rmf_demos_tasks

ROSCon Presentations with more information

  • ROSCon2022: How custom tasks are defined, assigned, and executed in Open-RMF

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/open-rmf/rmf_task.git
VCS Type git
VCS Version iron
Last Updated 2024-03-04
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rmf_task 2.2.4
rmf_task_sequence 2.2.4

README

rmf_task

codecov

Overview

The rmf_task repository contains two packages, rmf_task and rmf_task_sequence.

rmf_task

Provides APIs and base classes for defining and managing Tasks in RMF. * rmf_task::Task is a pure abstract interface for an executable Task. What this task represents, how it can be modelled and finally executed are left for the user to implement. To aid such implementations, the following classes are available: * Active: A pure abstract interface to manage the runtime execution of a Task. * Booking: Stores basic information about the task. * Description: An abstract interface to define the specifics of a task which when implemented help differentiate different tasks from one another. * Model: A pure abstract interface to compute the Estimate state of the robot after the task is completed along with an invariant_duration which is the time component of the task that does not change regardless of where the robot starts. * Tag: Static information about the task. * rmf_task::TaskPlanner: API which solves the problem of optimal allocation of tasks among available robots. For a given collection of tasks and robots belonging to a fleet (ie, they share physical and kinematic traits), the planner determines the best ordering of tasks across robots such that tasks are completed in the shortest durations given their requested start times. It does this while also accounting for resource constraints of the robots such as battery level and automatically injects recharging tasks in the robot’s task itinerary when needed. Here tasks are represented by Requests which are made up of Booking and Description elements respectively.

rmf_task_sequence

Provides an out-of-the-box implementation of rmf_task. * rmf_task_sequence::Task, which assumes a task to be composed of a sequence of phases that need to be executed in-order for the task to be completed. A phase inturn may be composed of a set of Events. * The following events that are presently available (contributions are welcome): * Bundle * DropOff * GoToPlace * PerformAction * PickUp * Placeholder * WaitFor * See Usage for information on how composed tasks are integrated with the rest of Open-RMF.

Full API documentation:

Usage

  • rmf_task_sequence contains implementations of the models for the out of the box events and phases. The implementations of how to command the actual robot to perform these events, ie, the Active components, are defined in rmf_fleet_adapter These flexible task definitions are conveyed via json payloads whose schemas are defined in rmf_api_msgs. The schemas for the “description” field are provided in rmf_fleet_adapter here. The fleet adapter currently only supports tasks that are defined as a sequence of phases as defined in rmf_task_sequence. It can very easily be extended to support other user implemented task definitions.
  • Users can specify how the robot should react when a task is canceled or interrupted at any given phase. Each phase can have its own unique response and can be described here See Examples below on how to submit tasks to RMF. These tasks can either be directly assigned to a specific robot or have RMF determine the optimal allocation based on its multi-fleet task allocation framework. This is described in greater detail here

Note: When stringing together activities (same as events) in a compose task description (same as flexible task), users need to populate a category and description for each activity. The schemas for various descriptions are provided here. See event_description__X where X is the name of the event. Then, care must be taken to ensure the category is populated with this same X.

Examples

Examples of constructing and submitting custom tasks is provided in the rmf_demos repository https://github.com/open-rmf/rmf_demos/tree/main/rmf_demos_tasks

ROSCon Presentations with more information

  • ROSCon2022: How custom tasks are defined, assigned, and executed in Open-RMF

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/open-rmf/rmf_task.git
VCS Type git
VCS Version main
Last Updated 2024-03-19
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rmf_task 2.4.0
rmf_task_sequence 2.4.0

README

rmf_task

codecov

Overview

The rmf_task repository contains two packages, rmf_task and rmf_task_sequence.

rmf_task

Provides APIs and base classes for defining and managing Tasks in RMF. * rmf_task::Task is a pure abstract interface for an executable Task. What this task represents, how it can be modelled and finally executed are left for the user to implement. To aid such implementations, the following classes are available: * Active: A pure abstract interface to manage the runtime execution of a Task. * Booking: Stores basic information about the task. * Description: An abstract interface to define the specifics of a task which when implemented help differentiate different tasks from one another. * Model: A pure abstract interface to compute the Estimate state of the robot after the task is completed along with an invariant_duration which is the time component of the task that does not change regardless of where the robot starts. * Tag: Static information about the task. * rmf_task::TaskPlanner: API which solves the problem of optimal allocation of tasks among available robots. For a given collection of tasks and robots belonging to a fleet (ie, they share physical and kinematic traits), the planner determines the best ordering of tasks across robots such that tasks are completed in the shortest durations given their requested start times. It does this while also accounting for resource constraints of the robots such as battery level and automatically injects recharging tasks in the robot’s task itinerary when needed. Here tasks are represented by Requests which are made up of Booking and Description elements respectively.

rmf_task_sequence

Provides an out-of-the-box implementation of rmf_task. * rmf_task_sequence::Task, which assumes a task to be composed of a sequence of phases that need to be executed in-order for the task to be completed. A phase inturn may be composed of a set of Events. * The following events that are presently available (contributions are welcome): * Bundle * DropOff * GoToPlace * PerformAction * PickUp * Placeholder * WaitFor * See Usage for information on how composed tasks are integrated with the rest of Open-RMF.

Full API documentation:

Usage

  • rmf_task_sequence contains implementations of the models for the out of the box events and phases. The implementations of how to command the actual robot to perform these events, ie, the Active components, are defined in rmf_fleet_adapter These flexible task definitions are conveyed via json payloads whose schemas are defined in rmf_api_msgs. The schemas for the “description” field are provided in rmf_fleet_adapter here. The fleet adapter currently only supports tasks that are defined as a sequence of phases as defined in rmf_task_sequence. It can very easily be extended to support other user implemented task definitions.
  • Users can specify how the robot should react when a task is canceled or interrupted at any given phase. Each phase can have its own unique response and can be described here See Examples below on how to submit tasks to RMF. These tasks can either be directly assigned to a specific robot or have RMF determine the optimal allocation based on its multi-fleet task allocation framework. This is described in greater detail here

Note: When stringing together activities (same as events) in a compose task description (same as flexible task), users need to populate a category and description for each activity. The schemas for various descriptions are provided here. See event_description__X where X is the name of the event. Then, care must be taken to ensure the category is populated with this same X.

Examples

Examples of constructing and submitting custom tasks is provided in the rmf_demos repository https://github.com/open-rmf/rmf_demos/tree/main/rmf_demos_tasks

ROSCon Presentations with more information

  • ROSCon2022: How custom tasks are defined, assigned, and executed in Open-RMF

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/open-rmf/rmf_task.git
VCS Type git
VCS Version galactic
Last Updated 2021-09-01
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rmf_task 1.0.0

README

rmf_task

codecov

The rmf_task package provides: * Factories for creating various tasks supported in RMF (rmf_tasks::requests::TASK) * A library for optimally allocating n tasks across m participants (rmf_task::agv::TaskPlanner).

More information on the supported tasks and task management in RMF can be found here

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/open-rmf/rmf_task.git
VCS Type git
VCS Version foxy
Last Updated 2021-09-01
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rmf_task 1.0.0

README

rmf_task

codecov

The rmf_task package provides: * Factories for creating various tasks supported in RMF (rmf_tasks::requests::TASK) * A library for optimally allocating n tasks across m participants (rmf_task::agv::TaskPlanner).

More information on the supported tasks and task management in RMF can be found here

CONTRIBUTING

No CONTRIBUTING.md found.