This module handles the ROS interfaces for client resources managed by a scheduler for the Robotics in Concert (ROCON) project.

It wraps the resource_pool classes, adding ROS topic and service interfaces to its basic resource pool allocation and release. Derived classes may override those interfaces with different resource allocation policies.



class concert_resource_pool.scheduler_clients.SchedulerResource(msg)[source]

Scheduler clients interface.

Parameters:msg (concert_msgs/ConcertClient) – ROCON resource description message.

Provides all attributes defined for the base pool_resource class, plus these:

rapp_handler = None

Handler for starting and stopping rapps on this resource.


Release this resource and stop any running rapps.

Parameters:request_id (uuid.UUID or None) – Optional owning request.
Raises:ResourceNotOwnedError if request_id is specified and is not the owner.
Raises:FailedToStopRappError if the associated client rapp does stop when requested.
class concert_resource_pool.scheduler_clients.SchedulerClients(lock=None, resource_pool=<class 'concert_resource_pool.resource_pool.ResourcePool'>, pool_resource=<class 'concert_resource_pool.scheduler_clients.SchedulerResource'>)[source]

Scheduler clients interface.

  • lock (threading.RLock()) – The big scheduler serialization lock, allocated internally, if None.
  • resource_pool – resource pool class to use, must provide a compatible ResourcePool interface.

Provides all attributes defined for the base resource_pool class, plus these:

lock = None

Big scheduler lock for serializing updates.


Update resource_pool topic, if anything changed.


Start rapps specified by the resources list.

Parameters:resources – List of scheduler_msgs/Resource messages.

Concert clients message callback.

Updates the resource pool based on client changes published by the concert conductor.

Uses the Big Scheduler Lock to serialize changes with operations done within the scheduler callback thread.

Previous topic


Next topic

Change history

This Page