[Documentation] [TitleIndex] [WordIndex


Working version of the scheduler code:

> mkdir ~/rocon
> cd ~/rocon
> wstool init -j4 src https://raw.github.com/robotics-in-concert/rocon/hydro-devel/rocon.rosinstall
> rosdep install --from-paths src /opt/ros/hydro --ignore-src --rosdistro hydro -y
> . /opt/ros/hydro/setup.bash
> catkin_make

Note that rosinstall file is using the robotics-in-concert fork of rocon_scheduler_requests. Replace that with the original if you need to do so.


The chatter concert example uses a rocon link graph service (similar to roslaunch, but for multiple robots). Link graph services are mostly static in their composition and require a pre-configured list of resources on service startup, e.g. 1 x talker, 3 x listener resources. It does provide some dynamism by allowing the requirements to vary between a minimum and maximum in runtime - e.g. 1 x talker, 2-4 x listener (which is exactly the composition requirements for the chatter concert).

To handle this dynamism, I have a draft resource pool requester and compatibility tree scheduler which are useful for testing various aspects of the scheduler_request module whilst at the same time supporting some of our tutorial rocon demos.

Resource Pool Requester

This requester automatically manages requests given a configuration such as that expressed above (a set of min-max resource requirements).

This requester is quite specific to this kind of service configuration.

Compatibility Tree Scheduler

Allocates resource combinations that best fit a request. e.g. don't apply dudette for resource A if it is the only resource that can satisfy resource B and there are others that can satisfy resource A.

This logic only applies to one request at a time though. It always attacks the highest priority request and if the highest priority request isn't satisfied and there are no other equal priority requests, it ignores the lower priority requests.

This could be a much more general component if worked on to apply it's logic over multiple requests at the same time.

Debugging Tools

Simple tool that continuously scans for any SchedulerRequests feedback topic and pretty prints scheduler replies. You might like to put this in your package Jack.

Chatter Concert

> rocon_launch chatter_concert chatter.concert --screen
# Launch more dudes in other shells (girls love talking/nagging to dudes)
> roslaunch -p 11315 chatter_concert dude.launch --screen
> roslaunch -p 11316 chatter_concert dude.launch --screen

Play around with ctrl-c'ing dudes and roslaunching dudes below and above the minimum. Running the rocon_scheduler_requests script helps keep a live tab on what is happening with the requests.


2022-11-26 12:59