ROSspawn allows to start, stop, and monitor ROS nodes remotely. Opposed to roslaunch it does not read files with configurations to load, but rather it exposes services and topics to inform about available ROS nodes (i.e. binaries in appropriate folders) which can then be started and stopped.
- Author: Tim Niemueller
- License: GPLv2+
- Source: git http://github.com/timn/rosspawn.git (branch: None)
This ROS package provides a node that can start and stop other nodes. It is intended to be instructed from another node to launch specific nodes, for example by rosspawn_gui.
rosspawn does not try to be another roslaunch. Rather it is meant to provide tools for a different use case. During development, nodes are started and stopped frequently while people are working on the node. With roslaunch, this often means either starting and stopping larger ensembles, or getting a hold on the controlling machine's terminal for a specific node. rosspawn launches the nodes by itself, usually instructed by its companion application rosspawn_gui from any of the developer's machine. It resembles the way Fawkes plugins are loaded and unloaded. While nodes are running, they are monitored by rosspawn and status changes are announced. Other developers see if a node has been stopped by someone else.
rosspawn is mostly a proof of concept at this stage. It lacks some important features in comparison to roslaunch:
- It makes the assumption of a static configuration, i.e. parameters cannot be set and must be set by other means at least once until the parameter server is restarted
- It requires node binaries with user readable names, currently no description can be provided
- The code is POSIX (and possibly Linux) specific. It most likely will not work on other operating systems.
- Nodes are currently not automatically respawned if they die in error.
Since the number of binaries grows big very fast, rosspawn allows to create a module file which contains the names of the modules which should be announced by rosspawn.
This is a proof of concept implementation and probably not useful in its current state. Comments and patches welcome.
Run bin/rosspawn. Then run rosspawn_gui and click on any node name to get it started or stopped. Usually no modifications are necessary to the nodes. Nodes which are started without using rosspawn are currently not recognized.