Managers multiple processors running on the ROS network completing a task.
The manager takes in a module that provides and processes the work items, it is oblivious of the ROS network. The module needs to provide the following functions:
# service side
def service_start(args):
# service side
def service_processrequest(request):
# server side
def server_processresponse(response):
# server side
def server_requestwork():
# server side
def server_start(args):
# server side
def server_end():
# launcher initialization
def launcher_start(args):
There are 3 modes when launching the worker: initial launch setup, server manager, service runner.
Bases: object
Bases: threading.Thread
feedbackfn is called once in a while inside the loop. If it returns True, then will shutdown the roslaunch process
wrapper class of collect_cpuinfo for threading.Thread
Bases: exceptions.Exception
cpuinfos returns the hosts and the information of cpu and memory. it also check if a port is available for roscore or not.
cpuinfos returns the tuple of (dict, boolean).
boolean indicates if the port specified by ros_port is available for roscore or not.
the keys of dict is hostname and the values of it is the list of the number of cpu, the total size of memory and the string of architecture.
TODO: user_test_commands is not supported yet.