Show EOL distros: 

multimaster_fkie: default_cfg_fkie | master_discovery_fkie | master_sync_fkie | node_manager_fkie

Package Summary

Graphical interface, written in PySide, to manage the running and configured ROS nodes on different hosts. For discovering the running ROS master master_discovery node will be used.

  • Author: Alexander Tiderko, Timo Röhling
  • License: BSD, some icons are licensed under the GNU Lesser General Public License (LGPL) or Creative Commons Attribution-Noncommercial 3.0 License
  • Source: git https://github.com/fkie/multimaster_fkie.git (branch: master)
multimaster_fkie: default_cfg_fkie | master_discovery_fkie | master_sync_fkie | node_manager_fkie

multi_master_fkie: default_cfg_fkie | master_discovery_fkie | master_sync_fkie | node_manager_fkie

Package Summary

Graphical interface, written in PySide, to manage the running and configured ROS nodes on different hosts. For discovering the running ROS master master_discovery node will be used.

  • Author: Alexander Tiderko, Timo Roehling
  • License: BSD, some icons are licensed under the GNU Lesser General Public License (LGPL) or Creative Commons Attribution-Noncommercial 3.0 License
  • Source: git https://github.com/fkie/multimaster_fkie.git (branch: master)
multi_master_fkie: default_cfg_fkie | master_discovery_fkie | master_sync_fkie | node_manager_fkie

multimaster_fkie: default_cfg_fkie | master_discovery_fkie | master_sync_fkie | multimaster_msgs_fkie | node_manager_fkie

Package Summary

Graphical interface, written in PySide, to manage the running and configured ROS nodes on different hosts. For discovering the running ROS master master_discovery node will be used.

  • Maintainer status: maintained
  • Maintainer: Alexander Tiderko <alexander.tiderko AT gmail DOT com>
  • Author: Alexander Tiderko, Timo Roehling
  • License: BSD, some icons are licensed under the GNU Lesser General Public License (LGPL) or Creative Commons Attribution-Noncommercial 3.0 License
  • Source: git https://github.com/fkie/multimaster_fkie.git (branch: groovy-devel)
multimaster_fkie: default_cfg_fkie | master_discovery_fkie | master_sync_fkie | multimaster_msgs_fkie | node_manager_fkie

Package Summary

Graphical interface, written in PySide, to manage the running and configured ROS nodes on different hosts. For discovering the running ROS master master_discovery node will be used.

  • Maintainer status: maintained
  • Maintainer: Alexander Tiderko <alexander.tiderko AT gmail DOT com>
  • Author: Alexander Tiderko, Timo Roehling
  • License: BSD, some icons are licensed under the GNU Lesser General Public License (LGPL) or Creative Commons Attribution-Noncommercial 3.0 License
  • Source: git https://github.com/fkie/multimaster_fkie.git (branch: hydro-devel)
multimaster_fkie: default_cfg_fkie | master_discovery_fkie | master_sync_fkie | multimaster_msgs_fkie | node_manager_fkie

Package Summary

Graphical interface, written in PySide, to manage the running and configured ROS nodes on different hosts. For discovering the running ROS master master_discovery node will be used.

  • Maintainer status: maintained
  • Maintainer: Alexander Tiderko <alexander.tiderko AT gmail DOT com>
  • Author: Alexander Tiderko, Timo Roehling
  • License: BSD, some icons are licensed under the GNU Lesser General Public License (LGPL) or Creative Commons Attribution-Noncommercial 3.0 License
  • Source: git https://github.com/fkie/multimaster_fkie.git (branch: indigo-devel)
multimaster_fkie: default_cfg_fkie | master_discovery_fkie | master_sync_fkie | multimaster_msgs_fkie | node_manager_fkie

Package Summary

Graphical interface, written in PySide, to manage the running and configured ROS nodes on different hosts. For discovering the running ROS master master_discovery node will be used.

  • Maintainer status: maintained
  • Maintainer: Alexander Tiderko <alexander.tiderko AT gmail DOT com>
  • Author: Alexander Tiderko, Timo Roehling
  • License: BSD, some icons are licensed under the GNU Lesser General Public License (LGPL) or Creative Commons Attribution-Noncommercial 3.0 License
  • Source: git https://github.com/fkie/multimaster_fkie.git (branch: jade-devel)
multimaster_fkie: default_cfg_fkie | master_discovery_fkie | master_sync_fkie | multimaster_msgs_fkie | node_manager_fkie

Package Summary

Graphical interface, written in PySide, to manage the running and configured ROS nodes on different hosts. For discovering the running ROS master master_discovery node will be used.

  • Maintainer status: developed
  • Maintainer: Alexander Tiderko <alexander.tiderko AT gmail DOT com>
  • Author: Alexander Tiderko, Timo Roehling
  • License: BSD, some icons are licensed under the GNU Lesser General Public License (LGPL) or Creative Commons Attribution-Noncommercial 3.0 License
  • Source: git https://github.com/fkie/multimaster_fkie.git (branch: kinetic-devel)
multimaster_fkie: default_cfg_fkie | master_discovery_fkie | master_sync_fkie | multimaster_msgs_fkie | node_manager_fkie

Package Summary

Graphical interface, written in PySide, to manage the running and configured ROS nodes on different hosts. For discovering the running ROS master master_discovery node will be used.

  • Maintainer status: maintained
  • Maintainer: Alexander Tiderko <alexander.tiderko AT gmail DOT com>
  • Author: Alexander Tiderko, Timo Roehling
  • License: BSD, some icons are licensed under the GNU Lesser General Public License (LGPL) or Creative Commons Attribution-Noncommercial 3.0 License
  • Source: git https://github.com/fkie/multimaster_fkie.git (branch: melodic-devel)

Node Manager Manual on GitHub

cheatsheet (with thanks to Lorenz Halt!)

Overview

This package offers a graphical user interface (GUI) to manage ROS nodes, topics, services, parameters, and launch files in a ROS network. Combined with other tools of the multimaster_fkie stack it is possible to operate a network with multiple masters.

node_manager_overview.png

Usage

ROS Network

The ROS Network docking widget shows all discovered ROS masters. In order to detect other ROS masters, a special node (master_discovery) must be run. Otherwise, only the local ROS master will be shown.

ros_network_g.png

You can initiate the discovery process with the Start button on the ROS Network widget. The discovery node can also be started on a remote host. Click on the Start button and enter the hostname or IP address in the dialog below.

dialog_start_discovery.png

Additionally, you can enter a network number (0..99) to create your own multi robot network. Thus you avoid the redundant synchronization to non-participant robots. The roscore will be run automatically via SSH if it is not currently available.

(!) If no multicast communication is available use the run dialog in host description panel to run master_discovery and sets the static hosts parameter to the list of availabele hosts separated by comma. This also increases the network load!

The Refresh button lets you query the current state of the ROS masters from all running master_discovery nodes.

The icons stock_connect.png and stock_disconnect.png show whether a connection to the host exists. The color of the stock_connect.png icon indicates the connection quality as determined by the master_discovery node.

The icon_sync.png next to each host name indicates whether the parameter servers will be synchronized by the master_sync node. You can toggle ROS master synchronization by click on this icon. A synchronisation dialog with additional options is available by button_sync.png button on the host description panel.

/!\ The multimaster capabilities are disabled, if the local ROS_MASTER_URI is referenced to a remote host.

Host description panel

The host description panel displays the name and the time of the last update for the currently selected host. If the node manager finds a PNG image in node_manager_fkie/images with the same name as the host, it is used as icon. The icon can be also changed by double click on it or by setting the ROS parameter /robot_icon to an image file.

host_descr_panel.png

The host description panel contains additional buttons to update the state of the host or run ROS tools:

button_username.png

for remote hosts the usename can be changed. This box is only visible for remote hosts.

button_refresh.png

requests the current state of the ROS master.

button_run.png

opens a dialog to run a ROS node without a configuration. This node is launched in a dedicated terminal session using the screen tool, so you can monitor its output if necessary.

button_logconsole.png

runs the rqt_console which is connected to the ROS master on the selected host.

button_graph.png

runs the rqt_graph which is connected to the ROS master on the selected host.

button_sync.png

enables or disables the ROS Master synchronization on the selected host using synchronisation dialog with additional options. For full list of synchronization options see master_sync. dialog_sync.png

button_usesimtime.png

This symbol is only visible, if /use_sim_time parameter is set to True.

ROS Nodes view and control

The Nodes tab lists all nodes which are either running or available for launch in the current configuration. Running nodes have a green icon state_run.png. They are monitored using their process ID, which is updated by the local master_discovery node. You have to run a master_discovery node on each host to ensure that information about all nodes is available in the network. If a node is registered with the master but has no associated process ID, the node is considered crashed and marked with crystal_clear_warning.png. Note that only local nodes are pinged. Nodes which are running not at the same host with ROS Master are marked by state_unknown.png. Crashes of these nodes cannot be detected.

nodes_view_g.png

As of now, the only reliable way to detect running nodes is by their registered topics and services. Thus, if a node has neither, it will never be shown as running.

In order to launch nodes, a configuration must be loaded. You can open roslaunch files. Nodes which are backed by a local configuration in this manner are marked with crystal_clear_launch_file.png. If a node with the same name is listed in multiple launch files, you have choose one configuration when you launch the node.

Alternatively, you can use the default_cfg node to serve launch files to the local network. Nodes which are available through this mechanism are marked with default_cfg.png. Different configurations are symbolized by crystal_clear_launch_file_def_cfg.png icon.

Nodes control buttons:

deleket_deviantart_play.png

Launches the selected nodes unless they are already running. Crashed crystal_clear_warning.png nodes are restarted. A popup menu lets you start the node on another host or force the node restart.

deleket_deviantart_stop.png

Terminates the selected nodes using the shutdown method of the Slave API. If you keep the button depressed, a popup menu lets you send a SIGKILL signal to the node process or force the master to unregister the services and topics. The latter is useful if the node died without a proper shutdown.

crystal_clear_show_io.png

Shows a console with terminal session of the selected node. If you keep the button depressed, a popup menu lets you kill the screen program that provides the terminal session, most likely killing the node in the process.

crystal_clear_show_log.png

Shows the log files of the selected nodes. Usually there are two files for each node. One is the ROS log file and the other one contains the output of the terminal session. The log files are not overwritten if the node is stopped and restarted.

crystal_clear_show_delete_log.png

Deletes the log files.

crystal_clear_dyncfg.png

Runs the dynamic reconfigure GUI for a node.

default_cfg_edit.png

Edit values on the ROS Parameter Server of selected node. The dialog fields store a history of the entered data. To delete a stored entry, setect this entry and then press Shift+Delete. Additional, values of the parameter dialog can be stored or loaded from a file in YAML format. dialog_param.png

crystal_clear_edit_launch.png

Opens the Launch File Editor.

save.png

Save multiple loaded launch files to one. There is no sanity check!

crystal_clear_button_close.png

Unloads the configuration file(s).

ROS Topics view

The Topics tab shows all in ROS master registered subscriber and publisher. The count of these is shown in Publisher and Subscriber columns. The type of the ROS topic is also displayed. To get more information to the topic you can wait for a tooltip or use Description Dock.

topics_view.png

You can search for a topic respectively his type using the filter row at the top.

Topic control buttons:

crystal_clear_show_io.png

Subscribes the topic and shows his output in a dialog topic_output_g.png

crystal_clear_show_io_hz.png

Subscribes the topic and shows only Hz of received messages

deleket_deviantart_play.png

Start publishing a message to selected topic. (Only available on local ROS Master. Use master_sync to publish to remote topics!)

deleket_deviantart_stop.png

Stops own publishing to selected topic.

ROS Services view

The Services tab shows all in ROS master registered services. The type of the ROS service is also displayed. To get more information to the service you can wait for a tooltip or use Description Dock.

services_view.png

You can search for a service respectively his type using the filter row at the top.

Service control buttons:

deleket_deviantart_play.png

Call the selected service. If the service require request input, a generated input dialog will be shown. The result of the service call is shown as a dialog: service_responce.png

ROS Parameter view

The Parameter tab shows all in ROS parameter server registered parameter. The value of the ROS parameter is also displayed. The parameter are not automatically requested or updated. Use get parameter button to load the parameter from ROS parameter server.

parameter_view.png

You can search for a parameter respectively his value using the filter row at the top.

Parameter control buttons:

crystal_clear_action_db_update.png

Loads parameter from ROS Parameter Server.

crystal_clear_action_db_add.png

Adds a parameter to the ROS Parameter Server.

crystal_clear_action_db_remove.png

Deletes parameter from ROS Parameter Server.

Launch Dock

The Launch Dock can be used to find and load or edit the launch files. The root contains the paths defined by ROS_PACKAGE_PATH environment variable. In addition, all subfolders are skipped, do not contain the *.launch files. On load, the launch file itself and all included files are added to QFileSystemWatcher. If one of this files will be changed, you will prompt to reload the launch file. In the root also will be shown a history of last five loaded launch files. When needed, the selected history files can be removed by pressing the Delete button.

launch_dock_g.png

Launch control buttons:

deleket_deviantart_refresh.png

Refresh the current path.

crystal_clear_edit_launch.png

Opens the launch file in a Launch Editor.

crystal_clear_launch_file_new.png

Creates a new launch file.

crystal_clear_launch_file_transfer.png

Copies the selected file to a remote hosts. Optionally, the included files are copied, too.

crystal_clear_launch_file_32.png

Loads the launch file and show the content on the selected host.

default_cfg_32.png

Loads the file as Default configuration on a selected host. /!\ If the selected host is a remote host, then the content of remote launch file will be load.

crystal_clear_folder.png

Loads a launch file selected by open dialog.

Launch Editor

Launch Editor is a simple text editor with roslaunch XML syntax highlighting.

launch_editor.png

In addition, the included files are open in a new tab by Ctrl+(left mouse click). If the file does not exists, it will be created. Of course, only if it is desired. You can also search in included file using the find dialog:

launch_editor_find.png

Double click on the file in the find dialog opens the file.

Description Dock

The Description Dock shows additional informations about selected nodes, topics or services.

description_dock.png description_dock_velodyne.png

Capabilities and additional description

Since the Node Manager tries to improve the overview and control of available ROS nodes on a roboter we added some parameter to allow grouping nodes to capabilities. The capability_group parameter adds a node to a specified group:

  <node name="node_manager" pkg="node_manager_fkie" type="nm" >
    <param name="capability_group" value="Management"/>
  </node>

It is possible to add a node to multiple groups using a prefix for capability_group, e.g.:

  <node name="node_manager" pkg="node_manager_fkie" type="nm" >
    <param name="capability_group" value="Management"/>
    <param name="1.capability_group" value="Node Manager"/>
  </node>

The description of a capability group is stored in a global capabilities parameter. This parameter is defined as rosparam and contains the list with all groups and their description. To describe a group adds a list with group name, group type, image and description. image is a relative path to node_manager_fkie package. The description can be coded as reStructeredText and contains also image references relative to node_manager_fkie package path. Since after loading the XML the new line separators are removed, you must enter \n to insert a new line.

   <rosparam param="capabilities">
      [
        ["Management",
         "core",
         "images/crystal_clear_app_network2.png",
         "The ``management`` group provides nodes needed to detect and synchronize
          other robots in the ROS network. These are:\n\n- Node Manager\n- Master
          Discovery\n- Master Synchronization"
        ]
      ]

    </rosparam>

The capability group do not change the namespace of the included ROS nodes.

capability_nodes.png

Further parameter robots describes in same manner the roboter. The list must contains host name, robot type, displayed name, image and description:

  <rosparam param="robots">
    [
      ["tiderko",
       "Workstation",
       "tiderko",
       "images/veryicon_devcom_workstation.png",
       "Workstation\n\n|ws|\n\n.. |ws| image::
        images/veryicon_devcom_workstation.png\n"
      ]
    ]
  </rosparam>

This description will also shown in Description Dock and tooltip.

Default Configuration

The default configuration of a robot is represented by default_cfg node. This node loads a launch file and offers services to run contained nodes. It also offers the additional capabilities description extraceted from the launch file. If a new host is discovered or the ROS Master state is changed, the Node Manager searches for node, which offers default configuration by parsing the service names for list_nodes. The nodes provided by default_cfg are added to the Nodes View with default_cfg.png icon in the Cfgs column. This nodes can be launched without loading a configuration.

Furthermore based on detected capabilities the Capability View will be created.

/!\ The nodes with remote machine tag are ignored.

Capability View

The Capability View shows tabularly the detected robots and their capabilities. The view is created based on the running default configurations of corresponding robots. Each available capability provides buttons to start or stop these.

capability_view.png

Click on the header to show the description in Description Dock.

Getting started

Although the node is written in Python we need to run rosmake to generate message and service types:

rosmake master_discovery_fkie default_cfg_fkie

Run the node:

rosrun node_manager_fkie nm

Interface

The services of master_discovery_fkie and default_cfg_fkie are detected automatically by whose names.

Subscribed Topics

changes (master_discovery_fkie/MasterState)
  • Subscribes to this topic to get the changes in the ROS network. /!\ The name of the topic will be detect automatically by type. All found fopics are subscribed.
linkstats (master_discovery_fkie/LinkStatesStamped)
  • Subscribes this topic to get the link quality informations to other ROS master. /!\ The name of the topic will be detect automatically by type. All found fopics are subscribed.

Key Bindings

Ctrl+R

Opens a dialog to launch a master_discovery node on entered host.

Ctrl+E, F4

Opens an XML Editor for selected launch file.

Ctrl+L

Loads the selected launch file into selected host.

Ctrl+O

Runs on selected host default_cfg node with selected launch file as parameter.

Ctrl+S

Runs a synchronization dialog.

Alt+N

Opens a dialog to run a ROS node without a configuration. This node will be launched in a SCREEN.

Alt+K

Runs the rxconsole connected to the ROS master of selected host.

Alt+G

Runs the rxgraph connected to the ROS master of selected host.

Alt+R

Runs selected nodes. Ignores already running nodes.

Alt+S

Stops selected nodes. If more then one node is selected, nodes ending with rosout, node_manager, master_discovery, master_sync or default_cfg are ignored.

Ctrl+Backspace

Sends a SIGKILL to selected nodes. If more then one node is selected, nodes ending with rosout, node_manager, master_discovery, master_sync and default_cfg are ignored.

Ctrl+Delete

Unregister selected nodes (their topics and services) from ROS master. If more then one node is selected, nodes ending with rosout, node_manager, master_discovery, master_sync and default_cfg are ignored.

Shift+Backspace

Sends a SIGKILL to assigned SCREEN of selected nodes.

Shift+S

Shows all available SCREEN's which contains the ROS nodes launched by node manager.

Ctrl+F4

Closes the loaded configurations.

Alt+E

Expands all groups in Nodes tab.

Alt+C

Collapses all groups in Nodes tab.

Alt+{1..5}

Selects all nodes of the {first...fifth} host in Nodes tab excepting the manage nodes.

Delete

[Launch-Dock] Removes the selected history file from view in the root.

Ctrl+X

Copies the alternative values to clipboard. On Node view this is PID. On Topic and Service view it is the type. On Parameter view it is the parameter value.

Ctrl+7

Comment/Uncomment selected lines in Launch Editor

Overview

This package offers a graphical user interface (GUI) to manage ROS nodes, topics, services, parameters, and launch files in a ROS network. Combined with other tools of the multimaster_fkie stack it is possible to operate a network with multiple masters.

node_manager.png

Usage

ROS Network

The ROS Network docking widget shows all discovered ROS masters. In order to detect other ROS masters, a special node (master_discovery) must be run. Otherwise, only the local ROS master will be shown.

ros_network.png

You can initiate the discovery process with the Start button on the ROS Network widget. The discovery node can also be started on a remote host. Click on the Start button and enter the hostname or IP address. Additionally, you can enter a network number (0..99) separeted by : to create your own multi robot network. Thus you avoid the redundant synchronization to non-participant robots. The roscore will be run automatically via SSH if it is not currently available. The Refresh button lets you query the current state of the ROS masters from all running master_discovery nodes.

The icons stock_connect.png and stock_disconnect.png show whether a connection to the host exists. The color of the stock_connect.png icon indicates the connection quality as determined by the master_discovery node.

The checkbox next to each host name indicates whether the parameter servers will be synchronized by the master_sync node. You can toggle ROS master synchronization with the sync_button.png button on the host description panel.

/!\ The multimaster capabilities are disabled, if the local ROS_MASTER_URI is referenced to a remote host.

Host description panel

The host description panel displays the name and the time of the last update for the currently selected host. If the node manager finds a PNG image in node_manager_fkie/images with the same name as the host, it is used as icon.

host_descr_panel.png

The host description panel contains additional buttons to update the state of the host or run ROS tools:

refresh_button.png

requests the current state of the ROS master.

run_button.png

opens a dialog to run a ROS node without a configuration. This node is launched in a dedicated terminal session using the screen tool, so you can monitor its output if necessary.

rxconsole_button.png

runs the rxconsole which is connected to the ROS master on the selected host.

rxgraph_button.png

runs the rxgraph which is connected to the ROS master on the selected host.

sync_button.png

enables or disables the ROS Master synchronization on the selected host. In addition, a synchronization interface can be selected via the menu.

ROS Nodes view and control

The Nodes tab lists all nodes which are either running or available for launch in the current configuration. Running nodes have a green icon state_run.png. They are monitored using their process ID, which is updated by the local master_discovery node. You have to run a master_discovery node on each host to ensure that information about all nodes is available in the network. If a node is registered with the master but has no associated process ID, the node is considered crashed and marked with crystal_clear_warning.png. Note that without a master_discovery node on the same host, crashes cannot be detected and nodes will remain listed as running.

nodes_view.png

As of now, the only reliable way to detect running nodes is by their registered topics and services. Thus, if a node has neither, it will never be shown as running (see /empty_world_server in the screenshot as example).

In order to launch nodes, a configuration must be loaded. You can open roslaunch files. Nodes which are backed by a local configuration in this manner are marked with crystal_clear_launch_file.png. If a node with the same name is listed in multiple launch files, you have choose one configuration when you launch the node.

Alternatively, you can use the default_cfg node to serve launch files to the local network. Nodes which are available through this mechanism are marked with default_cfg.png. Different configurations are symbolized by crystal_clear_launch_file_def_cfg.png icon.

Nodes control buttons:

deleket_deviantart_play.png

Launches the selected nodes unless they are already running. Crashed crystal_clear_warning.png nodes are restarted. A popup menu lets you start the node on another host or force the node restart.

deleket_deviantart_stop.png

Terminates the selected nodes using the shutdown method of the Slave API. If you keep the button depressed, a popup menu lets you send a SIGKILL signal to the node process or force the master to unregister the services and topics. The latter is useful if the node died without a proper shutdown.

crystal_clear_show_io.png

Shows a console with terminal session of the selected node. If you keep the button depressed, a popup menu lets you kill the screen program that provides the terminal session, most likely killing the node in the process.

crystal_clear_show_log.png

Shows the log files of the selected nodes. Usually there are two files for each node. One is the ROS log file and the other one contains the output of the terminal session. The log files are not overwritten if the node is stopped and restarted.

crystal_clear_show_delete_log.png

Deletes the log files.

crystal_clear_dyncfg.png

Runs the dynamic reconfigure GUI for a node.

default_cfg_edit.png

Edit values on the ROS Parameter Server of selected node. The dialog fields store a history of the entered data. To delete a stored entry, setect this entry and then press Shift+Delete. parameter_dialog.png

crystal_clear_edit_launch.png

Opens the Launch File Editor.

crystal_clear_button_close.png

Unloads the configuration file(s).

ROS Topics view

The Topics tab shows all in ROS master registered subscriber and publisher. The count of these is shown in Publisher and Subscriber columns. The type of the ROS topic is also displayed. To get more information to the topic you can wait for a tooltip or use Description Dock.

topics_view.png

You can search for a topic respectively his type using the filter row at the top.

Topic control buttons:

crystal_clear_show_io.png

Subscribes the topic and shows his output in a dialog topic_output.png

crystal_clear_show_io_hz.png

Subscribes the topic and shows only Hz of received messages

deleket_deviantart_play.png

Start publishing a message to selected topic. (Only available on local ROS Master. Use master_sync to publish to remote topics!)

deleket_deviantart_stop.png

Stops own publishing to selected topic.

ROS Services view

The Services tab shows all in ROS master registered services. The type of the ROS service is also displayed. To get more information to the service you can wait for a tooltip or use Description Dock.

services_view.png

You can search for a service respectively his type using the filter row at the top.

Service control buttons:

deleket_deviantart_play.png

Call the selected service. If the service require request input, a generated input dialog will be shown. The result of the service call is shown as a dialog: service_responce.png

ROS Parameter view

The Parameter tab shows all in ROS parameter server registered parameter. The value of the ROS parameter is also displayed. The parameter are not automatically requested or updated. Use get parameter button to load the parameter from ROS parameter server.

parameter_view.png

You can search for a parameter respectively his value using the filter row at the top.

Parameter control buttons:

crystal_clear_action_db_update.png

Loads parameter from ROS Parameter Server.

crystal_clear_action_db_add.png

Adds a parameter to the ROS Parameter Server.

crystal_clear_action_db_remove.png

Deletes parameter from ROS Parameter Server.

Launch Dock

The Launch Dock can be used to find and load or edit the launch files. The root contains the paths defined by ROS_PACKAGE_PATH environment variable. In addition, all subfolders are skipped, do not contain the *.launch files. On load, the launch file itself and all included files are added to QFileSystemWatcher. If one of this files will be changed, you will prompt to reload the launch file.

launch_dock.png

Launch control buttons:

deleket_deviantart_refresh.png

Refresh the current path.

crystal_clear_edit_launch.png

Opens the launch file in a Launch Editor.

crystal_clear_launch_file_32.png

Loads the launch file and show the content on the selected host.

default_cfg_32.png

Loads the file as Default configuration on a selected host. /!\ If the selected host is a remote host, then the content of remote launch file will be load.

Launch Editor

Launch Editor is a simple text editor with roslaunch XML syntax highlighting.

launch_editor.png

In addition, the included files are open in a new tab by Ctrl+(left mouse click). If the file does not exists, it will be created. Of course, only if it is desired. You can also search in included file using the find dialog:

launch_editor_find.png

Double click on the file in the find dialog opens the file.

Description Dock

The Description Dock shows additional informations about selected nodes, topics or services.

description_dock.png description_dock_velodyne.png

Capabilities and additional description

Since the Node Manager tries to improve the overview and control of available ROS nodes on a roboter we added some parameter to allow grouping nodes to capabilities. The capability_group parameter adds a node to a specified group:

  <node name="node_manager" pkg="node_manager_fkie" type="nm" >
    <param name="capability_group" value="Management"/>
  </node>

It is possible to add a node to multiple groups using a prefix for capability_group, e.g.:

  <node name="node_manager" pkg="node_manager_fkie" type="nm" >
    <param name="capability_group" value="Management"/>
    <param name="1.capability_group" value="Node Manager"/>
  </node>

The description of a capability group is stored in a global capabilities parameter. This parameter is defined as rosparam and contains the list with all groups and their description. To describe a group adds a list with group name, group type, image and description. image is a relative path to node_manager_fkie package. The description can be coded as reStructeredText and contains also image references relative to node_manager_fkie package path. Since after loading the XML the new line separators are removed, you must enter \n to insert a new line.

   <rosparam param="capabilities">
      [
        ["Management",
         "core",
         "images/crystal_clear_app_network2.png",
         "The ``management`` group provides nodes needed to detect and synchronize
          other robots in the ROS network. These are:\n\n- Node Manager\n- Master
          Discovery\n- Master Synchronization"
        ]
      ]

    </rosparam>

The capability group do not change the namespace of the included ROS nodes.

capability_nodes.png

Further parameter robots describes in same manner the roboter. The list must contains host name, robot type, displayed name, image and description:

  <rosparam param="robots">
    [
      ["tiderko",
       "Workstation",
       "tiderko",
       "images/veryicon_devcom_workstation.png",
       "Workstation\n\n|ws|\n\n.. |ws| image::
        images/veryicon_devcom_workstation.png\n"
      ]
    ]
  </rosparam>

This description will also shown in Description Dock and tooltip.

Default Configuration

The default configuration of a robot is represented by default_cfg node. This node loads a launch file and offers services to run contained nodes. It also offers the additional capabilities description extraceted from the launch file. If a new host is discovered or the ROS Master state is changed, the Node Manager searches for node, which offers default configuration by parsing the service names for list_nodes. The nodes provided by default_cfg are added to the Nodes View with default_cfg.png icon in the Cfgs column. This nodes can be launched without loading a configuration.

Furthermore based on detected capabilities the Capability View will be created.

/!\ The nodes with remote machine tag are ignored.

Capability View

The Capability View shows tabularly the detected robots and their capabilities. The view is created based on the running default configurations of corresponding robots. Each available capability provides buttons to start or stop these.

capability_view.png

Click on the header to show the description in Description Dock.

Getting started

Although the node is written in Python we need to run rosmake to generate message and service types:

rosmake master_discovery_fkie default_cfg_fkie

Run the node:

rosrun node_manager_fkie nm

Interface

The services of master_discovery_fkie and default_cfg_fkie are detected automatically by whose names.

Subscribed Topics

changes (master_discovery_fkie/MasterState)
  • Subscribs to this topic to get the changes in the ROS network. /!\ The name of the topic will be detect automatically by type. All found fopics are subscribed.
linkstats (master_discovery_fkie/LinkStatesStamped)
  • Subscribes this topic to get the link quality informations to other ROS master. /!\ The name of the topic will be detect automatically by type. All found fopics are subscribed.

Key Bindings

F2

Renames a selected launch file.

Ctrl+R

Opens a dialog to launch a master_discovery node on entered host.

Ctrl+E

Opens an XML Editor for selected launch file.

Ctrl+L

Loads the selected launch file into selected host.

Ctrl+O

Runs on selected host default_cfg node with selected launch file as parameter.

Ctrl+S

Runs a synchronization dialog.

Alt+N

Opens a dialog to run a ROS node without a configuration. This node will be launched in a SCREEN.

Alt+K

Runs the rxconsole connected to the ROS master of selected host.

Alt+G

Runs the rxgraph connected to the ROS master of selected host.

Alt+R

Runs selected nodes. Ignores already running nodes.

Alt+S

Stops selected nodes. If more then one node is selected, nodes ending with rosout, node_manager, master_discovery, master_sync or default_cfg are ignored.

Ctrl+Backspace

Sends a SIGKILL to selected nodes. If more then one node is selected, nodes ending with rosout, node_manager, master_discovery, master_sync and default_cfg are ignored.

Ctrl+Delete

Unregister selected nodes (their topics and services) from ROS master. If more then one node is selected, nodes ending with rosout, node_manager, master_discovery, master_sync and default_cfg are ignored.

Shift+Backspace

Sends a SIGKILL to assigned SCREEN of selected nodes.

Shift+S

Shows all available SCREEN's which contains the ROS nodes launched by node manager.

Ctrl+F4

Closes the loaded configurations.

Alt+E

Expands all groups in Nodes tab.

Alt+C

Collapses all groups in Nodes tab.

Alt+{1..5}

Selects all nodes of the {first...fifth} host in Nodes tab excepting the manage nodes.

Getting started

Although the node is written in Python we need to run catkin_make to generate message and service types:

catkin_make

Run the node:

rosrun node_manager_fkie node_manager

or

node_manager

Interface

The services of master_discovery_fkie and default_cfg_fkie are detected automatically by whose names.

Subscribed Topics

changes (master_discovery_fkie/MasterState)
  • Subscribs to this topic to get the changes in the ROS network. /!\ The name of the topic will be detect automatically by type. All found fopics are subscribed.
linkstats (master_discovery_fkie/LinkStatesStamped)
  • Subscribes this topic to get the link quality informations to other ROS master. /!\ The name of the topic will be detect automatically by type. All found fopics are subscribed.

Troubleshooting

1. Error while launch a node on remote host: bash: rosrun: command not found

  • To run a node on remote host, an SSH connection will be established without setting any enviroment variables. Try to comment out in .bashrc:

#[ -z "$PS1" ] && return

2. The Node Manager crashes on load a launch file with error: QSpiAccessible::accessibleEvent not handled: "8008"

  • This "bug" seems to be resolved by removing the qt-at-spi package.

3. You don't see the correct output of your nodes. Try to change your default terminal:

sudo update-alternatives --config x-terminal-emulator'''

Wiki: node_manager_fkie (last edited 2016-02-13 17:00:19 by svepe)