Because different systems require different scheduling policies, the Robotics in Concert (ROCON) framework allows multiple scheduler implementations. The scheduler is a ROS node running on same master as the ROCON Conductor, services and other Solution components.
This concert_simple_scheduler ROS package implements a scheduler node in Python. It uses some infrastructure packages that other scheduler implementations can also use or modify.
This node provides a relatively simple fixed-priority scheduler which allocates resources within each priority on a first-come, first-served basis.
$ rosrun concert_simple_scheduler simple_scheduler
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 resource request states can be tricky, because state changes flow over the two topics simultaneously. Both schedulers and requesters should use the concert_scheduler_requests package to perform the appropriate state transitions for each request.