Overview

The rocon_scheduler_requests ROS package provides Python interfaces for managing scheduler requests within the Robotics in Concert framework.

There is initially only an experimental Python module. A similar C++ interface will be provided following that proof of concept.

Because different systems require scheduling policies, the ROCON design allows for multiple scheduler implementations. This package supplies a common infrastructure for various schedulers to use.

Scheduler Topics

The ROCON scheduler runs as a ROS node on same master as the ROCON conductor, the rocon services and other Solution components. It subscribes to an allocation topic named /rocon_scheduler of type scheduler_msgs/SchedulerRequests. Any ROCON service or application sending messages to that topic is called a requester. Each requester assigns itself a universally unique identifier and subscribes to a feedback topic using the hexadecimal string representation of its UUID, in the form /rocon_scheduler_0123456789abcdef0123456789abcdef. The scheduler will provide status feedback on that topic via scheduler_msgs/SchedulerRequests messages.

Scheduler Resource Requests

Each scheduler_msgs/SchedulerRequests message describes all resources currently desired by that requester. The status of each resource request is passed back and forth between the requester and the scheduler via scheduler_msgs/Request elements contained in the allocation and feedback topics.

Handling these messages and managing the states of each resource request can be quite tricky, because state changes flow over the two topics simultaneously. So, both schedulers and requesters need to perform state transitions carefully and consistently for every request.

This package provides Python and C++ interface implementations for schedulers and requesters to perform those transitions correctly.

Table Of Contents

Previous topic

ROCON scheduler request manager

Next topic

rocon_scheduler_requests

This Page