View on GitHub

Node Manager Daemon

Helper node allows an easy launch file management and (auto)start of {remote}nodes

Download this project as a .zip file Download this project as a tar.gz file

The node_manager_daemon is an instance which allows the Node Manager a remote access to configuration files. Through the daemon the launch file can be edited, loaded and the containing nodes executed by Node Manager GUI. The needed nodes can be launched on demand without knowing the details of the configuration to run those. As configuration a ROS launch file is used. For advanced features like auto start or respawn the node configuration can be extended by adding further parameters.

The daemon instance is usually launched be Node Manager through SSH connection. After that the Node Manager communicates with daemon using gRPC.

Beside offering remote configuration access to Node Manager the daemon supports many other features, e.g. system monitoring, forwarding diagnostic messages or auto start/load of launchfiles.

While loading a launch file by the node_manager_daemon some addtional parameters are parsed to obtain a description of robots, nodes and capabilities configured by the launch file. This description is used in Node Manager to show additional information for nodes. The detailed description shows the usage of additional description.

Autostart

The node_manager_daemon node can be used to start ROS nodes delayed or on condition (a topic is available). It also offers additional parameter for respawn behavior. To enable the autostart the launchfiles should be appended though -a argument.
  <node name="node_manager_daemon" pkg="node_manager_daemon_fkie" type="node_manager_daemon" args="-a $(find node_manager_daemon_fkie)/launch/autostart.launch">
  </node>
Now all nodes in the loaded launch will be started. To modify the autostart behavior you must add the autostart parameter to the corresponding node. This is the list of supported parameter:

autostart/exclude
Excludes this node from autostart. [bool]

autostart/delay
Delays the start of the node in [seconds].

autostart/required/publisher
The node will be started after the publisher for this topic is available. [string]

respawn/max
Only if respawn is enabled. Respawns this maximal [int] times.

respawn/delay
Only if respawn is enabled. Wait [seconds] before respawn.

respawn/min_runtime
Only if respawn is enabled. If runtime of the is greater than [seconds] the counter for maximal respanws will be reseted.

The respawn parameter are used by Node Manager too!

Example:

<launch>
  <node name="rostopic_publisher" pkg="rostopic" type="rostopic" args="pub topic_name std_msgs/String 'Started' -r 1" clear_params="True">
    <param name="capability_group" value="autostart" />
    <param name="autostart/delay" value="5.0" />
  </node>

  <node name="rostopic_echo" pkg="rostopic" type="rostopic" args="echo topic_name" clear_params="True">
    <param name="capability_group" value="autostart" />
    <param name="autostart/delay" value="5.0" />
    <param name="autostart/required/publisher" value="topic_name" />
  </node>

  <node respawn="True" name="rostopic_respawn" pkg="rostopic" type="rostopic" args="what" clear_params="True">
    <param name="capability_group" value="autostart" />
    <param name="respawn/max" value="5" />
    <param name="respawn/min_runtime" value="60" />
    <param name="respawn/delay" value="2" />
  </node>
</launch>

back to main