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 (-) |
Packages
| Name | Version |
|---|---|
| dispatcher | 0.4.2 |
README
Dispatcher
A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

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
typeis omitted, the item is treated as ROS by default. - A shell process item with
type: shell. - A collapsible category with
type: categoryand anitemsarray.
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 |
|---|---|
![]() |
![]() |
```yaml
File truncated at 100 lines see the full file
CONTRIBUTING
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 (-) |
Packages
| Name | Version |
|---|---|
| dispatcher | 0.4.2 |
README
Dispatcher
A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

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
typeis omitted, the item is treated as ROS by default. - A shell process item with
type: shell. - A collapsible category with
type: categoryand anitemsarray.
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 |
|---|---|
![]() |
![]() |
```yaml
File truncated at 100 lines see the full file
CONTRIBUTING
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 (-) |
Packages
| Name | Version |
|---|---|
| dispatcher | 0.4.2 |
README
Dispatcher
A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

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
typeis omitted, the item is treated as ROS by default. - A shell process item with
type: shell. - A collapsible category with
type: categoryand anitemsarray.
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 |
|---|---|
![]() |
![]() |
```yaml
File truncated at 100 lines see the full file
CONTRIBUTING
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 (-) |
Packages
| Name | Version |
|---|---|
| dispatcher | 0.4.2 |
README
Dispatcher
A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

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
typeis omitted, the item is treated as ROS by default. - A shell process item with
type: shell. - A collapsible category with
type: categoryand anitemsarray.
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 |
|---|---|
![]() |
![]() |
```yaml
File truncated at 100 lines see the full file
CONTRIBUTING
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 (-) |
Packages
| Name | Version |
|---|---|
| dispatcher | 0.4.2 |
README
Dispatcher
A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

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
typeis omitted, the item is treated as ROS by default. - A shell process item with
type: shell. - A collapsible category with
type: categoryand anitemsarray.
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 |
|---|---|
![]() |
![]() |
```yaml
File truncated at 100 lines see the full file
CONTRIBUTING
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 (-) |
Packages
| Name | Version |
|---|---|
| dispatcher | 0.4.2 |
README
Dispatcher
A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

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
typeis omitted, the item is treated as ROS by default. - A shell process item with
type: shell. - A collapsible category with
type: categoryand anitemsarray.
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 |
|---|---|
![]() |
![]() |
```yaml
File truncated at 100 lines see the full file
CONTRIBUTING
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 (-) |
Packages
| Name | Version |
|---|---|
| dispatcher | 0.4.2 |
README
Dispatcher
A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

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
typeis omitted, the item is treated as ROS by default. - A shell process item with
type: shell. - A collapsible category with
type: categoryand anitemsarray.
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 |
|---|---|
![]() |
![]() |
```yaml
File truncated at 100 lines see the full file
CONTRIBUTING
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 (-) |
Packages
| Name | Version |
|---|---|
| dispatcher | 0.4.2 |
README
Dispatcher
A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

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
typeis omitted, the item is treated as ROS by default. - A shell process item with
type: shell. - A collapsible category with
type: categoryand anitemsarray.
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 |
|---|---|
![]() |
![]() |
```yaml
File truncated at 100 lines see the full file
CONTRIBUTING
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 (-) |
Packages
| Name | Version |
|---|---|
| dispatcher | 0.4.2 |
README
Dispatcher
A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

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
typeis omitted, the item is treated as ROS by default. - A shell process item with
type: shell. - A collapsible category with
type: categoryand anitemsarray.
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 |
|---|---|
![]() |
![]() |
```yaml
File truncated at 100 lines see the full file
CONTRIBUTING
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 (-) |
Packages
| Name | Version |
|---|---|
| dispatcher | 0.4.2 |
README
Dispatcher
A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

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
typeis omitted, the item is treated as ROS by default. - A shell process item with
type: shell. - A collapsible category with
type: categoryand anitemsarray.
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 |
|---|---|
![]() |
![]() |
```yaml
File truncated at 100 lines see the full file
CONTRIBUTING
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 (-) |
Packages
| Name | Version |
|---|---|
| dispatcher | 0.4.2 |
README
Dispatcher
A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

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
typeis omitted, the item is treated as ROS by default. - A shell process item with
type: shell. - A collapsible category with
type: categoryand anitemsarray.
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 |
|---|---|
![]() |
![]() |
```yaml
File truncated at 100 lines see the full file
CONTRIBUTING
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 (-) |
Packages
| Name | Version |
|---|---|
| dispatcher | 0.4.2 |
README
Dispatcher
A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

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
typeis omitted, the item is treated as ROS by default. - A shell process item with
type: shell. - A collapsible category with
type: categoryand anitemsarray.
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 |
|---|---|
![]() |
![]() |
```yaml
File truncated at 100 lines see the full file
CONTRIBUTING
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 (-) |
Packages
| Name | Version |
|---|---|
| dispatcher | 0.4.2 |
README
Dispatcher
A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

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
typeis omitted, the item is treated as ROS by default. - A shell process item with
type: shell. - A collapsible category with
type: categoryand anitemsarray.
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 |
|---|---|
![]() |
![]() |
```yaml
File truncated at 100 lines see the full file
CONTRIBUTING
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 (-) |
Packages
| Name | Version |
|---|---|
| dispatcher | 0.4.2 |
README
Dispatcher
A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

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
typeis omitted, the item is treated as ROS by default. - A shell process item with
type: shell. - A collapsible category with
type: categoryand anitemsarray.
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 |
|---|---|
![]() |
![]() |
```yaml
File truncated at 100 lines see the full file
CONTRIBUTING
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 (-) |
Packages
| Name | Version |
|---|---|
| dispatcher | 0.4.2 |
README
Dispatcher
A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

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
typeis omitted, the item is treated as ROS by default. - A shell process item with
type: shell. - A collapsible category with
type: categoryand anitemsarray.
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 |
|---|---|
![]() |
![]() |
```yaml
File truncated at 100 lines see the full file
CONTRIBUTING
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 (-) |
Packages
| Name | Version |
|---|---|
| dispatcher | 0.4.2 |
README
Dispatcher
A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

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
typeis omitted, the item is treated as ROS by default. - A shell process item with
type: shell. - A collapsible category with
type: categoryand anitemsarray.
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 |
|---|---|
![]() |
![]() |
```yaml
File truncated at 100 lines see the full file
CONTRIBUTING
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 (-) |
Packages
| Name | Version |
|---|---|
| dispatcher | 0.4.2 |
README
Dispatcher
A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

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
typeis omitted, the item is treated as ROS by default. - A shell process item with
type: shell. - A collapsible category with
type: categoryand anitemsarray.
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 |
|---|---|
![]() |
![]() |
```yaml
File truncated at 100 lines see the full file
CONTRIBUTING
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 (-) |
Packages
| Name | Version |
|---|---|
| dispatcher | 0.4.2 |
README
Dispatcher
A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

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
typeis omitted, the item is treated as ROS by default. - A shell process item with
type: shell. - A collapsible category with
type: categoryand anitemsarray.
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 |
|---|---|
![]() |
![]() |
```yaml
File truncated at 100 lines see the full file
CONTRIBUTING
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 (-) |
Packages
| Name | Version |
|---|---|
| dispatcher | 0.4.2 |
README
Dispatcher
A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

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
typeis omitted, the item is treated as ROS by default. - A shell process item with
type: shell. - A collapsible category with
type: categoryand anitemsarray.
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 |
|---|---|
![]() |
![]() |
```yaml
File truncated at 100 lines see the full file
CONTRIBUTING
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 (-) |
Packages
| Name | Version |
|---|---|
| dispatcher | 0.4.2 |
README
Dispatcher
A Qt-based ROS 2 widget for starting, stopping, and monitoring both ROS nodes and arbitrary shell processes.

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
typeis omitted, the item is treated as ROS by default. - A shell process item with
type: shell. - A collapsible category with
type: categoryand anitemsarray.
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 |
|---|---|
![]() |
![]() |
```yaml
File truncated at 100 lines see the full file

