No version for distro humble showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

dispatcher package from dispatcher repo

dispatcher

ROS Distro
jazzy

Package Summary

Version 0.4.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/nasa-jpl/dispatcher.git
VCS Type git
VCS Version master
Last Updated 2026-08-31
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Qt-based ROS 2 application for launching and monitoring ROS nodes and arbitrary processes.

Additional Links

Maintainers

  • Kristopher Wehage

Authors

No additional authors.

Dispatcher

A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

dispatcher

dispatcher builds its UI from a YAML file. Each configured item is launched in its own detached tmux session, and the terminal button can attach a gnome-terminal window to that session when available.

Runtime Parameters

The dispatcher executable uses the following ROS parameters:

Name Type Default Description
dispatcher_config_path string "" Path to the dispatcher YAML file.
initial_configuration string "" Configuration name to select on startup.
ssh_timeout_sec int 10 Timeout used when building remote SSH commands.
target_loop_rate_hz double 100.0 Main process/status polling rate.

YAML Configuration

The top-level dispatcher YAML supports:

Key Required Description
workspace Yes Workspace path used by ROS process items before sourcing install/setup.bash.
nodes Yes Process and category definitions rendered in the main panel.
configurations No Named runtime configurations. Each entry may be a simple name or a map with name, cmd_prefix, environment_variables, and icon.
cmd_prefix No Default command prefix for the implicit all configuration.
environment_variables No Default environment variables for the implicit all configuration.
hide_unconfigured_processes No If true, items missing in the active configuration are hidden instead of disabled.
scripts No Script button definitions shown in the scripts panel.
variables No Variable selectors used for $VARIABLE command substitution.

Node Types

Each entry in nodes can be:

  • A ROS process item. If type is omitted, the item is treated as ROS by default.
  • A shell process item with type: shell.
  • A collapsible category with type: category and an items array.

Common item fields include:

Key Description
name UI label and tmux-session base name.
cmd Command used for the implicit all configuration.
configurations Per-configuration command definitions.
start_checked Whether the item starts checked in the UI. Optional, defaults to false.
stop_tmux_cmd Stop sequence sent to tmux. Optional, defaults to C-C.
hostname / user Optional remote execution target for local commands or configuration entries.
use_cmd_prefix Enables or disables command-prefix injection.
use_environment_variables Enables or disables environment-variable injection.
attach_on_start Opens a terminal automatically after launch.

ROS process items can additionally define node_name plus an optional namespace that defaults to an empty string, or a ros_nodes array with the same monitoring fields for online-state monitoring.

Shell process items use pgrep on the item name to infer online state.

Scripts and Variables

Script entries support:

Key Description
name Button label.
cmd or configurations Script command definition.
row, column Grid placement in the scripts panel.
icon Optional Qt resource path for the button icon.
use_terminal Whether to wrap execution in gnome-terminal --.

Variable entries support:

Key Description
name Variable name used in commands, for example $FCAT_LOOP_RATE_HZ.
choices Selectable values exposed in the UI.

Examples

The following examples build incrementally from a minimal configuration to a full-featured setup. Each one corresponds to a YAML file in config/ and a screenshot in doc/.

Configurations

config/example_configurations.yaml shows the simplest multi-configuration setup. Two named configurations (config_A and config_B) control which processes are available and which commands they run. Processes that lack a definition for the active configuration are grayed out.

config_A config_B
config_A config_B

```yaml

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package dispatcher

Forthcoming

0.4.2 (2026-08-31 07:32)

  • Merge pull request #3 from nasa-jpl/fix-rolling

    Fix rolling

  • add changelo update

  • use target_link_libraries instead of deprecated ament_target_dependencies

  • Contributors: Daniel Pastor

0.4.0 (2026-06-28 20:40)

  • chore: bump version to 0.4.0 [skip ci]
  • Merge pull request #1 from nasa-jpl/github-ci add actions and workflows
  • add actions and workflows
  • Contributors: Daniel Pastor, github-actions[bot]

0.3.0 (2026-06-28 20:02)

  • Merge branch 'prepare-public-release' into 'master' update license to Apache. Readme corrections. Manually bump version See merge request robotics/ros2/dispatcher!4
  • update license to Apache. Readme corrections. Manually bump version
  • Merge branch 'feature/script_categories' into 'master' Add categories to scripts See merge request robotics/ros2/dispatcher!3
  • doc image resize
  • Updated docs to mention script categories
  • Added attribution-free icons
  • categories extended to scripts
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, jongreen

0.2.0 (2026-04-24)

  • manual version bump
  • Merge branch 'improve_readme' into 'master' Improve readme See merge request robotics/ros2/dispatcher!2
  • fix tests
  • add more examples
  • add more examples with screenshots
  • make start checked optional
  • Merge branch 'casah-less' into 'master' Update to work without CASAH repos See merge request robotics/ros2/dispatcher!1
  • remove debugging prints
  • make namespace optional in config
  • add github CI
  • correct readme, add missing features
  • add function doxygen comments
  • add basic testing refactor logic for easier testing
  • fix Q_OBJECT warnings
  • fix smaller issues
    • missing regex header
    • missing h files in lib for QT to work
    • add GetTimerRate
  • use ros params
  • replace EVRs with RCLCPPs logging
  • update CMakeLists.txt
  • move headers to their own folder
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, Joseph Bowkett

0.1.5 (2026-02-08)

  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • add initial configuration param
  • Contributors: Casah Gitlab Runner, Daniel Pastor, Daniel Pastor Moreno

0.1.4 (2025-10-09)

  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Small change
  • Contributors: Casah Admin, Casah Gitlab Runner, Preston Rogers

0.1.3 (2025-06-12 04:39)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial commit See merge request casah/ros2/dispatcher!43
  • Contributors: Casah Gitlab Runner

0.1.2 (2025-06-12 03:13)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dispatcher at Robotics Stack Exchange

Package symbol

dispatcher package from dispatcher repo

dispatcher

ROS Distro
jazzy

Package Summary

Version 0.4.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/nasa-jpl/dispatcher.git
VCS Type git
VCS Version master
Last Updated 2026-08-31
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Qt-based ROS 2 application for launching and monitoring ROS nodes and arbitrary processes.

Additional Links

Maintainers

  • Kristopher Wehage

Authors

No additional authors.

Dispatcher

A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

dispatcher

dispatcher builds its UI from a YAML file. Each configured item is launched in its own detached tmux session, and the terminal button can attach a gnome-terminal window to that session when available.

Runtime Parameters

The dispatcher executable uses the following ROS parameters:

Name Type Default Description
dispatcher_config_path string "" Path to the dispatcher YAML file.
initial_configuration string "" Configuration name to select on startup.
ssh_timeout_sec int 10 Timeout used when building remote SSH commands.
target_loop_rate_hz double 100.0 Main process/status polling rate.

YAML Configuration

The top-level dispatcher YAML supports:

Key Required Description
workspace Yes Workspace path used by ROS process items before sourcing install/setup.bash.
nodes Yes Process and category definitions rendered in the main panel.
configurations No Named runtime configurations. Each entry may be a simple name or a map with name, cmd_prefix, environment_variables, and icon.
cmd_prefix No Default command prefix for the implicit all configuration.
environment_variables No Default environment variables for the implicit all configuration.
hide_unconfigured_processes No If true, items missing in the active configuration are hidden instead of disabled.
scripts No Script button definitions shown in the scripts panel.
variables No Variable selectors used for $VARIABLE command substitution.

Node Types

Each entry in nodes can be:

  • A ROS process item. If type is omitted, the item is treated as ROS by default.
  • A shell process item with type: shell.
  • A collapsible category with type: category and an items array.

Common item fields include:

Key Description
name UI label and tmux-session base name.
cmd Command used for the implicit all configuration.
configurations Per-configuration command definitions.
start_checked Whether the item starts checked in the UI. Optional, defaults to false.
stop_tmux_cmd Stop sequence sent to tmux. Optional, defaults to C-C.
hostname / user Optional remote execution target for local commands or configuration entries.
use_cmd_prefix Enables or disables command-prefix injection.
use_environment_variables Enables or disables environment-variable injection.
attach_on_start Opens a terminal automatically after launch.

ROS process items can additionally define node_name plus an optional namespace that defaults to an empty string, or a ros_nodes array with the same monitoring fields for online-state monitoring.

Shell process items use pgrep on the item name to infer online state.

Scripts and Variables

Script entries support:

Key Description
name Button label.
cmd or configurations Script command definition.
row, column Grid placement in the scripts panel.
icon Optional Qt resource path for the button icon.
use_terminal Whether to wrap execution in gnome-terminal --.

Variable entries support:

Key Description
name Variable name used in commands, for example $FCAT_LOOP_RATE_HZ.
choices Selectable values exposed in the UI.

Examples

The following examples build incrementally from a minimal configuration to a full-featured setup. Each one corresponds to a YAML file in config/ and a screenshot in doc/.

Configurations

config/example_configurations.yaml shows the simplest multi-configuration setup. Two named configurations (config_A and config_B) control which processes are available and which commands they run. Processes that lack a definition for the active configuration are grayed out.

config_A config_B
config_A config_B

```yaml

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package dispatcher

Forthcoming

0.4.2 (2026-08-31 07:32)

  • Merge pull request #3 from nasa-jpl/fix-rolling

    Fix rolling

  • add changelo update

  • use target_link_libraries instead of deprecated ament_target_dependencies

  • Contributors: Daniel Pastor

0.4.0 (2026-06-28 20:40)

  • chore: bump version to 0.4.0 [skip ci]
  • Merge pull request #1 from nasa-jpl/github-ci add actions and workflows
  • add actions and workflows
  • Contributors: Daniel Pastor, github-actions[bot]

0.3.0 (2026-06-28 20:02)

  • Merge branch 'prepare-public-release' into 'master' update license to Apache. Readme corrections. Manually bump version See merge request robotics/ros2/dispatcher!4
  • update license to Apache. Readme corrections. Manually bump version
  • Merge branch 'feature/script_categories' into 'master' Add categories to scripts See merge request robotics/ros2/dispatcher!3
  • doc image resize
  • Updated docs to mention script categories
  • Added attribution-free icons
  • categories extended to scripts
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, jongreen

0.2.0 (2026-04-24)

  • manual version bump
  • Merge branch 'improve_readme' into 'master' Improve readme See merge request robotics/ros2/dispatcher!2
  • fix tests
  • add more examples
  • add more examples with screenshots
  • make start checked optional
  • Merge branch 'casah-less' into 'master' Update to work without CASAH repos See merge request robotics/ros2/dispatcher!1
  • remove debugging prints
  • make namespace optional in config
  • add github CI
  • correct readme, add missing features
  • add function doxygen comments
  • add basic testing refactor logic for easier testing
  • fix Q_OBJECT warnings
  • fix smaller issues
    • missing regex header
    • missing h files in lib for QT to work
    • add GetTimerRate
  • use ros params
  • replace EVRs with RCLCPPs logging
  • update CMakeLists.txt
  • move headers to their own folder
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, Joseph Bowkett

0.1.5 (2026-02-08)

  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • add initial configuration param
  • Contributors: Casah Gitlab Runner, Daniel Pastor, Daniel Pastor Moreno

0.1.4 (2025-10-09)

  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Small change
  • Contributors: Casah Admin, Casah Gitlab Runner, Preston Rogers

0.1.3 (2025-06-12 04:39)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial commit See merge request casah/ros2/dispatcher!43
  • Contributors: Casah Gitlab Runner

0.1.2 (2025-06-12 03:13)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dispatcher at Robotics Stack Exchange

No version for distro kilted showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

dispatcher package from dispatcher repo

dispatcher

ROS Distro
jazzy

Package Summary

Version 0.4.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/nasa-jpl/dispatcher.git
VCS Type git
VCS Version master
Last Updated 2026-08-31
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Qt-based ROS 2 application for launching and monitoring ROS nodes and arbitrary processes.

Additional Links

Maintainers

  • Kristopher Wehage

Authors

No additional authors.

Dispatcher

A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

dispatcher

dispatcher builds its UI from a YAML file. Each configured item is launched in its own detached tmux session, and the terminal button can attach a gnome-terminal window to that session when available.

Runtime Parameters

The dispatcher executable uses the following ROS parameters:

Name Type Default Description
dispatcher_config_path string "" Path to the dispatcher YAML file.
initial_configuration string "" Configuration name to select on startup.
ssh_timeout_sec int 10 Timeout used when building remote SSH commands.
target_loop_rate_hz double 100.0 Main process/status polling rate.

YAML Configuration

The top-level dispatcher YAML supports:

Key Required Description
workspace Yes Workspace path used by ROS process items before sourcing install/setup.bash.
nodes Yes Process and category definitions rendered in the main panel.
configurations No Named runtime configurations. Each entry may be a simple name or a map with name, cmd_prefix, environment_variables, and icon.
cmd_prefix No Default command prefix for the implicit all configuration.
environment_variables No Default environment variables for the implicit all configuration.
hide_unconfigured_processes No If true, items missing in the active configuration are hidden instead of disabled.
scripts No Script button definitions shown in the scripts panel.
variables No Variable selectors used for $VARIABLE command substitution.

Node Types

Each entry in nodes can be:

  • A ROS process item. If type is omitted, the item is treated as ROS by default.
  • A shell process item with type: shell.
  • A collapsible category with type: category and an items array.

Common item fields include:

Key Description
name UI label and tmux-session base name.
cmd Command used for the implicit all configuration.
configurations Per-configuration command definitions.
start_checked Whether the item starts checked in the UI. Optional, defaults to false.
stop_tmux_cmd Stop sequence sent to tmux. Optional, defaults to C-C.
hostname / user Optional remote execution target for local commands or configuration entries.
use_cmd_prefix Enables or disables command-prefix injection.
use_environment_variables Enables or disables environment-variable injection.
attach_on_start Opens a terminal automatically after launch.

ROS process items can additionally define node_name plus an optional namespace that defaults to an empty string, or a ros_nodes array with the same monitoring fields for online-state monitoring.

Shell process items use pgrep on the item name to infer online state.

Scripts and Variables

Script entries support:

Key Description
name Button label.
cmd or configurations Script command definition.
row, column Grid placement in the scripts panel.
icon Optional Qt resource path for the button icon.
use_terminal Whether to wrap execution in gnome-terminal --.

Variable entries support:

Key Description
name Variable name used in commands, for example $FCAT_LOOP_RATE_HZ.
choices Selectable values exposed in the UI.

Examples

The following examples build incrementally from a minimal configuration to a full-featured setup. Each one corresponds to a YAML file in config/ and a screenshot in doc/.

Configurations

config/example_configurations.yaml shows the simplest multi-configuration setup. Two named configurations (config_A and config_B) control which processes are available and which commands they run. Processes that lack a definition for the active configuration are grayed out.

config_A config_B
config_A config_B

```yaml

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package dispatcher

Forthcoming

0.4.2 (2026-08-31 07:32)

  • Merge pull request #3 from nasa-jpl/fix-rolling

    Fix rolling

  • add changelo update

  • use target_link_libraries instead of deprecated ament_target_dependencies

  • Contributors: Daniel Pastor

0.4.0 (2026-06-28 20:40)

  • chore: bump version to 0.4.0 [skip ci]
  • Merge pull request #1 from nasa-jpl/github-ci add actions and workflows
  • add actions and workflows
  • Contributors: Daniel Pastor, github-actions[bot]

0.3.0 (2026-06-28 20:02)

  • Merge branch 'prepare-public-release' into 'master' update license to Apache. Readme corrections. Manually bump version See merge request robotics/ros2/dispatcher!4
  • update license to Apache. Readme corrections. Manually bump version
  • Merge branch 'feature/script_categories' into 'master' Add categories to scripts See merge request robotics/ros2/dispatcher!3
  • doc image resize
  • Updated docs to mention script categories
  • Added attribution-free icons
  • categories extended to scripts
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, jongreen

0.2.0 (2026-04-24)

  • manual version bump
  • Merge branch 'improve_readme' into 'master' Improve readme See merge request robotics/ros2/dispatcher!2
  • fix tests
  • add more examples
  • add more examples with screenshots
  • make start checked optional
  • Merge branch 'casah-less' into 'master' Update to work without CASAH repos See merge request robotics/ros2/dispatcher!1
  • remove debugging prints
  • make namespace optional in config
  • add github CI
  • correct readme, add missing features
  • add function doxygen comments
  • add basic testing refactor logic for easier testing
  • fix Q_OBJECT warnings
  • fix smaller issues
    • missing regex header
    • missing h files in lib for QT to work
    • add GetTimerRate
  • use ros params
  • replace EVRs with RCLCPPs logging
  • update CMakeLists.txt
  • move headers to their own folder
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, Joseph Bowkett

0.1.5 (2026-02-08)

  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • add initial configuration param
  • Contributors: Casah Gitlab Runner, Daniel Pastor, Daniel Pastor Moreno

0.1.4 (2025-10-09)

  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Small change
  • Contributors: Casah Admin, Casah Gitlab Runner, Preston Rogers

0.1.3 (2025-06-12 04:39)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial commit See merge request casah/ros2/dispatcher!43
  • Contributors: Casah Gitlab Runner

0.1.2 (2025-06-12 03:13)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dispatcher at Robotics Stack Exchange

No version for distro lyrical showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

dispatcher package from dispatcher repo

dispatcher

ROS Distro
jazzy

Package Summary

Version 0.4.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/nasa-jpl/dispatcher.git
VCS Type git
VCS Version master
Last Updated 2026-08-31
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Qt-based ROS 2 application for launching and monitoring ROS nodes and arbitrary processes.

Additional Links

Maintainers

  • Kristopher Wehage

Authors

No additional authors.

Dispatcher

A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

dispatcher

dispatcher builds its UI from a YAML file. Each configured item is launched in its own detached tmux session, and the terminal button can attach a gnome-terminal window to that session when available.

Runtime Parameters

The dispatcher executable uses the following ROS parameters:

Name Type Default Description
dispatcher_config_path string "" Path to the dispatcher YAML file.
initial_configuration string "" Configuration name to select on startup.
ssh_timeout_sec int 10 Timeout used when building remote SSH commands.
target_loop_rate_hz double 100.0 Main process/status polling rate.

YAML Configuration

The top-level dispatcher YAML supports:

Key Required Description
workspace Yes Workspace path used by ROS process items before sourcing install/setup.bash.
nodes Yes Process and category definitions rendered in the main panel.
configurations No Named runtime configurations. Each entry may be a simple name or a map with name, cmd_prefix, environment_variables, and icon.
cmd_prefix No Default command prefix for the implicit all configuration.
environment_variables No Default environment variables for the implicit all configuration.
hide_unconfigured_processes No If true, items missing in the active configuration are hidden instead of disabled.
scripts No Script button definitions shown in the scripts panel.
variables No Variable selectors used for $VARIABLE command substitution.

Node Types

Each entry in nodes can be:

  • A ROS process item. If type is omitted, the item is treated as ROS by default.
  • A shell process item with type: shell.
  • A collapsible category with type: category and an items array.

Common item fields include:

Key Description
name UI label and tmux-session base name.
cmd Command used for the implicit all configuration.
configurations Per-configuration command definitions.
start_checked Whether the item starts checked in the UI. Optional, defaults to false.
stop_tmux_cmd Stop sequence sent to tmux. Optional, defaults to C-C.
hostname / user Optional remote execution target for local commands or configuration entries.
use_cmd_prefix Enables or disables command-prefix injection.
use_environment_variables Enables or disables environment-variable injection.
attach_on_start Opens a terminal automatically after launch.

ROS process items can additionally define node_name plus an optional namespace that defaults to an empty string, or a ros_nodes array with the same monitoring fields for online-state monitoring.

Shell process items use pgrep on the item name to infer online state.

Scripts and Variables

Script entries support:

Key Description
name Button label.
cmd or configurations Script command definition.
row, column Grid placement in the scripts panel.
icon Optional Qt resource path for the button icon.
use_terminal Whether to wrap execution in gnome-terminal --.

Variable entries support:

Key Description
name Variable name used in commands, for example $FCAT_LOOP_RATE_HZ.
choices Selectable values exposed in the UI.

Examples

The following examples build incrementally from a minimal configuration to a full-featured setup. Each one corresponds to a YAML file in config/ and a screenshot in doc/.

Configurations

config/example_configurations.yaml shows the simplest multi-configuration setup. Two named configurations (config_A and config_B) control which processes are available and which commands they run. Processes that lack a definition for the active configuration are grayed out.

config_A config_B
config_A config_B

```yaml

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package dispatcher

Forthcoming

0.4.2 (2026-08-31 07:32)

  • Merge pull request #3 from nasa-jpl/fix-rolling

    Fix rolling

  • add changelo update

  • use target_link_libraries instead of deprecated ament_target_dependencies

  • Contributors: Daniel Pastor

0.4.0 (2026-06-28 20:40)

  • chore: bump version to 0.4.0 [skip ci]
  • Merge pull request #1 from nasa-jpl/github-ci add actions and workflows
  • add actions and workflows
  • Contributors: Daniel Pastor, github-actions[bot]

0.3.0 (2026-06-28 20:02)

  • Merge branch 'prepare-public-release' into 'master' update license to Apache. Readme corrections. Manually bump version See merge request robotics/ros2/dispatcher!4
  • update license to Apache. Readme corrections. Manually bump version
  • Merge branch 'feature/script_categories' into 'master' Add categories to scripts See merge request robotics/ros2/dispatcher!3
  • doc image resize
  • Updated docs to mention script categories
  • Added attribution-free icons
  • categories extended to scripts
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, jongreen

0.2.0 (2026-04-24)

  • manual version bump
  • Merge branch 'improve_readme' into 'master' Improve readme See merge request robotics/ros2/dispatcher!2
  • fix tests
  • add more examples
  • add more examples with screenshots
  • make start checked optional
  • Merge branch 'casah-less' into 'master' Update to work without CASAH repos See merge request robotics/ros2/dispatcher!1
  • remove debugging prints
  • make namespace optional in config
  • add github CI
  • correct readme, add missing features
  • add function doxygen comments
  • add basic testing refactor logic for easier testing
  • fix Q_OBJECT warnings
  • fix smaller issues
    • missing regex header
    • missing h files in lib for QT to work
    • add GetTimerRate
  • use ros params
  • replace EVRs with RCLCPPs logging
  • update CMakeLists.txt
  • move headers to their own folder
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, Joseph Bowkett

0.1.5 (2026-02-08)

  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • add initial configuration param
  • Contributors: Casah Gitlab Runner, Daniel Pastor, Daniel Pastor Moreno

0.1.4 (2025-10-09)

  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Small change
  • Contributors: Casah Admin, Casah Gitlab Runner, Preston Rogers

0.1.3 (2025-06-12 04:39)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial commit See merge request casah/ros2/dispatcher!43
  • Contributors: Casah Gitlab Runner

0.1.2 (2025-06-12 03:13)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dispatcher at Robotics Stack Exchange

Package symbol

dispatcher package from dispatcher repo

dispatcher

ROS Distro
rolling

Package Summary

Version 0.4.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/nasa-jpl/dispatcher.git
VCS Type git
VCS Version master
Last Updated 2026-08-31
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Qt-based ROS 2 application for launching and monitoring ROS nodes and arbitrary processes.

Additional Links

Maintainers

  • Kristopher Wehage

Authors

No additional authors.

Dispatcher

A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

dispatcher

dispatcher builds its UI from a YAML file. Each configured item is launched in its own detached tmux session, and the terminal button can attach a gnome-terminal window to that session when available.

Runtime Parameters

The dispatcher executable uses the following ROS parameters:

Name Type Default Description
dispatcher_config_path string "" Path to the dispatcher YAML file.
initial_configuration string "" Configuration name to select on startup.
ssh_timeout_sec int 10 Timeout used when building remote SSH commands.
target_loop_rate_hz double 100.0 Main process/status polling rate.

YAML Configuration

The top-level dispatcher YAML supports:

Key Required Description
workspace Yes Workspace path used by ROS process items before sourcing install/setup.bash.
nodes Yes Process and category definitions rendered in the main panel.
configurations No Named runtime configurations. Each entry may be a simple name or a map with name, cmd_prefix, environment_variables, and icon.
cmd_prefix No Default command prefix for the implicit all configuration.
environment_variables No Default environment variables for the implicit all configuration.
hide_unconfigured_processes No If true, items missing in the active configuration are hidden instead of disabled.
scripts No Script button definitions shown in the scripts panel.
variables No Variable selectors used for $VARIABLE command substitution.

Node Types

Each entry in nodes can be:

  • A ROS process item. If type is omitted, the item is treated as ROS by default.
  • A shell process item with type: shell.
  • A collapsible category with type: category and an items array.

Common item fields include:

Key Description
name UI label and tmux-session base name.
cmd Command used for the implicit all configuration.
configurations Per-configuration command definitions.
start_checked Whether the item starts checked in the UI. Optional, defaults to false.
stop_tmux_cmd Stop sequence sent to tmux. Optional, defaults to C-C.
hostname / user Optional remote execution target for local commands or configuration entries.
use_cmd_prefix Enables or disables command-prefix injection.
use_environment_variables Enables or disables environment-variable injection.
attach_on_start Opens a terminal automatically after launch.

ROS process items can additionally define node_name plus an optional namespace that defaults to an empty string, or a ros_nodes array with the same monitoring fields for online-state monitoring.

Shell process items use pgrep on the item name to infer online state.

Scripts and Variables

Script entries support:

Key Description
name Button label.
cmd or configurations Script command definition.
row, column Grid placement in the scripts panel.
icon Optional Qt resource path for the button icon.
use_terminal Whether to wrap execution in gnome-terminal --.

Variable entries support:

Key Description
name Variable name used in commands, for example $FCAT_LOOP_RATE_HZ.
choices Selectable values exposed in the UI.

Examples

The following examples build incrementally from a minimal configuration to a full-featured setup. Each one corresponds to a YAML file in config/ and a screenshot in doc/.

Configurations

config/example_configurations.yaml shows the simplest multi-configuration setup. Two named configurations (config_A and config_B) control which processes are available and which commands they run. Processes that lack a definition for the active configuration are grayed out.

config_A config_B
config_A config_B

```yaml

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package dispatcher

Forthcoming

0.4.2 (2026-08-31 07:32)

  • Merge pull request #3 from nasa-jpl/fix-rolling

    Fix rolling

  • add changelo update

  • use target_link_libraries instead of deprecated ament_target_dependencies

  • Contributors: Daniel Pastor

0.4.0 (2026-06-28 20:40)

  • chore: bump version to 0.4.0 [skip ci]
  • Merge pull request #1 from nasa-jpl/github-ci add actions and workflows
  • add actions and workflows
  • Contributors: Daniel Pastor, github-actions[bot]

0.3.0 (2026-06-28 20:02)

  • Merge branch 'prepare-public-release' into 'master' update license to Apache. Readme corrections. Manually bump version See merge request robotics/ros2/dispatcher!4
  • update license to Apache. Readme corrections. Manually bump version
  • Merge branch 'feature/script_categories' into 'master' Add categories to scripts See merge request robotics/ros2/dispatcher!3
  • doc image resize
  • Updated docs to mention script categories
  • Added attribution-free icons
  • categories extended to scripts
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, jongreen

0.2.0 (2026-04-24)

  • manual version bump
  • Merge branch 'improve_readme' into 'master' Improve readme See merge request robotics/ros2/dispatcher!2
  • fix tests
  • add more examples
  • add more examples with screenshots
  • make start checked optional
  • Merge branch 'casah-less' into 'master' Update to work without CASAH repos See merge request robotics/ros2/dispatcher!1
  • remove debugging prints
  • make namespace optional in config
  • add github CI
  • correct readme, add missing features
  • add function doxygen comments
  • add basic testing refactor logic for easier testing
  • fix Q_OBJECT warnings
  • fix smaller issues
    • missing regex header
    • missing h files in lib for QT to work
    • add GetTimerRate
  • use ros params
  • replace EVRs with RCLCPPs logging
  • update CMakeLists.txt
  • move headers to their own folder
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, Joseph Bowkett

0.1.5 (2026-02-08)

  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • add initial configuration param
  • Contributors: Casah Gitlab Runner, Daniel Pastor, Daniel Pastor Moreno

0.1.4 (2025-10-09)

  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Small change
  • Contributors: Casah Admin, Casah Gitlab Runner, Preston Rogers

0.1.3 (2025-06-12 04:39)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial commit See merge request casah/ros2/dispatcher!43
  • Contributors: Casah Gitlab Runner

0.1.2 (2025-06-12 03:13)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dispatcher at Robotics Stack Exchange

No version for distro ardent showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

dispatcher package from dispatcher repo

dispatcher

ROS Distro
jazzy

Package Summary

Version 0.4.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/nasa-jpl/dispatcher.git
VCS Type git
VCS Version master
Last Updated 2026-08-31
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Qt-based ROS 2 application for launching and monitoring ROS nodes and arbitrary processes.

Additional Links

Maintainers

  • Kristopher Wehage

Authors

No additional authors.

Dispatcher

A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

dispatcher

dispatcher builds its UI from a YAML file. Each configured item is launched in its own detached tmux session, and the terminal button can attach a gnome-terminal window to that session when available.

Runtime Parameters

The dispatcher executable uses the following ROS parameters:

Name Type Default Description
dispatcher_config_path string "" Path to the dispatcher YAML file.
initial_configuration string "" Configuration name to select on startup.
ssh_timeout_sec int 10 Timeout used when building remote SSH commands.
target_loop_rate_hz double 100.0 Main process/status polling rate.

YAML Configuration

The top-level dispatcher YAML supports:

Key Required Description
workspace Yes Workspace path used by ROS process items before sourcing install/setup.bash.
nodes Yes Process and category definitions rendered in the main panel.
configurations No Named runtime configurations. Each entry may be a simple name or a map with name, cmd_prefix, environment_variables, and icon.
cmd_prefix No Default command prefix for the implicit all configuration.
environment_variables No Default environment variables for the implicit all configuration.
hide_unconfigured_processes No If true, items missing in the active configuration are hidden instead of disabled.
scripts No Script button definitions shown in the scripts panel.
variables No Variable selectors used for $VARIABLE command substitution.

Node Types

Each entry in nodes can be:

  • A ROS process item. If type is omitted, the item is treated as ROS by default.
  • A shell process item with type: shell.
  • A collapsible category with type: category and an items array.

Common item fields include:

Key Description
name UI label and tmux-session base name.
cmd Command used for the implicit all configuration.
configurations Per-configuration command definitions.
start_checked Whether the item starts checked in the UI. Optional, defaults to false.
stop_tmux_cmd Stop sequence sent to tmux. Optional, defaults to C-C.
hostname / user Optional remote execution target for local commands or configuration entries.
use_cmd_prefix Enables or disables command-prefix injection.
use_environment_variables Enables or disables environment-variable injection.
attach_on_start Opens a terminal automatically after launch.

ROS process items can additionally define node_name plus an optional namespace that defaults to an empty string, or a ros_nodes array with the same monitoring fields for online-state monitoring.

Shell process items use pgrep on the item name to infer online state.

Scripts and Variables

Script entries support:

Key Description
name Button label.
cmd or configurations Script command definition.
row, column Grid placement in the scripts panel.
icon Optional Qt resource path for the button icon.
use_terminal Whether to wrap execution in gnome-terminal --.

Variable entries support:

Key Description
name Variable name used in commands, for example $FCAT_LOOP_RATE_HZ.
choices Selectable values exposed in the UI.

Examples

The following examples build incrementally from a minimal configuration to a full-featured setup. Each one corresponds to a YAML file in config/ and a screenshot in doc/.

Configurations

config/example_configurations.yaml shows the simplest multi-configuration setup. Two named configurations (config_A and config_B) control which processes are available and which commands they run. Processes that lack a definition for the active configuration are grayed out.

config_A config_B
config_A config_B

```yaml

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package dispatcher

Forthcoming

0.4.2 (2026-08-31 07:32)

  • Merge pull request #3 from nasa-jpl/fix-rolling

    Fix rolling

  • add changelo update

  • use target_link_libraries instead of deprecated ament_target_dependencies

  • Contributors: Daniel Pastor

0.4.0 (2026-06-28 20:40)

  • chore: bump version to 0.4.0 [skip ci]
  • Merge pull request #1 from nasa-jpl/github-ci add actions and workflows
  • add actions and workflows
  • Contributors: Daniel Pastor, github-actions[bot]

0.3.0 (2026-06-28 20:02)

  • Merge branch 'prepare-public-release' into 'master' update license to Apache. Readme corrections. Manually bump version See merge request robotics/ros2/dispatcher!4
  • update license to Apache. Readme corrections. Manually bump version
  • Merge branch 'feature/script_categories' into 'master' Add categories to scripts See merge request robotics/ros2/dispatcher!3
  • doc image resize
  • Updated docs to mention script categories
  • Added attribution-free icons
  • categories extended to scripts
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, jongreen

0.2.0 (2026-04-24)

  • manual version bump
  • Merge branch 'improve_readme' into 'master' Improve readme See merge request robotics/ros2/dispatcher!2
  • fix tests
  • add more examples
  • add more examples with screenshots
  • make start checked optional
  • Merge branch 'casah-less' into 'master' Update to work without CASAH repos See merge request robotics/ros2/dispatcher!1
  • remove debugging prints
  • make namespace optional in config
  • add github CI
  • correct readme, add missing features
  • add function doxygen comments
  • add basic testing refactor logic for easier testing
  • fix Q_OBJECT warnings
  • fix smaller issues
    • missing regex header
    • missing h files in lib for QT to work
    • add GetTimerRate
  • use ros params
  • replace EVRs with RCLCPPs logging
  • update CMakeLists.txt
  • move headers to their own folder
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, Joseph Bowkett

0.1.5 (2026-02-08)

  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • add initial configuration param
  • Contributors: Casah Gitlab Runner, Daniel Pastor, Daniel Pastor Moreno

0.1.4 (2025-10-09)

  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Small change
  • Contributors: Casah Admin, Casah Gitlab Runner, Preston Rogers

0.1.3 (2025-06-12 04:39)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial commit See merge request casah/ros2/dispatcher!43
  • Contributors: Casah Gitlab Runner

0.1.2 (2025-06-12 03:13)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dispatcher at Robotics Stack Exchange

No version for distro bouncy showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

dispatcher package from dispatcher repo

dispatcher

ROS Distro
jazzy

Package Summary

Version 0.4.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/nasa-jpl/dispatcher.git
VCS Type git
VCS Version master
Last Updated 2026-08-31
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Qt-based ROS 2 application for launching and monitoring ROS nodes and arbitrary processes.

Additional Links

Maintainers

  • Kristopher Wehage

Authors

No additional authors.

Dispatcher

A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

dispatcher

dispatcher builds its UI from a YAML file. Each configured item is launched in its own detached tmux session, and the terminal button can attach a gnome-terminal window to that session when available.

Runtime Parameters

The dispatcher executable uses the following ROS parameters:

Name Type Default Description
dispatcher_config_path string "" Path to the dispatcher YAML file.
initial_configuration string "" Configuration name to select on startup.
ssh_timeout_sec int 10 Timeout used when building remote SSH commands.
target_loop_rate_hz double 100.0 Main process/status polling rate.

YAML Configuration

The top-level dispatcher YAML supports:

Key Required Description
workspace Yes Workspace path used by ROS process items before sourcing install/setup.bash.
nodes Yes Process and category definitions rendered in the main panel.
configurations No Named runtime configurations. Each entry may be a simple name or a map with name, cmd_prefix, environment_variables, and icon.
cmd_prefix No Default command prefix for the implicit all configuration.
environment_variables No Default environment variables for the implicit all configuration.
hide_unconfigured_processes No If true, items missing in the active configuration are hidden instead of disabled.
scripts No Script button definitions shown in the scripts panel.
variables No Variable selectors used for $VARIABLE command substitution.

Node Types

Each entry in nodes can be:

  • A ROS process item. If type is omitted, the item is treated as ROS by default.
  • A shell process item with type: shell.
  • A collapsible category with type: category and an items array.

Common item fields include:

Key Description
name UI label and tmux-session base name.
cmd Command used for the implicit all configuration.
configurations Per-configuration command definitions.
start_checked Whether the item starts checked in the UI. Optional, defaults to false.
stop_tmux_cmd Stop sequence sent to tmux. Optional, defaults to C-C.
hostname / user Optional remote execution target for local commands or configuration entries.
use_cmd_prefix Enables or disables command-prefix injection.
use_environment_variables Enables or disables environment-variable injection.
attach_on_start Opens a terminal automatically after launch.

ROS process items can additionally define node_name plus an optional namespace that defaults to an empty string, or a ros_nodes array with the same monitoring fields for online-state monitoring.

Shell process items use pgrep on the item name to infer online state.

Scripts and Variables

Script entries support:

Key Description
name Button label.
cmd or configurations Script command definition.
row, column Grid placement in the scripts panel.
icon Optional Qt resource path for the button icon.
use_terminal Whether to wrap execution in gnome-terminal --.

Variable entries support:

Key Description
name Variable name used in commands, for example $FCAT_LOOP_RATE_HZ.
choices Selectable values exposed in the UI.

Examples

The following examples build incrementally from a minimal configuration to a full-featured setup. Each one corresponds to a YAML file in config/ and a screenshot in doc/.

Configurations

config/example_configurations.yaml shows the simplest multi-configuration setup. Two named configurations (config_A and config_B) control which processes are available and which commands they run. Processes that lack a definition for the active configuration are grayed out.

config_A config_B
config_A config_B

```yaml

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package dispatcher

Forthcoming

0.4.2 (2026-08-31 07:32)

  • Merge pull request #3 from nasa-jpl/fix-rolling

    Fix rolling

  • add changelo update

  • use target_link_libraries instead of deprecated ament_target_dependencies

  • Contributors: Daniel Pastor

0.4.0 (2026-06-28 20:40)

  • chore: bump version to 0.4.0 [skip ci]
  • Merge pull request #1 from nasa-jpl/github-ci add actions and workflows
  • add actions and workflows
  • Contributors: Daniel Pastor, github-actions[bot]

0.3.0 (2026-06-28 20:02)

  • Merge branch 'prepare-public-release' into 'master' update license to Apache. Readme corrections. Manually bump version See merge request robotics/ros2/dispatcher!4
  • update license to Apache. Readme corrections. Manually bump version
  • Merge branch 'feature/script_categories' into 'master' Add categories to scripts See merge request robotics/ros2/dispatcher!3
  • doc image resize
  • Updated docs to mention script categories
  • Added attribution-free icons
  • categories extended to scripts
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, jongreen

0.2.0 (2026-04-24)

  • manual version bump
  • Merge branch 'improve_readme' into 'master' Improve readme See merge request robotics/ros2/dispatcher!2
  • fix tests
  • add more examples
  • add more examples with screenshots
  • make start checked optional
  • Merge branch 'casah-less' into 'master' Update to work without CASAH repos See merge request robotics/ros2/dispatcher!1
  • remove debugging prints
  • make namespace optional in config
  • add github CI
  • correct readme, add missing features
  • add function doxygen comments
  • add basic testing refactor logic for easier testing
  • fix Q_OBJECT warnings
  • fix smaller issues
    • missing regex header
    • missing h files in lib for QT to work
    • add GetTimerRate
  • use ros params
  • replace EVRs with RCLCPPs logging
  • update CMakeLists.txt
  • move headers to their own folder
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, Joseph Bowkett

0.1.5 (2026-02-08)

  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • add initial configuration param
  • Contributors: Casah Gitlab Runner, Daniel Pastor, Daniel Pastor Moreno

0.1.4 (2025-10-09)

  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Small change
  • Contributors: Casah Admin, Casah Gitlab Runner, Preston Rogers

0.1.3 (2025-06-12 04:39)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial commit See merge request casah/ros2/dispatcher!43
  • Contributors: Casah Gitlab Runner

0.1.2 (2025-06-12 03:13)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dispatcher at Robotics Stack Exchange

No version for distro crystal showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

dispatcher package from dispatcher repo

dispatcher

ROS Distro
jazzy

Package Summary

Version 0.4.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/nasa-jpl/dispatcher.git
VCS Type git
VCS Version master
Last Updated 2026-08-31
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Qt-based ROS 2 application for launching and monitoring ROS nodes and arbitrary processes.

Additional Links

Maintainers

  • Kristopher Wehage

Authors

No additional authors.

Dispatcher

A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

dispatcher

dispatcher builds its UI from a YAML file. Each configured item is launched in its own detached tmux session, and the terminal button can attach a gnome-terminal window to that session when available.

Runtime Parameters

The dispatcher executable uses the following ROS parameters:

Name Type Default Description
dispatcher_config_path string "" Path to the dispatcher YAML file.
initial_configuration string "" Configuration name to select on startup.
ssh_timeout_sec int 10 Timeout used when building remote SSH commands.
target_loop_rate_hz double 100.0 Main process/status polling rate.

YAML Configuration

The top-level dispatcher YAML supports:

Key Required Description
workspace Yes Workspace path used by ROS process items before sourcing install/setup.bash.
nodes Yes Process and category definitions rendered in the main panel.
configurations No Named runtime configurations. Each entry may be a simple name or a map with name, cmd_prefix, environment_variables, and icon.
cmd_prefix No Default command prefix for the implicit all configuration.
environment_variables No Default environment variables for the implicit all configuration.
hide_unconfigured_processes No If true, items missing in the active configuration are hidden instead of disabled.
scripts No Script button definitions shown in the scripts panel.
variables No Variable selectors used for $VARIABLE command substitution.

Node Types

Each entry in nodes can be:

  • A ROS process item. If type is omitted, the item is treated as ROS by default.
  • A shell process item with type: shell.
  • A collapsible category with type: category and an items array.

Common item fields include:

Key Description
name UI label and tmux-session base name.
cmd Command used for the implicit all configuration.
configurations Per-configuration command definitions.
start_checked Whether the item starts checked in the UI. Optional, defaults to false.
stop_tmux_cmd Stop sequence sent to tmux. Optional, defaults to C-C.
hostname / user Optional remote execution target for local commands or configuration entries.
use_cmd_prefix Enables or disables command-prefix injection.
use_environment_variables Enables or disables environment-variable injection.
attach_on_start Opens a terminal automatically after launch.

ROS process items can additionally define node_name plus an optional namespace that defaults to an empty string, or a ros_nodes array with the same monitoring fields for online-state monitoring.

Shell process items use pgrep on the item name to infer online state.

Scripts and Variables

Script entries support:

Key Description
name Button label.
cmd or configurations Script command definition.
row, column Grid placement in the scripts panel.
icon Optional Qt resource path for the button icon.
use_terminal Whether to wrap execution in gnome-terminal --.

Variable entries support:

Key Description
name Variable name used in commands, for example $FCAT_LOOP_RATE_HZ.
choices Selectable values exposed in the UI.

Examples

The following examples build incrementally from a minimal configuration to a full-featured setup. Each one corresponds to a YAML file in config/ and a screenshot in doc/.

Configurations

config/example_configurations.yaml shows the simplest multi-configuration setup. Two named configurations (config_A and config_B) control which processes are available and which commands they run. Processes that lack a definition for the active configuration are grayed out.

config_A config_B
config_A config_B

```yaml

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package dispatcher

Forthcoming

0.4.2 (2026-08-31 07:32)

  • Merge pull request #3 from nasa-jpl/fix-rolling

    Fix rolling

  • add changelo update

  • use target_link_libraries instead of deprecated ament_target_dependencies

  • Contributors: Daniel Pastor

0.4.0 (2026-06-28 20:40)

  • chore: bump version to 0.4.0 [skip ci]
  • Merge pull request #1 from nasa-jpl/github-ci add actions and workflows
  • add actions and workflows
  • Contributors: Daniel Pastor, github-actions[bot]

0.3.0 (2026-06-28 20:02)

  • Merge branch 'prepare-public-release' into 'master' update license to Apache. Readme corrections. Manually bump version See merge request robotics/ros2/dispatcher!4
  • update license to Apache. Readme corrections. Manually bump version
  • Merge branch 'feature/script_categories' into 'master' Add categories to scripts See merge request robotics/ros2/dispatcher!3
  • doc image resize
  • Updated docs to mention script categories
  • Added attribution-free icons
  • categories extended to scripts
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, jongreen

0.2.0 (2026-04-24)

  • manual version bump
  • Merge branch 'improve_readme' into 'master' Improve readme See merge request robotics/ros2/dispatcher!2
  • fix tests
  • add more examples
  • add more examples with screenshots
  • make start checked optional
  • Merge branch 'casah-less' into 'master' Update to work without CASAH repos See merge request robotics/ros2/dispatcher!1
  • remove debugging prints
  • make namespace optional in config
  • add github CI
  • correct readme, add missing features
  • add function doxygen comments
  • add basic testing refactor logic for easier testing
  • fix Q_OBJECT warnings
  • fix smaller issues
    • missing regex header
    • missing h files in lib for QT to work
    • add GetTimerRate
  • use ros params
  • replace EVRs with RCLCPPs logging
  • update CMakeLists.txt
  • move headers to their own folder
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, Joseph Bowkett

0.1.5 (2026-02-08)

  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • add initial configuration param
  • Contributors: Casah Gitlab Runner, Daniel Pastor, Daniel Pastor Moreno

0.1.4 (2025-10-09)

  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Small change
  • Contributors: Casah Admin, Casah Gitlab Runner, Preston Rogers

0.1.3 (2025-06-12 04:39)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial commit See merge request casah/ros2/dispatcher!43
  • Contributors: Casah Gitlab Runner

0.1.2 (2025-06-12 03:13)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dispatcher at Robotics Stack Exchange

No version for distro eloquent showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

dispatcher package from dispatcher repo

dispatcher

ROS Distro
jazzy

Package Summary

Version 0.4.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/nasa-jpl/dispatcher.git
VCS Type git
VCS Version master
Last Updated 2026-08-31
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Qt-based ROS 2 application for launching and monitoring ROS nodes and arbitrary processes.

Additional Links

Maintainers

  • Kristopher Wehage

Authors

No additional authors.

Dispatcher

A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

dispatcher

dispatcher builds its UI from a YAML file. Each configured item is launched in its own detached tmux session, and the terminal button can attach a gnome-terminal window to that session when available.

Runtime Parameters

The dispatcher executable uses the following ROS parameters:

Name Type Default Description
dispatcher_config_path string "" Path to the dispatcher YAML file.
initial_configuration string "" Configuration name to select on startup.
ssh_timeout_sec int 10 Timeout used when building remote SSH commands.
target_loop_rate_hz double 100.0 Main process/status polling rate.

YAML Configuration

The top-level dispatcher YAML supports:

Key Required Description
workspace Yes Workspace path used by ROS process items before sourcing install/setup.bash.
nodes Yes Process and category definitions rendered in the main panel.
configurations No Named runtime configurations. Each entry may be a simple name or a map with name, cmd_prefix, environment_variables, and icon.
cmd_prefix No Default command prefix for the implicit all configuration.
environment_variables No Default environment variables for the implicit all configuration.
hide_unconfigured_processes No If true, items missing in the active configuration are hidden instead of disabled.
scripts No Script button definitions shown in the scripts panel.
variables No Variable selectors used for $VARIABLE command substitution.

Node Types

Each entry in nodes can be:

  • A ROS process item. If type is omitted, the item is treated as ROS by default.
  • A shell process item with type: shell.
  • A collapsible category with type: category and an items array.

Common item fields include:

Key Description
name UI label and tmux-session base name.
cmd Command used for the implicit all configuration.
configurations Per-configuration command definitions.
start_checked Whether the item starts checked in the UI. Optional, defaults to false.
stop_tmux_cmd Stop sequence sent to tmux. Optional, defaults to C-C.
hostname / user Optional remote execution target for local commands or configuration entries.
use_cmd_prefix Enables or disables command-prefix injection.
use_environment_variables Enables or disables environment-variable injection.
attach_on_start Opens a terminal automatically after launch.

ROS process items can additionally define node_name plus an optional namespace that defaults to an empty string, or a ros_nodes array with the same monitoring fields for online-state monitoring.

Shell process items use pgrep on the item name to infer online state.

Scripts and Variables

Script entries support:

Key Description
name Button label.
cmd or configurations Script command definition.
row, column Grid placement in the scripts panel.
icon Optional Qt resource path for the button icon.
use_terminal Whether to wrap execution in gnome-terminal --.

Variable entries support:

Key Description
name Variable name used in commands, for example $FCAT_LOOP_RATE_HZ.
choices Selectable values exposed in the UI.

Examples

The following examples build incrementally from a minimal configuration to a full-featured setup. Each one corresponds to a YAML file in config/ and a screenshot in doc/.

Configurations

config/example_configurations.yaml shows the simplest multi-configuration setup. Two named configurations (config_A and config_B) control which processes are available and which commands they run. Processes that lack a definition for the active configuration are grayed out.

config_A config_B
config_A config_B

```yaml

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package dispatcher

Forthcoming

0.4.2 (2026-08-31 07:32)

  • Merge pull request #3 from nasa-jpl/fix-rolling

    Fix rolling

  • add changelo update

  • use target_link_libraries instead of deprecated ament_target_dependencies

  • Contributors: Daniel Pastor

0.4.0 (2026-06-28 20:40)

  • chore: bump version to 0.4.0 [skip ci]
  • Merge pull request #1 from nasa-jpl/github-ci add actions and workflows
  • add actions and workflows
  • Contributors: Daniel Pastor, github-actions[bot]

0.3.0 (2026-06-28 20:02)

  • Merge branch 'prepare-public-release' into 'master' update license to Apache. Readme corrections. Manually bump version See merge request robotics/ros2/dispatcher!4
  • update license to Apache. Readme corrections. Manually bump version
  • Merge branch 'feature/script_categories' into 'master' Add categories to scripts See merge request robotics/ros2/dispatcher!3
  • doc image resize
  • Updated docs to mention script categories
  • Added attribution-free icons
  • categories extended to scripts
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, jongreen

0.2.0 (2026-04-24)

  • manual version bump
  • Merge branch 'improve_readme' into 'master' Improve readme See merge request robotics/ros2/dispatcher!2
  • fix tests
  • add more examples
  • add more examples with screenshots
  • make start checked optional
  • Merge branch 'casah-less' into 'master' Update to work without CASAH repos See merge request robotics/ros2/dispatcher!1
  • remove debugging prints
  • make namespace optional in config
  • add github CI
  • correct readme, add missing features
  • add function doxygen comments
  • add basic testing refactor logic for easier testing
  • fix Q_OBJECT warnings
  • fix smaller issues
    • missing regex header
    • missing h files in lib for QT to work
    • add GetTimerRate
  • use ros params
  • replace EVRs with RCLCPPs logging
  • update CMakeLists.txt
  • move headers to their own folder
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, Joseph Bowkett

0.1.5 (2026-02-08)

  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • add initial configuration param
  • Contributors: Casah Gitlab Runner, Daniel Pastor, Daniel Pastor Moreno

0.1.4 (2025-10-09)

  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Small change
  • Contributors: Casah Admin, Casah Gitlab Runner, Preston Rogers

0.1.3 (2025-06-12 04:39)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial commit See merge request casah/ros2/dispatcher!43
  • Contributors: Casah Gitlab Runner

0.1.2 (2025-06-12 03:13)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dispatcher at Robotics Stack Exchange

No version for distro dashing showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

dispatcher package from dispatcher repo

dispatcher

ROS Distro
jazzy

Package Summary

Version 0.4.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/nasa-jpl/dispatcher.git
VCS Type git
VCS Version master
Last Updated 2026-08-31
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Qt-based ROS 2 application for launching and monitoring ROS nodes and arbitrary processes.

Additional Links

Maintainers

  • Kristopher Wehage

Authors

No additional authors.

Dispatcher

A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

dispatcher

dispatcher builds its UI from a YAML file. Each configured item is launched in its own detached tmux session, and the terminal button can attach a gnome-terminal window to that session when available.

Runtime Parameters

The dispatcher executable uses the following ROS parameters:

Name Type Default Description
dispatcher_config_path string "" Path to the dispatcher YAML file.
initial_configuration string "" Configuration name to select on startup.
ssh_timeout_sec int 10 Timeout used when building remote SSH commands.
target_loop_rate_hz double 100.0 Main process/status polling rate.

YAML Configuration

The top-level dispatcher YAML supports:

Key Required Description
workspace Yes Workspace path used by ROS process items before sourcing install/setup.bash.
nodes Yes Process and category definitions rendered in the main panel.
configurations No Named runtime configurations. Each entry may be a simple name or a map with name, cmd_prefix, environment_variables, and icon.
cmd_prefix No Default command prefix for the implicit all configuration.
environment_variables No Default environment variables for the implicit all configuration.
hide_unconfigured_processes No If true, items missing in the active configuration are hidden instead of disabled.
scripts No Script button definitions shown in the scripts panel.
variables No Variable selectors used for $VARIABLE command substitution.

Node Types

Each entry in nodes can be:

  • A ROS process item. If type is omitted, the item is treated as ROS by default.
  • A shell process item with type: shell.
  • A collapsible category with type: category and an items array.

Common item fields include:

Key Description
name UI label and tmux-session base name.
cmd Command used for the implicit all configuration.
configurations Per-configuration command definitions.
start_checked Whether the item starts checked in the UI. Optional, defaults to false.
stop_tmux_cmd Stop sequence sent to tmux. Optional, defaults to C-C.
hostname / user Optional remote execution target for local commands or configuration entries.
use_cmd_prefix Enables or disables command-prefix injection.
use_environment_variables Enables or disables environment-variable injection.
attach_on_start Opens a terminal automatically after launch.

ROS process items can additionally define node_name plus an optional namespace that defaults to an empty string, or a ros_nodes array with the same monitoring fields for online-state monitoring.

Shell process items use pgrep on the item name to infer online state.

Scripts and Variables

Script entries support:

Key Description
name Button label.
cmd or configurations Script command definition.
row, column Grid placement in the scripts panel.
icon Optional Qt resource path for the button icon.
use_terminal Whether to wrap execution in gnome-terminal --.

Variable entries support:

Key Description
name Variable name used in commands, for example $FCAT_LOOP_RATE_HZ.
choices Selectable values exposed in the UI.

Examples

The following examples build incrementally from a minimal configuration to a full-featured setup. Each one corresponds to a YAML file in config/ and a screenshot in doc/.

Configurations

config/example_configurations.yaml shows the simplest multi-configuration setup. Two named configurations (config_A and config_B) control which processes are available and which commands they run. Processes that lack a definition for the active configuration are grayed out.

config_A config_B
config_A config_B

```yaml

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package dispatcher

Forthcoming

0.4.2 (2026-08-31 07:32)

  • Merge pull request #3 from nasa-jpl/fix-rolling

    Fix rolling

  • add changelo update

  • use target_link_libraries instead of deprecated ament_target_dependencies

  • Contributors: Daniel Pastor

0.4.0 (2026-06-28 20:40)

  • chore: bump version to 0.4.0 [skip ci]
  • Merge pull request #1 from nasa-jpl/github-ci add actions and workflows
  • add actions and workflows
  • Contributors: Daniel Pastor, github-actions[bot]

0.3.0 (2026-06-28 20:02)

  • Merge branch 'prepare-public-release' into 'master' update license to Apache. Readme corrections. Manually bump version See merge request robotics/ros2/dispatcher!4
  • update license to Apache. Readme corrections. Manually bump version
  • Merge branch 'feature/script_categories' into 'master' Add categories to scripts See merge request robotics/ros2/dispatcher!3
  • doc image resize
  • Updated docs to mention script categories
  • Added attribution-free icons
  • categories extended to scripts
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, jongreen

0.2.0 (2026-04-24)

  • manual version bump
  • Merge branch 'improve_readme' into 'master' Improve readme See merge request robotics/ros2/dispatcher!2
  • fix tests
  • add more examples
  • add more examples with screenshots
  • make start checked optional
  • Merge branch 'casah-less' into 'master' Update to work without CASAH repos See merge request robotics/ros2/dispatcher!1
  • remove debugging prints
  • make namespace optional in config
  • add github CI
  • correct readme, add missing features
  • add function doxygen comments
  • add basic testing refactor logic for easier testing
  • fix Q_OBJECT warnings
  • fix smaller issues
    • missing regex header
    • missing h files in lib for QT to work
    • add GetTimerRate
  • use ros params
  • replace EVRs with RCLCPPs logging
  • update CMakeLists.txt
  • move headers to their own folder
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, Joseph Bowkett

0.1.5 (2026-02-08)

  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • add initial configuration param
  • Contributors: Casah Gitlab Runner, Daniel Pastor, Daniel Pastor Moreno

0.1.4 (2025-10-09)

  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Small change
  • Contributors: Casah Admin, Casah Gitlab Runner, Preston Rogers

0.1.3 (2025-06-12 04:39)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial commit See merge request casah/ros2/dispatcher!43
  • Contributors: Casah Gitlab Runner

0.1.2 (2025-06-12 03:13)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dispatcher at Robotics Stack Exchange

No version for distro galactic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

dispatcher package from dispatcher repo

dispatcher

ROS Distro
jazzy

Package Summary

Version 0.4.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/nasa-jpl/dispatcher.git
VCS Type git
VCS Version master
Last Updated 2026-08-31
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Qt-based ROS 2 application for launching and monitoring ROS nodes and arbitrary processes.

Additional Links

Maintainers

  • Kristopher Wehage

Authors

No additional authors.

Dispatcher

A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

dispatcher

dispatcher builds its UI from a YAML file. Each configured item is launched in its own detached tmux session, and the terminal button can attach a gnome-terminal window to that session when available.

Runtime Parameters

The dispatcher executable uses the following ROS parameters:

Name Type Default Description
dispatcher_config_path string "" Path to the dispatcher YAML file.
initial_configuration string "" Configuration name to select on startup.
ssh_timeout_sec int 10 Timeout used when building remote SSH commands.
target_loop_rate_hz double 100.0 Main process/status polling rate.

YAML Configuration

The top-level dispatcher YAML supports:

Key Required Description
workspace Yes Workspace path used by ROS process items before sourcing install/setup.bash.
nodes Yes Process and category definitions rendered in the main panel.
configurations No Named runtime configurations. Each entry may be a simple name or a map with name, cmd_prefix, environment_variables, and icon.
cmd_prefix No Default command prefix for the implicit all configuration.
environment_variables No Default environment variables for the implicit all configuration.
hide_unconfigured_processes No If true, items missing in the active configuration are hidden instead of disabled.
scripts No Script button definitions shown in the scripts panel.
variables No Variable selectors used for $VARIABLE command substitution.

Node Types

Each entry in nodes can be:

  • A ROS process item. If type is omitted, the item is treated as ROS by default.
  • A shell process item with type: shell.
  • A collapsible category with type: category and an items array.

Common item fields include:

Key Description
name UI label and tmux-session base name.
cmd Command used for the implicit all configuration.
configurations Per-configuration command definitions.
start_checked Whether the item starts checked in the UI. Optional, defaults to false.
stop_tmux_cmd Stop sequence sent to tmux. Optional, defaults to C-C.
hostname / user Optional remote execution target for local commands or configuration entries.
use_cmd_prefix Enables or disables command-prefix injection.
use_environment_variables Enables or disables environment-variable injection.
attach_on_start Opens a terminal automatically after launch.

ROS process items can additionally define node_name plus an optional namespace that defaults to an empty string, or a ros_nodes array with the same monitoring fields for online-state monitoring.

Shell process items use pgrep on the item name to infer online state.

Scripts and Variables

Script entries support:

Key Description
name Button label.
cmd or configurations Script command definition.
row, column Grid placement in the scripts panel.
icon Optional Qt resource path for the button icon.
use_terminal Whether to wrap execution in gnome-terminal --.

Variable entries support:

Key Description
name Variable name used in commands, for example $FCAT_LOOP_RATE_HZ.
choices Selectable values exposed in the UI.

Examples

The following examples build incrementally from a minimal configuration to a full-featured setup. Each one corresponds to a YAML file in config/ and a screenshot in doc/.

Configurations

config/example_configurations.yaml shows the simplest multi-configuration setup. Two named configurations (config_A and config_B) control which processes are available and which commands they run. Processes that lack a definition for the active configuration are grayed out.

config_A config_B
config_A config_B

```yaml

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package dispatcher

Forthcoming

0.4.2 (2026-08-31 07:32)

  • Merge pull request #3 from nasa-jpl/fix-rolling

    Fix rolling

  • add changelo update

  • use target_link_libraries instead of deprecated ament_target_dependencies

  • Contributors: Daniel Pastor

0.4.0 (2026-06-28 20:40)

  • chore: bump version to 0.4.0 [skip ci]
  • Merge pull request #1 from nasa-jpl/github-ci add actions and workflows
  • add actions and workflows
  • Contributors: Daniel Pastor, github-actions[bot]

0.3.0 (2026-06-28 20:02)

  • Merge branch 'prepare-public-release' into 'master' update license to Apache. Readme corrections. Manually bump version See merge request robotics/ros2/dispatcher!4
  • update license to Apache. Readme corrections. Manually bump version
  • Merge branch 'feature/script_categories' into 'master' Add categories to scripts See merge request robotics/ros2/dispatcher!3
  • doc image resize
  • Updated docs to mention script categories
  • Added attribution-free icons
  • categories extended to scripts
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, jongreen

0.2.0 (2026-04-24)

  • manual version bump
  • Merge branch 'improve_readme' into 'master' Improve readme See merge request robotics/ros2/dispatcher!2
  • fix tests
  • add more examples
  • add more examples with screenshots
  • make start checked optional
  • Merge branch 'casah-less' into 'master' Update to work without CASAH repos See merge request robotics/ros2/dispatcher!1
  • remove debugging prints
  • make namespace optional in config
  • add github CI
  • correct readme, add missing features
  • add function doxygen comments
  • add basic testing refactor logic for easier testing
  • fix Q_OBJECT warnings
  • fix smaller issues
    • missing regex header
    • missing h files in lib for QT to work
    • add GetTimerRate
  • use ros params
  • replace EVRs with RCLCPPs logging
  • update CMakeLists.txt
  • move headers to their own folder
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, Joseph Bowkett

0.1.5 (2026-02-08)

  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • add initial configuration param
  • Contributors: Casah Gitlab Runner, Daniel Pastor, Daniel Pastor Moreno

0.1.4 (2025-10-09)

  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Small change
  • Contributors: Casah Admin, Casah Gitlab Runner, Preston Rogers

0.1.3 (2025-06-12 04:39)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial commit See merge request casah/ros2/dispatcher!43
  • Contributors: Casah Gitlab Runner

0.1.2 (2025-06-12 03:13)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dispatcher at Robotics Stack Exchange

No version for distro foxy showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

dispatcher package from dispatcher repo

dispatcher

ROS Distro
jazzy

Package Summary

Version 0.4.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/nasa-jpl/dispatcher.git
VCS Type git
VCS Version master
Last Updated 2026-08-31
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Qt-based ROS 2 application for launching and monitoring ROS nodes and arbitrary processes.

Additional Links

Maintainers

  • Kristopher Wehage

Authors

No additional authors.

Dispatcher

A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

dispatcher

dispatcher builds its UI from a YAML file. Each configured item is launched in its own detached tmux session, and the terminal button can attach a gnome-terminal window to that session when available.

Runtime Parameters

The dispatcher executable uses the following ROS parameters:

Name Type Default Description
dispatcher_config_path string "" Path to the dispatcher YAML file.
initial_configuration string "" Configuration name to select on startup.
ssh_timeout_sec int 10 Timeout used when building remote SSH commands.
target_loop_rate_hz double 100.0 Main process/status polling rate.

YAML Configuration

The top-level dispatcher YAML supports:

Key Required Description
workspace Yes Workspace path used by ROS process items before sourcing install/setup.bash.
nodes Yes Process and category definitions rendered in the main panel.
configurations No Named runtime configurations. Each entry may be a simple name or a map with name, cmd_prefix, environment_variables, and icon.
cmd_prefix No Default command prefix for the implicit all configuration.
environment_variables No Default environment variables for the implicit all configuration.
hide_unconfigured_processes No If true, items missing in the active configuration are hidden instead of disabled.
scripts No Script button definitions shown in the scripts panel.
variables No Variable selectors used for $VARIABLE command substitution.

Node Types

Each entry in nodes can be:

  • A ROS process item. If type is omitted, the item is treated as ROS by default.
  • A shell process item with type: shell.
  • A collapsible category with type: category and an items array.

Common item fields include:

Key Description
name UI label and tmux-session base name.
cmd Command used for the implicit all configuration.
configurations Per-configuration command definitions.
start_checked Whether the item starts checked in the UI. Optional, defaults to false.
stop_tmux_cmd Stop sequence sent to tmux. Optional, defaults to C-C.
hostname / user Optional remote execution target for local commands or configuration entries.
use_cmd_prefix Enables or disables command-prefix injection.
use_environment_variables Enables or disables environment-variable injection.
attach_on_start Opens a terminal automatically after launch.

ROS process items can additionally define node_name plus an optional namespace that defaults to an empty string, or a ros_nodes array with the same monitoring fields for online-state monitoring.

Shell process items use pgrep on the item name to infer online state.

Scripts and Variables

Script entries support:

Key Description
name Button label.
cmd or configurations Script command definition.
row, column Grid placement in the scripts panel.
icon Optional Qt resource path for the button icon.
use_terminal Whether to wrap execution in gnome-terminal --.

Variable entries support:

Key Description
name Variable name used in commands, for example $FCAT_LOOP_RATE_HZ.
choices Selectable values exposed in the UI.

Examples

The following examples build incrementally from a minimal configuration to a full-featured setup. Each one corresponds to a YAML file in config/ and a screenshot in doc/.

Configurations

config/example_configurations.yaml shows the simplest multi-configuration setup. Two named configurations (config_A and config_B) control which processes are available and which commands they run. Processes that lack a definition for the active configuration are grayed out.

config_A config_B
config_A config_B

```yaml

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package dispatcher

Forthcoming

0.4.2 (2026-08-31 07:32)

  • Merge pull request #3 from nasa-jpl/fix-rolling

    Fix rolling

  • add changelo update

  • use target_link_libraries instead of deprecated ament_target_dependencies

  • Contributors: Daniel Pastor

0.4.0 (2026-06-28 20:40)

  • chore: bump version to 0.4.0 [skip ci]
  • Merge pull request #1 from nasa-jpl/github-ci add actions and workflows
  • add actions and workflows
  • Contributors: Daniel Pastor, github-actions[bot]

0.3.0 (2026-06-28 20:02)

  • Merge branch 'prepare-public-release' into 'master' update license to Apache. Readme corrections. Manually bump version See merge request robotics/ros2/dispatcher!4
  • update license to Apache. Readme corrections. Manually bump version
  • Merge branch 'feature/script_categories' into 'master' Add categories to scripts See merge request robotics/ros2/dispatcher!3
  • doc image resize
  • Updated docs to mention script categories
  • Added attribution-free icons
  • categories extended to scripts
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, jongreen

0.2.0 (2026-04-24)

  • manual version bump
  • Merge branch 'improve_readme' into 'master' Improve readme See merge request robotics/ros2/dispatcher!2
  • fix tests
  • add more examples
  • add more examples with screenshots
  • make start checked optional
  • Merge branch 'casah-less' into 'master' Update to work without CASAH repos See merge request robotics/ros2/dispatcher!1
  • remove debugging prints
  • make namespace optional in config
  • add github CI
  • correct readme, add missing features
  • add function doxygen comments
  • add basic testing refactor logic for easier testing
  • fix Q_OBJECT warnings
  • fix smaller issues
    • missing regex header
    • missing h files in lib for QT to work
    • add GetTimerRate
  • use ros params
  • replace EVRs with RCLCPPs logging
  • update CMakeLists.txt
  • move headers to their own folder
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, Joseph Bowkett

0.1.5 (2026-02-08)

  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • add initial configuration param
  • Contributors: Casah Gitlab Runner, Daniel Pastor, Daniel Pastor Moreno

0.1.4 (2025-10-09)

  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Small change
  • Contributors: Casah Admin, Casah Gitlab Runner, Preston Rogers

0.1.3 (2025-06-12 04:39)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial commit See merge request casah/ros2/dispatcher!43
  • Contributors: Casah Gitlab Runner

0.1.2 (2025-06-12 03:13)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dispatcher at Robotics Stack Exchange

No version for distro iron showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

dispatcher package from dispatcher repo

dispatcher

ROS Distro
jazzy

Package Summary

Version 0.4.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/nasa-jpl/dispatcher.git
VCS Type git
VCS Version master
Last Updated 2026-08-31
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Qt-based ROS 2 application for launching and monitoring ROS nodes and arbitrary processes.

Additional Links

Maintainers

  • Kristopher Wehage

Authors

No additional authors.

Dispatcher

A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

dispatcher

dispatcher builds its UI from a YAML file. Each configured item is launched in its own detached tmux session, and the terminal button can attach a gnome-terminal window to that session when available.

Runtime Parameters

The dispatcher executable uses the following ROS parameters:

Name Type Default Description
dispatcher_config_path string "" Path to the dispatcher YAML file.
initial_configuration string "" Configuration name to select on startup.
ssh_timeout_sec int 10 Timeout used when building remote SSH commands.
target_loop_rate_hz double 100.0 Main process/status polling rate.

YAML Configuration

The top-level dispatcher YAML supports:

Key Required Description
workspace Yes Workspace path used by ROS process items before sourcing install/setup.bash.
nodes Yes Process and category definitions rendered in the main panel.
configurations No Named runtime configurations. Each entry may be a simple name or a map with name, cmd_prefix, environment_variables, and icon.
cmd_prefix No Default command prefix for the implicit all configuration.
environment_variables No Default environment variables for the implicit all configuration.
hide_unconfigured_processes No If true, items missing in the active configuration are hidden instead of disabled.
scripts No Script button definitions shown in the scripts panel.
variables No Variable selectors used for $VARIABLE command substitution.

Node Types

Each entry in nodes can be:

  • A ROS process item. If type is omitted, the item is treated as ROS by default.
  • A shell process item with type: shell.
  • A collapsible category with type: category and an items array.

Common item fields include:

Key Description
name UI label and tmux-session base name.
cmd Command used for the implicit all configuration.
configurations Per-configuration command definitions.
start_checked Whether the item starts checked in the UI. Optional, defaults to false.
stop_tmux_cmd Stop sequence sent to tmux. Optional, defaults to C-C.
hostname / user Optional remote execution target for local commands or configuration entries.
use_cmd_prefix Enables or disables command-prefix injection.
use_environment_variables Enables or disables environment-variable injection.
attach_on_start Opens a terminal automatically after launch.

ROS process items can additionally define node_name plus an optional namespace that defaults to an empty string, or a ros_nodes array with the same monitoring fields for online-state monitoring.

Shell process items use pgrep on the item name to infer online state.

Scripts and Variables

Script entries support:

Key Description
name Button label.
cmd or configurations Script command definition.
row, column Grid placement in the scripts panel.
icon Optional Qt resource path for the button icon.
use_terminal Whether to wrap execution in gnome-terminal --.

Variable entries support:

Key Description
name Variable name used in commands, for example $FCAT_LOOP_RATE_HZ.
choices Selectable values exposed in the UI.

Examples

The following examples build incrementally from a minimal configuration to a full-featured setup. Each one corresponds to a YAML file in config/ and a screenshot in doc/.

Configurations

config/example_configurations.yaml shows the simplest multi-configuration setup. Two named configurations (config_A and config_B) control which processes are available and which commands they run. Processes that lack a definition for the active configuration are grayed out.

config_A config_B
config_A config_B

```yaml

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package dispatcher

Forthcoming

0.4.2 (2026-08-31 07:32)

  • Merge pull request #3 from nasa-jpl/fix-rolling

    Fix rolling

  • add changelo update

  • use target_link_libraries instead of deprecated ament_target_dependencies

  • Contributors: Daniel Pastor

0.4.0 (2026-06-28 20:40)

  • chore: bump version to 0.4.0 [skip ci]
  • Merge pull request #1 from nasa-jpl/github-ci add actions and workflows
  • add actions and workflows
  • Contributors: Daniel Pastor, github-actions[bot]

0.3.0 (2026-06-28 20:02)

  • Merge branch 'prepare-public-release' into 'master' update license to Apache. Readme corrections. Manually bump version See merge request robotics/ros2/dispatcher!4
  • update license to Apache. Readme corrections. Manually bump version
  • Merge branch 'feature/script_categories' into 'master' Add categories to scripts See merge request robotics/ros2/dispatcher!3
  • doc image resize
  • Updated docs to mention script categories
  • Added attribution-free icons
  • categories extended to scripts
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, jongreen

0.2.0 (2026-04-24)

  • manual version bump
  • Merge branch 'improve_readme' into 'master' Improve readme See merge request robotics/ros2/dispatcher!2
  • fix tests
  • add more examples
  • add more examples with screenshots
  • make start checked optional
  • Merge branch 'casah-less' into 'master' Update to work without CASAH repos See merge request robotics/ros2/dispatcher!1
  • remove debugging prints
  • make namespace optional in config
  • add github CI
  • correct readme, add missing features
  • add function doxygen comments
  • add basic testing refactor logic for easier testing
  • fix Q_OBJECT warnings
  • fix smaller issues
    • missing regex header
    • missing h files in lib for QT to work
    • add GetTimerRate
  • use ros params
  • replace EVRs with RCLCPPs logging
  • update CMakeLists.txt
  • move headers to their own folder
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, Joseph Bowkett

0.1.5 (2026-02-08)

  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • add initial configuration param
  • Contributors: Casah Gitlab Runner, Daniel Pastor, Daniel Pastor Moreno

0.1.4 (2025-10-09)

  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Small change
  • Contributors: Casah Admin, Casah Gitlab Runner, Preston Rogers

0.1.3 (2025-06-12 04:39)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial commit See merge request casah/ros2/dispatcher!43
  • Contributors: Casah Gitlab Runner

0.1.2 (2025-06-12 03:13)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dispatcher at Robotics Stack Exchange

No version for distro lunar showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

dispatcher package from dispatcher repo

dispatcher

ROS Distro
jazzy

Package Summary

Version 0.4.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/nasa-jpl/dispatcher.git
VCS Type git
VCS Version master
Last Updated 2026-08-31
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Qt-based ROS 2 application for launching and monitoring ROS nodes and arbitrary processes.

Additional Links

Maintainers

  • Kristopher Wehage

Authors

No additional authors.

Dispatcher

A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

dispatcher

dispatcher builds its UI from a YAML file. Each configured item is launched in its own detached tmux session, and the terminal button can attach a gnome-terminal window to that session when available.

Runtime Parameters

The dispatcher executable uses the following ROS parameters:

Name Type Default Description
dispatcher_config_path string "" Path to the dispatcher YAML file.
initial_configuration string "" Configuration name to select on startup.
ssh_timeout_sec int 10 Timeout used when building remote SSH commands.
target_loop_rate_hz double 100.0 Main process/status polling rate.

YAML Configuration

The top-level dispatcher YAML supports:

Key Required Description
workspace Yes Workspace path used by ROS process items before sourcing install/setup.bash.
nodes Yes Process and category definitions rendered in the main panel.
configurations No Named runtime configurations. Each entry may be a simple name or a map with name, cmd_prefix, environment_variables, and icon.
cmd_prefix No Default command prefix for the implicit all configuration.
environment_variables No Default environment variables for the implicit all configuration.
hide_unconfigured_processes No If true, items missing in the active configuration are hidden instead of disabled.
scripts No Script button definitions shown in the scripts panel.
variables No Variable selectors used for $VARIABLE command substitution.

Node Types

Each entry in nodes can be:

  • A ROS process item. If type is omitted, the item is treated as ROS by default.
  • A shell process item with type: shell.
  • A collapsible category with type: category and an items array.

Common item fields include:

Key Description
name UI label and tmux-session base name.
cmd Command used for the implicit all configuration.
configurations Per-configuration command definitions.
start_checked Whether the item starts checked in the UI. Optional, defaults to false.
stop_tmux_cmd Stop sequence sent to tmux. Optional, defaults to C-C.
hostname / user Optional remote execution target for local commands or configuration entries.
use_cmd_prefix Enables or disables command-prefix injection.
use_environment_variables Enables or disables environment-variable injection.
attach_on_start Opens a terminal automatically after launch.

ROS process items can additionally define node_name plus an optional namespace that defaults to an empty string, or a ros_nodes array with the same monitoring fields for online-state monitoring.

Shell process items use pgrep on the item name to infer online state.

Scripts and Variables

Script entries support:

Key Description
name Button label.
cmd or configurations Script command definition.
row, column Grid placement in the scripts panel.
icon Optional Qt resource path for the button icon.
use_terminal Whether to wrap execution in gnome-terminal --.

Variable entries support:

Key Description
name Variable name used in commands, for example $FCAT_LOOP_RATE_HZ.
choices Selectable values exposed in the UI.

Examples

The following examples build incrementally from a minimal configuration to a full-featured setup. Each one corresponds to a YAML file in config/ and a screenshot in doc/.

Configurations

config/example_configurations.yaml shows the simplest multi-configuration setup. Two named configurations (config_A and config_B) control which processes are available and which commands they run. Processes that lack a definition for the active configuration are grayed out.

config_A config_B
config_A config_B

```yaml

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package dispatcher

Forthcoming

0.4.2 (2026-08-31 07:32)

  • Merge pull request #3 from nasa-jpl/fix-rolling

    Fix rolling

  • add changelo update

  • use target_link_libraries instead of deprecated ament_target_dependencies

  • Contributors: Daniel Pastor

0.4.0 (2026-06-28 20:40)

  • chore: bump version to 0.4.0 [skip ci]
  • Merge pull request #1 from nasa-jpl/github-ci add actions and workflows
  • add actions and workflows
  • Contributors: Daniel Pastor, github-actions[bot]

0.3.0 (2026-06-28 20:02)

  • Merge branch 'prepare-public-release' into 'master' update license to Apache. Readme corrections. Manually bump version See merge request robotics/ros2/dispatcher!4
  • update license to Apache. Readme corrections. Manually bump version
  • Merge branch 'feature/script_categories' into 'master' Add categories to scripts See merge request robotics/ros2/dispatcher!3
  • doc image resize
  • Updated docs to mention script categories
  • Added attribution-free icons
  • categories extended to scripts
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, jongreen

0.2.0 (2026-04-24)

  • manual version bump
  • Merge branch 'improve_readme' into 'master' Improve readme See merge request robotics/ros2/dispatcher!2
  • fix tests
  • add more examples
  • add more examples with screenshots
  • make start checked optional
  • Merge branch 'casah-less' into 'master' Update to work without CASAH repos See merge request robotics/ros2/dispatcher!1
  • remove debugging prints
  • make namespace optional in config
  • add github CI
  • correct readme, add missing features
  • add function doxygen comments
  • add basic testing refactor logic for easier testing
  • fix Q_OBJECT warnings
  • fix smaller issues
    • missing regex header
    • missing h files in lib for QT to work
    • add GetTimerRate
  • use ros params
  • replace EVRs with RCLCPPs logging
  • update CMakeLists.txt
  • move headers to their own folder
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, Joseph Bowkett

0.1.5 (2026-02-08)

  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • add initial configuration param
  • Contributors: Casah Gitlab Runner, Daniel Pastor, Daniel Pastor Moreno

0.1.4 (2025-10-09)

  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Small change
  • Contributors: Casah Admin, Casah Gitlab Runner, Preston Rogers

0.1.3 (2025-06-12 04:39)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial commit See merge request casah/ros2/dispatcher!43
  • Contributors: Casah Gitlab Runner

0.1.2 (2025-06-12 03:13)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dispatcher at Robotics Stack Exchange

No version for distro jade showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

dispatcher package from dispatcher repo

dispatcher

ROS Distro
jazzy

Package Summary

Version 0.4.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/nasa-jpl/dispatcher.git
VCS Type git
VCS Version master
Last Updated 2026-08-31
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Qt-based ROS 2 application for launching and monitoring ROS nodes and arbitrary processes.

Additional Links

Maintainers

  • Kristopher Wehage

Authors

No additional authors.

Dispatcher

A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

dispatcher

dispatcher builds its UI from a YAML file. Each configured item is launched in its own detached tmux session, and the terminal button can attach a gnome-terminal window to that session when available.

Runtime Parameters

The dispatcher executable uses the following ROS parameters:

Name Type Default Description
dispatcher_config_path string "" Path to the dispatcher YAML file.
initial_configuration string "" Configuration name to select on startup.
ssh_timeout_sec int 10 Timeout used when building remote SSH commands.
target_loop_rate_hz double 100.0 Main process/status polling rate.

YAML Configuration

The top-level dispatcher YAML supports:

Key Required Description
workspace Yes Workspace path used by ROS process items before sourcing install/setup.bash.
nodes Yes Process and category definitions rendered in the main panel.
configurations No Named runtime configurations. Each entry may be a simple name or a map with name, cmd_prefix, environment_variables, and icon.
cmd_prefix No Default command prefix for the implicit all configuration.
environment_variables No Default environment variables for the implicit all configuration.
hide_unconfigured_processes No If true, items missing in the active configuration are hidden instead of disabled.
scripts No Script button definitions shown in the scripts panel.
variables No Variable selectors used for $VARIABLE command substitution.

Node Types

Each entry in nodes can be:

  • A ROS process item. If type is omitted, the item is treated as ROS by default.
  • A shell process item with type: shell.
  • A collapsible category with type: category and an items array.

Common item fields include:

Key Description
name UI label and tmux-session base name.
cmd Command used for the implicit all configuration.
configurations Per-configuration command definitions.
start_checked Whether the item starts checked in the UI. Optional, defaults to false.
stop_tmux_cmd Stop sequence sent to tmux. Optional, defaults to C-C.
hostname / user Optional remote execution target for local commands or configuration entries.
use_cmd_prefix Enables or disables command-prefix injection.
use_environment_variables Enables or disables environment-variable injection.
attach_on_start Opens a terminal automatically after launch.

ROS process items can additionally define node_name plus an optional namespace that defaults to an empty string, or a ros_nodes array with the same monitoring fields for online-state monitoring.

Shell process items use pgrep on the item name to infer online state.

Scripts and Variables

Script entries support:

Key Description
name Button label.
cmd or configurations Script command definition.
row, column Grid placement in the scripts panel.
icon Optional Qt resource path for the button icon.
use_terminal Whether to wrap execution in gnome-terminal --.

Variable entries support:

Key Description
name Variable name used in commands, for example $FCAT_LOOP_RATE_HZ.
choices Selectable values exposed in the UI.

Examples

The following examples build incrementally from a minimal configuration to a full-featured setup. Each one corresponds to a YAML file in config/ and a screenshot in doc/.

Configurations

config/example_configurations.yaml shows the simplest multi-configuration setup. Two named configurations (config_A and config_B) control which processes are available and which commands they run. Processes that lack a definition for the active configuration are grayed out.

config_A config_B
config_A config_B

```yaml

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package dispatcher

Forthcoming

0.4.2 (2026-08-31 07:32)

  • Merge pull request #3 from nasa-jpl/fix-rolling

    Fix rolling

  • add changelo update

  • use target_link_libraries instead of deprecated ament_target_dependencies

  • Contributors: Daniel Pastor

0.4.0 (2026-06-28 20:40)

  • chore: bump version to 0.4.0 [skip ci]
  • Merge pull request #1 from nasa-jpl/github-ci add actions and workflows
  • add actions and workflows
  • Contributors: Daniel Pastor, github-actions[bot]

0.3.0 (2026-06-28 20:02)

  • Merge branch 'prepare-public-release' into 'master' update license to Apache. Readme corrections. Manually bump version See merge request robotics/ros2/dispatcher!4
  • update license to Apache. Readme corrections. Manually bump version
  • Merge branch 'feature/script_categories' into 'master' Add categories to scripts See merge request robotics/ros2/dispatcher!3
  • doc image resize
  • Updated docs to mention script categories
  • Added attribution-free icons
  • categories extended to scripts
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, jongreen

0.2.0 (2026-04-24)

  • manual version bump
  • Merge branch 'improve_readme' into 'master' Improve readme See merge request robotics/ros2/dispatcher!2
  • fix tests
  • add more examples
  • add more examples with screenshots
  • make start checked optional
  • Merge branch 'casah-less' into 'master' Update to work without CASAH repos See merge request robotics/ros2/dispatcher!1
  • remove debugging prints
  • make namespace optional in config
  • add github CI
  • correct readme, add missing features
  • add function doxygen comments
  • add basic testing refactor logic for easier testing
  • fix Q_OBJECT warnings
  • fix smaller issues
    • missing regex header
    • missing h files in lib for QT to work
    • add GetTimerRate
  • use ros params
  • replace EVRs with RCLCPPs logging
  • update CMakeLists.txt
  • move headers to their own folder
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, Joseph Bowkett

0.1.5 (2026-02-08)

  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • add initial configuration param
  • Contributors: Casah Gitlab Runner, Daniel Pastor, Daniel Pastor Moreno

0.1.4 (2025-10-09)

  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Small change
  • Contributors: Casah Admin, Casah Gitlab Runner, Preston Rogers

0.1.3 (2025-06-12 04:39)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial commit See merge request casah/ros2/dispatcher!43
  • Contributors: Casah Gitlab Runner

0.1.2 (2025-06-12 03:13)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dispatcher at Robotics Stack Exchange

No version for distro indigo showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

dispatcher package from dispatcher repo

dispatcher

ROS Distro
jazzy

Package Summary

Version 0.4.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/nasa-jpl/dispatcher.git
VCS Type git
VCS Version master
Last Updated 2026-08-31
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Qt-based ROS 2 application for launching and monitoring ROS nodes and arbitrary processes.

Additional Links

Maintainers

  • Kristopher Wehage

Authors

No additional authors.

Dispatcher

A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

dispatcher

dispatcher builds its UI from a YAML file. Each configured item is launched in its own detached tmux session, and the terminal button can attach a gnome-terminal window to that session when available.

Runtime Parameters

The dispatcher executable uses the following ROS parameters:

Name Type Default Description
dispatcher_config_path string "" Path to the dispatcher YAML file.
initial_configuration string "" Configuration name to select on startup.
ssh_timeout_sec int 10 Timeout used when building remote SSH commands.
target_loop_rate_hz double 100.0 Main process/status polling rate.

YAML Configuration

The top-level dispatcher YAML supports:

Key Required Description
workspace Yes Workspace path used by ROS process items before sourcing install/setup.bash.
nodes Yes Process and category definitions rendered in the main panel.
configurations No Named runtime configurations. Each entry may be a simple name or a map with name, cmd_prefix, environment_variables, and icon.
cmd_prefix No Default command prefix for the implicit all configuration.
environment_variables No Default environment variables for the implicit all configuration.
hide_unconfigured_processes No If true, items missing in the active configuration are hidden instead of disabled.
scripts No Script button definitions shown in the scripts panel.
variables No Variable selectors used for $VARIABLE command substitution.

Node Types

Each entry in nodes can be:

  • A ROS process item. If type is omitted, the item is treated as ROS by default.
  • A shell process item with type: shell.
  • A collapsible category with type: category and an items array.

Common item fields include:

Key Description
name UI label and tmux-session base name.
cmd Command used for the implicit all configuration.
configurations Per-configuration command definitions.
start_checked Whether the item starts checked in the UI. Optional, defaults to false.
stop_tmux_cmd Stop sequence sent to tmux. Optional, defaults to C-C.
hostname / user Optional remote execution target for local commands or configuration entries.
use_cmd_prefix Enables or disables command-prefix injection.
use_environment_variables Enables or disables environment-variable injection.
attach_on_start Opens a terminal automatically after launch.

ROS process items can additionally define node_name plus an optional namespace that defaults to an empty string, or a ros_nodes array with the same monitoring fields for online-state monitoring.

Shell process items use pgrep on the item name to infer online state.

Scripts and Variables

Script entries support:

Key Description
name Button label.
cmd or configurations Script command definition.
row, column Grid placement in the scripts panel.
icon Optional Qt resource path for the button icon.
use_terminal Whether to wrap execution in gnome-terminal --.

Variable entries support:

Key Description
name Variable name used in commands, for example $FCAT_LOOP_RATE_HZ.
choices Selectable values exposed in the UI.

Examples

The following examples build incrementally from a minimal configuration to a full-featured setup. Each one corresponds to a YAML file in config/ and a screenshot in doc/.

Configurations

config/example_configurations.yaml shows the simplest multi-configuration setup. Two named configurations (config_A and config_B) control which processes are available and which commands they run. Processes that lack a definition for the active configuration are grayed out.

config_A config_B
config_A config_B

```yaml

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package dispatcher

Forthcoming

0.4.2 (2026-08-31 07:32)

  • Merge pull request #3 from nasa-jpl/fix-rolling

    Fix rolling

  • add changelo update

  • use target_link_libraries instead of deprecated ament_target_dependencies

  • Contributors: Daniel Pastor

0.4.0 (2026-06-28 20:40)

  • chore: bump version to 0.4.0 [skip ci]
  • Merge pull request #1 from nasa-jpl/github-ci add actions and workflows
  • add actions and workflows
  • Contributors: Daniel Pastor, github-actions[bot]

0.3.0 (2026-06-28 20:02)

  • Merge branch 'prepare-public-release' into 'master' update license to Apache. Readme corrections. Manually bump version See merge request robotics/ros2/dispatcher!4
  • update license to Apache. Readme corrections. Manually bump version
  • Merge branch 'feature/script_categories' into 'master' Add categories to scripts See merge request robotics/ros2/dispatcher!3
  • doc image resize
  • Updated docs to mention script categories
  • Added attribution-free icons
  • categories extended to scripts
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, jongreen

0.2.0 (2026-04-24)

  • manual version bump
  • Merge branch 'improve_readme' into 'master' Improve readme See merge request robotics/ros2/dispatcher!2
  • fix tests
  • add more examples
  • add more examples with screenshots
  • make start checked optional
  • Merge branch 'casah-less' into 'master' Update to work without CASAH repos See merge request robotics/ros2/dispatcher!1
  • remove debugging prints
  • make namespace optional in config
  • add github CI
  • correct readme, add missing features
  • add function doxygen comments
  • add basic testing refactor logic for easier testing
  • fix Q_OBJECT warnings
  • fix smaller issues
    • missing regex header
    • missing h files in lib for QT to work
    • add GetTimerRate
  • use ros params
  • replace EVRs with RCLCPPs logging
  • update CMakeLists.txt
  • move headers to their own folder
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, Joseph Bowkett

0.1.5 (2026-02-08)

  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • add initial configuration param
  • Contributors: Casah Gitlab Runner, Daniel Pastor, Daniel Pastor Moreno

0.1.4 (2025-10-09)

  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Small change
  • Contributors: Casah Admin, Casah Gitlab Runner, Preston Rogers

0.1.3 (2025-06-12 04:39)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial commit See merge request casah/ros2/dispatcher!43
  • Contributors: Casah Gitlab Runner

0.1.2 (2025-06-12 03:13)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dispatcher at Robotics Stack Exchange

No version for distro hydro showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

dispatcher package from dispatcher repo

dispatcher

ROS Distro
jazzy

Package Summary

Version 0.4.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/nasa-jpl/dispatcher.git
VCS Type git
VCS Version master
Last Updated 2026-08-31
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Qt-based ROS 2 application for launching and monitoring ROS nodes and arbitrary processes.

Additional Links

Maintainers

  • Kristopher Wehage

Authors

No additional authors.

Dispatcher

A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

dispatcher

dispatcher builds its UI from a YAML file. Each configured item is launched in its own detached tmux session, and the terminal button can attach a gnome-terminal window to that session when available.

Runtime Parameters

The dispatcher executable uses the following ROS parameters:

Name Type Default Description
dispatcher_config_path string "" Path to the dispatcher YAML file.
initial_configuration string "" Configuration name to select on startup.
ssh_timeout_sec int 10 Timeout used when building remote SSH commands.
target_loop_rate_hz double 100.0 Main process/status polling rate.

YAML Configuration

The top-level dispatcher YAML supports:

Key Required Description
workspace Yes Workspace path used by ROS process items before sourcing install/setup.bash.
nodes Yes Process and category definitions rendered in the main panel.
configurations No Named runtime configurations. Each entry may be a simple name or a map with name, cmd_prefix, environment_variables, and icon.
cmd_prefix No Default command prefix for the implicit all configuration.
environment_variables No Default environment variables for the implicit all configuration.
hide_unconfigured_processes No If true, items missing in the active configuration are hidden instead of disabled.
scripts No Script button definitions shown in the scripts panel.
variables No Variable selectors used for $VARIABLE command substitution.

Node Types

Each entry in nodes can be:

  • A ROS process item. If type is omitted, the item is treated as ROS by default.
  • A shell process item with type: shell.
  • A collapsible category with type: category and an items array.

Common item fields include:

Key Description
name UI label and tmux-session base name.
cmd Command used for the implicit all configuration.
configurations Per-configuration command definitions.
start_checked Whether the item starts checked in the UI. Optional, defaults to false.
stop_tmux_cmd Stop sequence sent to tmux. Optional, defaults to C-C.
hostname / user Optional remote execution target for local commands or configuration entries.
use_cmd_prefix Enables or disables command-prefix injection.
use_environment_variables Enables or disables environment-variable injection.
attach_on_start Opens a terminal automatically after launch.

ROS process items can additionally define node_name plus an optional namespace that defaults to an empty string, or a ros_nodes array with the same monitoring fields for online-state monitoring.

Shell process items use pgrep on the item name to infer online state.

Scripts and Variables

Script entries support:

Key Description
name Button label.
cmd or configurations Script command definition.
row, column Grid placement in the scripts panel.
icon Optional Qt resource path for the button icon.
use_terminal Whether to wrap execution in gnome-terminal --.

Variable entries support:

Key Description
name Variable name used in commands, for example $FCAT_LOOP_RATE_HZ.
choices Selectable values exposed in the UI.

Examples

The following examples build incrementally from a minimal configuration to a full-featured setup. Each one corresponds to a YAML file in config/ and a screenshot in doc/.

Configurations

config/example_configurations.yaml shows the simplest multi-configuration setup. Two named configurations (config_A and config_B) control which processes are available and which commands they run. Processes that lack a definition for the active configuration are grayed out.

config_A config_B
config_A config_B

```yaml

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package dispatcher

Forthcoming

0.4.2 (2026-08-31 07:32)

  • Merge pull request #3 from nasa-jpl/fix-rolling

    Fix rolling

  • add changelo update

  • use target_link_libraries instead of deprecated ament_target_dependencies

  • Contributors: Daniel Pastor

0.4.0 (2026-06-28 20:40)

  • chore: bump version to 0.4.0 [skip ci]
  • Merge pull request #1 from nasa-jpl/github-ci add actions and workflows
  • add actions and workflows
  • Contributors: Daniel Pastor, github-actions[bot]

0.3.0 (2026-06-28 20:02)

  • Merge branch 'prepare-public-release' into 'master' update license to Apache. Readme corrections. Manually bump version See merge request robotics/ros2/dispatcher!4
  • update license to Apache. Readme corrections. Manually bump version
  • Merge branch 'feature/script_categories' into 'master' Add categories to scripts See merge request robotics/ros2/dispatcher!3
  • doc image resize
  • Updated docs to mention script categories
  • Added attribution-free icons
  • categories extended to scripts
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, jongreen

0.2.0 (2026-04-24)

  • manual version bump
  • Merge branch 'improve_readme' into 'master' Improve readme See merge request robotics/ros2/dispatcher!2
  • fix tests
  • add more examples
  • add more examples with screenshots
  • make start checked optional
  • Merge branch 'casah-less' into 'master' Update to work without CASAH repos See merge request robotics/ros2/dispatcher!1
  • remove debugging prints
  • make namespace optional in config
  • add github CI
  • correct readme, add missing features
  • add function doxygen comments
  • add basic testing refactor logic for easier testing
  • fix Q_OBJECT warnings
  • fix smaller issues
    • missing regex header
    • missing h files in lib for QT to work
    • add GetTimerRate
  • use ros params
  • replace EVRs with RCLCPPs logging
  • update CMakeLists.txt
  • move headers to their own folder
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, Joseph Bowkett

0.1.5 (2026-02-08)

  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • add initial configuration param
  • Contributors: Casah Gitlab Runner, Daniel Pastor, Daniel Pastor Moreno

0.1.4 (2025-10-09)

  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Small change
  • Contributors: Casah Admin, Casah Gitlab Runner, Preston Rogers

0.1.3 (2025-06-12 04:39)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial commit See merge request casah/ros2/dispatcher!43
  • Contributors: Casah Gitlab Runner

0.1.2 (2025-06-12 03:13)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dispatcher at Robotics Stack Exchange

No version for distro kinetic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

dispatcher package from dispatcher repo

dispatcher

ROS Distro
jazzy

Package Summary

Version 0.4.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/nasa-jpl/dispatcher.git
VCS Type git
VCS Version master
Last Updated 2026-08-31
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Qt-based ROS 2 application for launching and monitoring ROS nodes and arbitrary processes.

Additional Links

Maintainers

  • Kristopher Wehage

Authors

No additional authors.

Dispatcher

A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

dispatcher

dispatcher builds its UI from a YAML file. Each configured item is launched in its own detached tmux session, and the terminal button can attach a gnome-terminal window to that session when available.

Runtime Parameters

The dispatcher executable uses the following ROS parameters:

Name Type Default Description
dispatcher_config_path string "" Path to the dispatcher YAML file.
initial_configuration string "" Configuration name to select on startup.
ssh_timeout_sec int 10 Timeout used when building remote SSH commands.
target_loop_rate_hz double 100.0 Main process/status polling rate.

YAML Configuration

The top-level dispatcher YAML supports:

Key Required Description
workspace Yes Workspace path used by ROS process items before sourcing install/setup.bash.
nodes Yes Process and category definitions rendered in the main panel.
configurations No Named runtime configurations. Each entry may be a simple name or a map with name, cmd_prefix, environment_variables, and icon.
cmd_prefix No Default command prefix for the implicit all configuration.
environment_variables No Default environment variables for the implicit all configuration.
hide_unconfigured_processes No If true, items missing in the active configuration are hidden instead of disabled.
scripts No Script button definitions shown in the scripts panel.
variables No Variable selectors used for $VARIABLE command substitution.

Node Types

Each entry in nodes can be:

  • A ROS process item. If type is omitted, the item is treated as ROS by default.
  • A shell process item with type: shell.
  • A collapsible category with type: category and an items array.

Common item fields include:

Key Description
name UI label and tmux-session base name.
cmd Command used for the implicit all configuration.
configurations Per-configuration command definitions.
start_checked Whether the item starts checked in the UI. Optional, defaults to false.
stop_tmux_cmd Stop sequence sent to tmux. Optional, defaults to C-C.
hostname / user Optional remote execution target for local commands or configuration entries.
use_cmd_prefix Enables or disables command-prefix injection.
use_environment_variables Enables or disables environment-variable injection.
attach_on_start Opens a terminal automatically after launch.

ROS process items can additionally define node_name plus an optional namespace that defaults to an empty string, or a ros_nodes array with the same monitoring fields for online-state monitoring.

Shell process items use pgrep on the item name to infer online state.

Scripts and Variables

Script entries support:

Key Description
name Button label.
cmd or configurations Script command definition.
row, column Grid placement in the scripts panel.
icon Optional Qt resource path for the button icon.
use_terminal Whether to wrap execution in gnome-terminal --.

Variable entries support:

Key Description
name Variable name used in commands, for example $FCAT_LOOP_RATE_HZ.
choices Selectable values exposed in the UI.

Examples

The following examples build incrementally from a minimal configuration to a full-featured setup. Each one corresponds to a YAML file in config/ and a screenshot in doc/.

Configurations

config/example_configurations.yaml shows the simplest multi-configuration setup. Two named configurations (config_A and config_B) control which processes are available and which commands they run. Processes that lack a definition for the active configuration are grayed out.

config_A config_B
config_A config_B

```yaml

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package dispatcher

Forthcoming

0.4.2 (2026-08-31 07:32)

  • Merge pull request #3 from nasa-jpl/fix-rolling

    Fix rolling

  • add changelo update

  • use target_link_libraries instead of deprecated ament_target_dependencies

  • Contributors: Daniel Pastor

0.4.0 (2026-06-28 20:40)

  • chore: bump version to 0.4.0 [skip ci]
  • Merge pull request #1 from nasa-jpl/github-ci add actions and workflows
  • add actions and workflows
  • Contributors: Daniel Pastor, github-actions[bot]

0.3.0 (2026-06-28 20:02)

  • Merge branch 'prepare-public-release' into 'master' update license to Apache. Readme corrections. Manually bump version See merge request robotics/ros2/dispatcher!4
  • update license to Apache. Readme corrections. Manually bump version
  • Merge branch 'feature/script_categories' into 'master' Add categories to scripts See merge request robotics/ros2/dispatcher!3
  • doc image resize
  • Updated docs to mention script categories
  • Added attribution-free icons
  • categories extended to scripts
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, jongreen

0.2.0 (2026-04-24)

  • manual version bump
  • Merge branch 'improve_readme' into 'master' Improve readme See merge request robotics/ros2/dispatcher!2
  • fix tests
  • add more examples
  • add more examples with screenshots
  • make start checked optional
  • Merge branch 'casah-less' into 'master' Update to work without CASAH repos See merge request robotics/ros2/dispatcher!1
  • remove debugging prints
  • make namespace optional in config
  • add github CI
  • correct readme, add missing features
  • add function doxygen comments
  • add basic testing refactor logic for easier testing
  • fix Q_OBJECT warnings
  • fix smaller issues
    • missing regex header
    • missing h files in lib for QT to work
    • add GetTimerRate
  • use ros params
  • replace EVRs with RCLCPPs logging
  • update CMakeLists.txt
  • move headers to their own folder
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, Joseph Bowkett

0.1.5 (2026-02-08)

  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • add initial configuration param
  • Contributors: Casah Gitlab Runner, Daniel Pastor, Daniel Pastor Moreno

0.1.4 (2025-10-09)

  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Small change
  • Contributors: Casah Admin, Casah Gitlab Runner, Preston Rogers

0.1.3 (2025-06-12 04:39)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial commit See merge request casah/ros2/dispatcher!43
  • Contributors: Casah Gitlab Runner

0.1.2 (2025-06-12 03:13)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dispatcher at Robotics Stack Exchange

No version for distro melodic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

dispatcher package from dispatcher repo

dispatcher

ROS Distro
jazzy

Package Summary

Version 0.4.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/nasa-jpl/dispatcher.git
VCS Type git
VCS Version master
Last Updated 2026-08-31
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Qt-based ROS 2 application for launching and monitoring ROS nodes and arbitrary processes.

Additional Links

Maintainers

  • Kristopher Wehage

Authors

No additional authors.

Dispatcher

A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

dispatcher

dispatcher builds its UI from a YAML file. Each configured item is launched in its own detached tmux session, and the terminal button can attach a gnome-terminal window to that session when available.

Runtime Parameters

The dispatcher executable uses the following ROS parameters:

Name Type Default Description
dispatcher_config_path string "" Path to the dispatcher YAML file.
initial_configuration string "" Configuration name to select on startup.
ssh_timeout_sec int 10 Timeout used when building remote SSH commands.
target_loop_rate_hz double 100.0 Main process/status polling rate.

YAML Configuration

The top-level dispatcher YAML supports:

Key Required Description
workspace Yes Workspace path used by ROS process items before sourcing install/setup.bash.
nodes Yes Process and category definitions rendered in the main panel.
configurations No Named runtime configurations. Each entry may be a simple name or a map with name, cmd_prefix, environment_variables, and icon.
cmd_prefix No Default command prefix for the implicit all configuration.
environment_variables No Default environment variables for the implicit all configuration.
hide_unconfigured_processes No If true, items missing in the active configuration are hidden instead of disabled.
scripts No Script button definitions shown in the scripts panel.
variables No Variable selectors used for $VARIABLE command substitution.

Node Types

Each entry in nodes can be:

  • A ROS process item. If type is omitted, the item is treated as ROS by default.
  • A shell process item with type: shell.
  • A collapsible category with type: category and an items array.

Common item fields include:

Key Description
name UI label and tmux-session base name.
cmd Command used for the implicit all configuration.
configurations Per-configuration command definitions.
start_checked Whether the item starts checked in the UI. Optional, defaults to false.
stop_tmux_cmd Stop sequence sent to tmux. Optional, defaults to C-C.
hostname / user Optional remote execution target for local commands or configuration entries.
use_cmd_prefix Enables or disables command-prefix injection.
use_environment_variables Enables or disables environment-variable injection.
attach_on_start Opens a terminal automatically after launch.

ROS process items can additionally define node_name plus an optional namespace that defaults to an empty string, or a ros_nodes array with the same monitoring fields for online-state monitoring.

Shell process items use pgrep on the item name to infer online state.

Scripts and Variables

Script entries support:

Key Description
name Button label.
cmd or configurations Script command definition.
row, column Grid placement in the scripts panel.
icon Optional Qt resource path for the button icon.
use_terminal Whether to wrap execution in gnome-terminal --.

Variable entries support:

Key Description
name Variable name used in commands, for example $FCAT_LOOP_RATE_HZ.
choices Selectable values exposed in the UI.

Examples

The following examples build incrementally from a minimal configuration to a full-featured setup. Each one corresponds to a YAML file in config/ and a screenshot in doc/.

Configurations

config/example_configurations.yaml shows the simplest multi-configuration setup. Two named configurations (config_A and config_B) control which processes are available and which commands they run. Processes that lack a definition for the active configuration are grayed out.

config_A config_B
config_A config_B

```yaml

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package dispatcher

Forthcoming

0.4.2 (2026-08-31 07:32)

  • Merge pull request #3 from nasa-jpl/fix-rolling

    Fix rolling

  • add changelo update

  • use target_link_libraries instead of deprecated ament_target_dependencies

  • Contributors: Daniel Pastor

0.4.0 (2026-06-28 20:40)

  • chore: bump version to 0.4.0 [skip ci]
  • Merge pull request #1 from nasa-jpl/github-ci add actions and workflows
  • add actions and workflows
  • Contributors: Daniel Pastor, github-actions[bot]

0.3.0 (2026-06-28 20:02)

  • Merge branch 'prepare-public-release' into 'master' update license to Apache. Readme corrections. Manually bump version See merge request robotics/ros2/dispatcher!4
  • update license to Apache. Readme corrections. Manually bump version
  • Merge branch 'feature/script_categories' into 'master' Add categories to scripts See merge request robotics/ros2/dispatcher!3
  • doc image resize
  • Updated docs to mention script categories
  • Added attribution-free icons
  • categories extended to scripts
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, jongreen

0.2.0 (2026-04-24)

  • manual version bump
  • Merge branch 'improve_readme' into 'master' Improve readme See merge request robotics/ros2/dispatcher!2
  • fix tests
  • add more examples
  • add more examples with screenshots
  • make start checked optional
  • Merge branch 'casah-less' into 'master' Update to work without CASAH repos See merge request robotics/ros2/dispatcher!1
  • remove debugging prints
  • make namespace optional in config
  • add github CI
  • correct readme, add missing features
  • add function doxygen comments
  • add basic testing refactor logic for easier testing
  • fix Q_OBJECT warnings
  • fix smaller issues
    • missing regex header
    • missing h files in lib for QT to work
    • add GetTimerRate
  • use ros params
  • replace EVRs with RCLCPPs logging
  • update CMakeLists.txt
  • move headers to their own folder
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, Joseph Bowkett

0.1.5 (2026-02-08)

  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • add initial configuration param
  • Contributors: Casah Gitlab Runner, Daniel Pastor, Daniel Pastor Moreno

0.1.4 (2025-10-09)

  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Small change
  • Contributors: Casah Admin, Casah Gitlab Runner, Preston Rogers

0.1.3 (2025-06-12 04:39)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial commit See merge request casah/ros2/dispatcher!43
  • Contributors: Casah Gitlab Runner

0.1.2 (2025-06-12 03:13)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dispatcher at Robotics Stack Exchange

No version for distro noetic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

dispatcher package from dispatcher repo

dispatcher

ROS Distro
jazzy

Package Summary

Version 0.4.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/nasa-jpl/dispatcher.git
VCS Type git
VCS Version master
Last Updated 2026-08-31
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Qt-based ROS 2 application for launching and monitoring ROS nodes and arbitrary processes.

Additional Links

Maintainers

  • Kristopher Wehage

Authors

No additional authors.

Dispatcher

A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

dispatcher

dispatcher builds its UI from a YAML file. Each configured item is launched in its own detached tmux session, and the terminal button can attach a gnome-terminal window to that session when available.

Runtime Parameters

The dispatcher executable uses the following ROS parameters:

Name Type Default Description
dispatcher_config_path string "" Path to the dispatcher YAML file.
initial_configuration string "" Configuration name to select on startup.
ssh_timeout_sec int 10 Timeout used when building remote SSH commands.
target_loop_rate_hz double 100.0 Main process/status polling rate.

YAML Configuration

The top-level dispatcher YAML supports:

Key Required Description
workspace Yes Workspace path used by ROS process items before sourcing install/setup.bash.
nodes Yes Process and category definitions rendered in the main panel.
configurations No Named runtime configurations. Each entry may be a simple name or a map with name, cmd_prefix, environment_variables, and icon.
cmd_prefix No Default command prefix for the implicit all configuration.
environment_variables No Default environment variables for the implicit all configuration.
hide_unconfigured_processes No If true, items missing in the active configuration are hidden instead of disabled.
scripts No Script button definitions shown in the scripts panel.
variables No Variable selectors used for $VARIABLE command substitution.

Node Types

Each entry in nodes can be:

  • A ROS process item. If type is omitted, the item is treated as ROS by default.
  • A shell process item with type: shell.
  • A collapsible category with type: category and an items array.

Common item fields include:

Key Description
name UI label and tmux-session base name.
cmd Command used for the implicit all configuration.
configurations Per-configuration command definitions.
start_checked Whether the item starts checked in the UI. Optional, defaults to false.
stop_tmux_cmd Stop sequence sent to tmux. Optional, defaults to C-C.
hostname / user Optional remote execution target for local commands or configuration entries.
use_cmd_prefix Enables or disables command-prefix injection.
use_environment_variables Enables or disables environment-variable injection.
attach_on_start Opens a terminal automatically after launch.

ROS process items can additionally define node_name plus an optional namespace that defaults to an empty string, or a ros_nodes array with the same monitoring fields for online-state monitoring.

Shell process items use pgrep on the item name to infer online state.

Scripts and Variables

Script entries support:

Key Description
name Button label.
cmd or configurations Script command definition.
row, column Grid placement in the scripts panel.
icon Optional Qt resource path for the button icon.
use_terminal Whether to wrap execution in gnome-terminal --.

Variable entries support:

Key Description
name Variable name used in commands, for example $FCAT_LOOP_RATE_HZ.
choices Selectable values exposed in the UI.

Examples

The following examples build incrementally from a minimal configuration to a full-featured setup. Each one corresponds to a YAML file in config/ and a screenshot in doc/.

Configurations

config/example_configurations.yaml shows the simplest multi-configuration setup. Two named configurations (config_A and config_B) control which processes are available and which commands they run. Processes that lack a definition for the active configuration are grayed out.

config_A config_B
config_A config_B

```yaml

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package dispatcher

Forthcoming

0.4.2 (2026-08-31 07:32)

  • Merge pull request #3 from nasa-jpl/fix-rolling

    Fix rolling

  • add changelo update

  • use target_link_libraries instead of deprecated ament_target_dependencies

  • Contributors: Daniel Pastor

0.4.0 (2026-06-28 20:40)

  • chore: bump version to 0.4.0 [skip ci]
  • Merge pull request #1 from nasa-jpl/github-ci add actions and workflows
  • add actions and workflows
  • Contributors: Daniel Pastor, github-actions[bot]

0.3.0 (2026-06-28 20:02)

  • Merge branch 'prepare-public-release' into 'master' update license to Apache. Readme corrections. Manually bump version See merge request robotics/ros2/dispatcher!4
  • update license to Apache. Readme corrections. Manually bump version
  • Merge branch 'feature/script_categories' into 'master' Add categories to scripts See merge request robotics/ros2/dispatcher!3
  • doc image resize
  • Updated docs to mention script categories
  • Added attribution-free icons
  • categories extended to scripts
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, jongreen

0.2.0 (2026-04-24)

  • manual version bump
  • Merge branch 'improve_readme' into 'master' Improve readme See merge request robotics/ros2/dispatcher!2
  • fix tests
  • add more examples
  • add more examples with screenshots
  • make start checked optional
  • Merge branch 'casah-less' into 'master' Update to work without CASAH repos See merge request robotics/ros2/dispatcher!1
  • remove debugging prints
  • make namespace optional in config
  • add github CI
  • correct readme, add missing features
  • add function doxygen comments
  • add basic testing refactor logic for easier testing
  • fix Q_OBJECT warnings
  • fix smaller issues
    • missing regex header
    • missing h files in lib for QT to work
    • add GetTimerRate
  • use ros params
  • replace EVRs with RCLCPPs logging
  • update CMakeLists.txt
  • move headers to their own folder
  • Contributors: Daniel Pastor, Daniel Pastor Moreno, Joseph Bowkett

0.1.5 (2026-02-08)

  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • Merge branch 'initial_config_danielm' into 'master' add initial configuration param See merge request casah/ros2/dispatcher!45
  • add initial configuration param
  • Contributors: Casah Gitlab Runner, Daniel Pastor, Daniel Pastor Moreno

0.1.4 (2025-10-09)

  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Merge branch 'prestonr-dispatcher-lock-file-deletion-on-error' into 'master' Small change See merge request casah/ros2/dispatcher!44
  • Small change
  • Contributors: Casah Admin, Casah Gitlab Runner, Preston Rogers

0.1.3 (2025-06-12 04:39)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial commit See merge request casah/ros2/dispatcher!43
  • Contributors: Casah Gitlab Runner

0.1.2 (2025-06-12 03:13)

  • Merge branch 'prestonr-jazzy-ci-yml' into 'master' Initial

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged dispatcher at Robotics Stack Exchange