|
fkie_mas_gui package from fkie_multi_agent_suite repofkie_mas_daemon fkie_mas_discovery fkie_mas_gui fkie_mas_meta fkie_mas_msgs fkie_mas_pylib fkie_mas_sync |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 4.9.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS packages for detection, synchronization (ros1) and graphical management of multi-robots |
| Checkout URI | https://github.com/fkie/fkie-multi-agent-suite.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2025-11-28 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Alexander Tiderko
- Carlos Tampier
Authors
- Francisco Garcia
- Carlos Tampier
- Alexander Tiderko
MAS GUI
New Node Manager for ROS (1/2).
The MAS GUI is composed by two main parts: A Back-End component (daemon with WebSocket), and a Front-End Component (powered by Electron and ReactJS).
Install
We need to first install dependencies and run both Front and Back-End components:
Install dependencies
You need a running TTYD to show screen or log output of the nodes.
sudo snap install ttyd --classic
Update nodejs to v20
The code have been tested with NodeJS v20.15.0:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
Server Side (Back-End)
cd ros_workspace/src
git clone https://github.com/fkie/fkie-multi-agent-suite.git fkie-multi-agent-suite
rosdep update
rosdep install -i --as-root pip:false --reinstall --from-paths fkie-multi-agent-suite
Then build all packages:
catkin build fkie_mas_meta
or
colcon build --packages-select fkie_mas_meta
Client Side (Front-End)
Only for developer mode: Download and install JavaScript module dependencies:
cd fkie_mas_gui
npm install
npm run build
Usage
Run the app in developer mode:
npm run dev:ns
The app will start automatically the local daemon and master discovery nodes.
Start only as node (without GUI)
Starts a server on default port 6274. You can change the port in electron.vite.config.ts.
npm run server:ns
Then open in browser http://localhost:6274
Websocket communication
| Action | Message Format | Description |
|---|---|---|
| Message | {“uri”: str, message: JSONObject } | Publish messages to given topic (URI) |
| Subscribe to an URI | {“sub”, [str]} | Receive all messages published to this URI |
| Unsubscribe from an URI | {“unsub”, [str]} | Stop receiving messages send to this URI |
| Remote procedure call (RPC) | {“uri”: str, “id”: number, “params”: []} | id is unique request. params is a is list with parameters for the remote procedure call. |
| Reply for successful RPC | {“id”: number, “result”: JSONObject } | id is unique request id. |
| Reply with error while RPC | {“id”: number, “error”: str } | id is unique request id. |
Supported interface URIs
| Interface URI | Type | Function | Description |
|---|---|---|---|
| ros.daemon.ready | PUB | => {'status': bool, "timestamp": float} |
Sent by the daemon at an interval |
| ros.discovery.ready | PUB | => {'status': bool} |
|
| ros.daemon.get_version | RPC | () => DaemonVersion |
see fkie_mas_pylib/interface/runtime_interface/DaemonVersion |
| ros.file.get | RPC | (path: str) => FileItem |
see fkie_mas_pylib/interface/file_interface/FileItem |
| ros.file.save | RPC | (file: FileItem) => number |
write file content to providers file system. Return count of written bytes. |
| ros.nodes.get_list | RPC | () => RosNode[] |
see fkie_mas_pylib/interface/runtime_interface/RosNode |
| ros.nodes.get_services | RPC | () => RosService[] |
see fkie_mas_pylib/interface/runtime_interface/RosService |
File truncated at 100 lines see the full file
Changelog
4.9.0 - 28.11.2025
Allow deselection of topics, services, and nodes Added octet to input elements in publish panel Fixed open publish panel if no topic is selected Optimized handling in the publish panel
4.8.2 - 27.11.2025
Removed snackbar info Log panel revised Fixed layout that is corrupted after MAS update and layout reset Changed update strategy of the ros nodes Fixed environment variable set in a launch group Adjust default layout weights Added warning for true/false in launch dialog Added warning for true/false not capitalized in XML launch files Renamed “Node Details” to “Details” tab Show host details in the node details window instead of in a new tab
4.8.1 - 25.11.2025
Reduced number of service calls for updating composable and lifecycle nodes Fixed “Use of externally-controlled format string” warning
4.8.0 - 24.11.2025
Added ROS graph change detection to discovery node Fixed forced update topic and service list Reduced count of updates Added id to RosTopic and RosService Added tooltip for CMD in node details Do not show errors in the snackbar for already running requests Fixed deselection of nodes when they are updated Changed the highlighting when hovering Reduced the effort required for updates Fixed error when processing the stop queue Fixed version update info, if updates have not yet been checked for after startup Updated cli description
4.7.3 - 18.11.2025
Highlight true/false in XML launch files Added let proposal Fixed proposals for unless and if in XML launch file Fixed go back/forward in editor
4.7.2 - 18.11.2025
Load launch file on pressed enter load dialog Added option to start publisher with simtime Close load dialog before loadings the launch file to avoid multiple load trigger Added lifecycle context menu to node name Added namespace tag for composable_node in XML launch file proposals Improved log settings
4.7.1 - 14.11.2025
fixed error when loading ‘capability groups’ for included files
4.7.0 - 11.11.2025
Added notification if launch file was reloaded by another instance Fixed: sorting nodes in the host view Evaluate wildcard hostnames in the ssh configuration Improved host input in the connection dialog Updated vite dependency version Fixed the style of the “Node Details” tab when the namespace is too long
4.6.15 - 30.09.2025
Fixed crash of the daemon on exception while load_launch Fixed updating the package list when a package is selected
4.6.14 - 25.09.2025
Disabled pop-outs for headless mode Changed location of the info box in the packages tab Fixed join operator for headless mode Fixed “Missing rate limiting” reported by CodeQL
4.6.13 - 23.09.2025
Fixed open connect dialog if daemon is not running and ros_domain_id is not set
4.6.12 - 23.09.2025
Fixed load included link decorations Fixed open date context menu
4.6.11 - 23.09.2025
Added button to show daemon log for ros2 if start was failed Fixed show_ros_log parameter (for ROS2 daemon) Fix to avoid showing multiple local provider Ensure that no two items with the same ID are inserted into the launch history Do not use the RMW_IMPLEMENTATION by default from environment
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fkie_mas_gui at Robotics Stack Exchange
|
fkie_mas_gui package from fkie_multi_agent_suite repofkie_mas_daemon fkie_mas_discovery fkie_mas_gui fkie_mas_meta fkie_mas_msgs fkie_mas_pylib fkie_mas_sync |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 4.9.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS packages for detection, synchronization (ros1) and graphical management of multi-robots |
| Checkout URI | https://github.com/fkie/fkie-multi-agent-suite.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2025-11-28 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Alexander Tiderko
- Carlos Tampier
Authors
- Francisco Garcia
- Carlos Tampier
- Alexander Tiderko
MAS GUI
New Node Manager for ROS (1/2).
The MAS GUI is composed by two main parts: A Back-End component (daemon with WebSocket), and a Front-End Component (powered by Electron and ReactJS).
Install
We need to first install dependencies and run both Front and Back-End components:
Install dependencies
You need a running TTYD to show screen or log output of the nodes.
sudo snap install ttyd --classic
Update nodejs to v20
The code have been tested with NodeJS v20.15.0:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
Server Side (Back-End)
cd ros_workspace/src
git clone https://github.com/fkie/fkie-multi-agent-suite.git fkie-multi-agent-suite
rosdep update
rosdep install -i --as-root pip:false --reinstall --from-paths fkie-multi-agent-suite
Then build all packages:
catkin build fkie_mas_meta
or
colcon build --packages-select fkie_mas_meta
Client Side (Front-End)
Only for developer mode: Download and install JavaScript module dependencies:
cd fkie_mas_gui
npm install
npm run build
Usage
Run the app in developer mode:
npm run dev:ns
The app will start automatically the local daemon and master discovery nodes.
Start only as node (without GUI)
Starts a server on default port 6274. You can change the port in electron.vite.config.ts.
npm run server:ns
Then open in browser http://localhost:6274
Websocket communication
| Action | Message Format | Description |
|---|---|---|
| Message | {“uri”: str, message: JSONObject } | Publish messages to given topic (URI) |
| Subscribe to an URI | {“sub”, [str]} | Receive all messages published to this URI |
| Unsubscribe from an URI | {“unsub”, [str]} | Stop receiving messages send to this URI |
| Remote procedure call (RPC) | {“uri”: str, “id”: number, “params”: []} | id is unique request. params is a is list with parameters for the remote procedure call. |
| Reply for successful RPC | {“id”: number, “result”: JSONObject } | id is unique request id. |
| Reply with error while RPC | {“id”: number, “error”: str } | id is unique request id. |
Supported interface URIs
| Interface URI | Type | Function | Description |
|---|---|---|---|
| ros.daemon.ready | PUB | => {'status': bool, "timestamp": float} |
Sent by the daemon at an interval |
| ros.discovery.ready | PUB | => {'status': bool} |
|
| ros.daemon.get_version | RPC | () => DaemonVersion |
see fkie_mas_pylib/interface/runtime_interface/DaemonVersion |
| ros.file.get | RPC | (path: str) => FileItem |
see fkie_mas_pylib/interface/file_interface/FileItem |
| ros.file.save | RPC | (file: FileItem) => number |
write file content to providers file system. Return count of written bytes. |
| ros.nodes.get_list | RPC | () => RosNode[] |
see fkie_mas_pylib/interface/runtime_interface/RosNode |
| ros.nodes.get_services | RPC | () => RosService[] |
see fkie_mas_pylib/interface/runtime_interface/RosService |
File truncated at 100 lines see the full file
Changelog
4.9.0 - 28.11.2025
Allow deselection of topics, services, and nodes Added octet to input elements in publish panel Fixed open publish panel if no topic is selected Optimized handling in the publish panel
4.8.2 - 27.11.2025
Removed snackbar info Log panel revised Fixed layout that is corrupted after MAS update and layout reset Changed update strategy of the ros nodes Fixed environment variable set in a launch group Adjust default layout weights Added warning for true/false in launch dialog Added warning for true/false not capitalized in XML launch files Renamed “Node Details” to “Details” tab Show host details in the node details window instead of in a new tab
4.8.1 - 25.11.2025
Reduced number of service calls for updating composable and lifecycle nodes Fixed “Use of externally-controlled format string” warning
4.8.0 - 24.11.2025
Added ROS graph change detection to discovery node Fixed forced update topic and service list Reduced count of updates Added id to RosTopic and RosService Added tooltip for CMD in node details Do not show errors in the snackbar for already running requests Fixed deselection of nodes when they are updated Changed the highlighting when hovering Reduced the effort required for updates Fixed error when processing the stop queue Fixed version update info, if updates have not yet been checked for after startup Updated cli description
4.7.3 - 18.11.2025
Highlight true/false in XML launch files Added let proposal Fixed proposals for unless and if in XML launch file Fixed go back/forward in editor
4.7.2 - 18.11.2025
Load launch file on pressed enter load dialog Added option to start publisher with simtime Close load dialog before loadings the launch file to avoid multiple load trigger Added lifecycle context menu to node name Added namespace tag for composable_node in XML launch file proposals Improved log settings
4.7.1 - 14.11.2025
fixed error when loading ‘capability groups’ for included files
4.7.0 - 11.11.2025
Added notification if launch file was reloaded by another instance Fixed: sorting nodes in the host view Evaluate wildcard hostnames in the ssh configuration Improved host input in the connection dialog Updated vite dependency version Fixed the style of the “Node Details” tab when the namespace is too long
4.6.15 - 30.09.2025
Fixed crash of the daemon on exception while load_launch Fixed updating the package list when a package is selected
4.6.14 - 25.09.2025
Disabled pop-outs for headless mode Changed location of the info box in the packages tab Fixed join operator for headless mode Fixed “Missing rate limiting” reported by CodeQL
4.6.13 - 23.09.2025
Fixed open connect dialog if daemon is not running and ros_domain_id is not set
4.6.12 - 23.09.2025
Fixed load included link decorations Fixed open date context menu
4.6.11 - 23.09.2025
Added button to show daemon log for ros2 if start was failed Fixed show_ros_log parameter (for ROS2 daemon) Fix to avoid showing multiple local provider Ensure that no two items with the same ID are inserted into the launch history Do not use the RMW_IMPLEMENTATION by default from environment
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fkie_mas_gui at Robotics Stack Exchange
|
fkie_mas_gui package from fkie_multi_agent_suite repofkie_mas_daemon fkie_mas_discovery fkie_mas_gui fkie_mas_meta fkie_mas_msgs fkie_mas_pylib fkie_mas_sync |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 4.9.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS packages for detection, synchronization (ros1) and graphical management of multi-robots |
| Checkout URI | https://github.com/fkie/fkie-multi-agent-suite.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2025-11-28 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Alexander Tiderko
- Carlos Tampier
Authors
- Francisco Garcia
- Carlos Tampier
- Alexander Tiderko
MAS GUI
New Node Manager for ROS (1/2).
The MAS GUI is composed by two main parts: A Back-End component (daemon with WebSocket), and a Front-End Component (powered by Electron and ReactJS).
Install
We need to first install dependencies and run both Front and Back-End components:
Install dependencies
You need a running TTYD to show screen or log output of the nodes.
sudo snap install ttyd --classic
Update nodejs to v20
The code have been tested with NodeJS v20.15.0:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
Server Side (Back-End)
cd ros_workspace/src
git clone https://github.com/fkie/fkie-multi-agent-suite.git fkie-multi-agent-suite
rosdep update
rosdep install -i --as-root pip:false --reinstall --from-paths fkie-multi-agent-suite
Then build all packages:
catkin build fkie_mas_meta
or
colcon build --packages-select fkie_mas_meta
Client Side (Front-End)
Only for developer mode: Download and install JavaScript module dependencies:
cd fkie_mas_gui
npm install
npm run build
Usage
Run the app in developer mode:
npm run dev:ns
The app will start automatically the local daemon and master discovery nodes.
Start only as node (without GUI)
Starts a server on default port 6274. You can change the port in electron.vite.config.ts.
npm run server:ns
Then open in browser http://localhost:6274
Websocket communication
| Action | Message Format | Description |
|---|---|---|
| Message | {“uri”: str, message: JSONObject } | Publish messages to given topic (URI) |
| Subscribe to an URI | {“sub”, [str]} | Receive all messages published to this URI |
| Unsubscribe from an URI | {“unsub”, [str]} | Stop receiving messages send to this URI |
| Remote procedure call (RPC) | {“uri”: str, “id”: number, “params”: []} | id is unique request. params is a is list with parameters for the remote procedure call. |
| Reply for successful RPC | {“id”: number, “result”: JSONObject } | id is unique request id. |
| Reply with error while RPC | {“id”: number, “error”: str } | id is unique request id. |
Supported interface URIs
| Interface URI | Type | Function | Description |
|---|---|---|---|
| ros.daemon.ready | PUB | => {'status': bool, "timestamp": float} |
Sent by the daemon at an interval |
| ros.discovery.ready | PUB | => {'status': bool} |
|
| ros.daemon.get_version | RPC | () => DaemonVersion |
see fkie_mas_pylib/interface/runtime_interface/DaemonVersion |
| ros.file.get | RPC | (path: str) => FileItem |
see fkie_mas_pylib/interface/file_interface/FileItem |
| ros.file.save | RPC | (file: FileItem) => number |
write file content to providers file system. Return count of written bytes. |
| ros.nodes.get_list | RPC | () => RosNode[] |
see fkie_mas_pylib/interface/runtime_interface/RosNode |
| ros.nodes.get_services | RPC | () => RosService[] |
see fkie_mas_pylib/interface/runtime_interface/RosService |
File truncated at 100 lines see the full file
Changelog
4.9.0 - 28.11.2025
Allow deselection of topics, services, and nodes Added octet to input elements in publish panel Fixed open publish panel if no topic is selected Optimized handling in the publish panel
4.8.2 - 27.11.2025
Removed snackbar info Log panel revised Fixed layout that is corrupted after MAS update and layout reset Changed update strategy of the ros nodes Fixed environment variable set in a launch group Adjust default layout weights Added warning for true/false in launch dialog Added warning for true/false not capitalized in XML launch files Renamed “Node Details” to “Details” tab Show host details in the node details window instead of in a new tab
4.8.1 - 25.11.2025
Reduced number of service calls for updating composable and lifecycle nodes Fixed “Use of externally-controlled format string” warning
4.8.0 - 24.11.2025
Added ROS graph change detection to discovery node Fixed forced update topic and service list Reduced count of updates Added id to RosTopic and RosService Added tooltip for CMD in node details Do not show errors in the snackbar for already running requests Fixed deselection of nodes when they are updated Changed the highlighting when hovering Reduced the effort required for updates Fixed error when processing the stop queue Fixed version update info, if updates have not yet been checked for after startup Updated cli description
4.7.3 - 18.11.2025
Highlight true/false in XML launch files Added let proposal Fixed proposals for unless and if in XML launch file Fixed go back/forward in editor
4.7.2 - 18.11.2025
Load launch file on pressed enter load dialog Added option to start publisher with simtime Close load dialog before loadings the launch file to avoid multiple load trigger Added lifecycle context menu to node name Added namespace tag for composable_node in XML launch file proposals Improved log settings
4.7.1 - 14.11.2025
fixed error when loading ‘capability groups’ for included files
4.7.0 - 11.11.2025
Added notification if launch file was reloaded by another instance Fixed: sorting nodes in the host view Evaluate wildcard hostnames in the ssh configuration Improved host input in the connection dialog Updated vite dependency version Fixed the style of the “Node Details” tab when the namespace is too long
4.6.15 - 30.09.2025
Fixed crash of the daemon on exception while load_launch Fixed updating the package list when a package is selected
4.6.14 - 25.09.2025
Disabled pop-outs for headless mode Changed location of the info box in the packages tab Fixed join operator for headless mode Fixed “Missing rate limiting” reported by CodeQL
4.6.13 - 23.09.2025
Fixed open connect dialog if daemon is not running and ros_domain_id is not set
4.6.12 - 23.09.2025
Fixed load included link decorations Fixed open date context menu
4.6.11 - 23.09.2025
Added button to show daemon log for ros2 if start was failed Fixed show_ros_log parameter (for ROS2 daemon) Fix to avoid showing multiple local provider Ensure that no two items with the same ID are inserted into the launch history Do not use the RMW_IMPLEMENTATION by default from environment
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fkie_mas_gui at Robotics Stack Exchange
|
fkie_mas_gui package from fkie_multi_agent_suite repofkie_mas_daemon fkie_mas_discovery fkie_mas_gui fkie_mas_meta fkie_mas_msgs fkie_mas_pylib fkie_mas_sync |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 4.9.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS packages for detection, synchronization (ros1) and graphical management of multi-robots |
| Checkout URI | https://github.com/fkie/fkie-multi-agent-suite.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2025-11-28 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Alexander Tiderko
- Carlos Tampier
Authors
- Francisco Garcia
- Carlos Tampier
- Alexander Tiderko
MAS GUI
New Node Manager for ROS (1/2).
The MAS GUI is composed by two main parts: A Back-End component (daemon with WebSocket), and a Front-End Component (powered by Electron and ReactJS).
Install
We need to first install dependencies and run both Front and Back-End components:
Install dependencies
You need a running TTYD to show screen or log output of the nodes.
sudo snap install ttyd --classic
Update nodejs to v20
The code have been tested with NodeJS v20.15.0:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
Server Side (Back-End)
cd ros_workspace/src
git clone https://github.com/fkie/fkie-multi-agent-suite.git fkie-multi-agent-suite
rosdep update
rosdep install -i --as-root pip:false --reinstall --from-paths fkie-multi-agent-suite
Then build all packages:
catkin build fkie_mas_meta
or
colcon build --packages-select fkie_mas_meta
Client Side (Front-End)
Only for developer mode: Download and install JavaScript module dependencies:
cd fkie_mas_gui
npm install
npm run build
Usage
Run the app in developer mode:
npm run dev:ns
The app will start automatically the local daemon and master discovery nodes.
Start only as node (without GUI)
Starts a server on default port 6274. You can change the port in electron.vite.config.ts.
npm run server:ns
Then open in browser http://localhost:6274
Websocket communication
| Action | Message Format | Description |
|---|---|---|
| Message | {“uri”: str, message: JSONObject } | Publish messages to given topic (URI) |
| Subscribe to an URI | {“sub”, [str]} | Receive all messages published to this URI |
| Unsubscribe from an URI | {“unsub”, [str]} | Stop receiving messages send to this URI |
| Remote procedure call (RPC) | {“uri”: str, “id”: number, “params”: []} | id is unique request. params is a is list with parameters for the remote procedure call. |
| Reply for successful RPC | {“id”: number, “result”: JSONObject } | id is unique request id. |
| Reply with error while RPC | {“id”: number, “error”: str } | id is unique request id. |
Supported interface URIs
| Interface URI | Type | Function | Description |
|---|---|---|---|
| ros.daemon.ready | PUB | => {'status': bool, "timestamp": float} |
Sent by the daemon at an interval |
| ros.discovery.ready | PUB | => {'status': bool} |
|
| ros.daemon.get_version | RPC | () => DaemonVersion |
see fkie_mas_pylib/interface/runtime_interface/DaemonVersion |
| ros.file.get | RPC | (path: str) => FileItem |
see fkie_mas_pylib/interface/file_interface/FileItem |
| ros.file.save | RPC | (file: FileItem) => number |
write file content to providers file system. Return count of written bytes. |
| ros.nodes.get_list | RPC | () => RosNode[] |
see fkie_mas_pylib/interface/runtime_interface/RosNode |
| ros.nodes.get_services | RPC | () => RosService[] |
see fkie_mas_pylib/interface/runtime_interface/RosService |
File truncated at 100 lines see the full file
Changelog
4.9.0 - 28.11.2025
Allow deselection of topics, services, and nodes Added octet to input elements in publish panel Fixed open publish panel if no topic is selected Optimized handling in the publish panel
4.8.2 - 27.11.2025
Removed snackbar info Log panel revised Fixed layout that is corrupted after MAS update and layout reset Changed update strategy of the ros nodes Fixed environment variable set in a launch group Adjust default layout weights Added warning for true/false in launch dialog Added warning for true/false not capitalized in XML launch files Renamed “Node Details” to “Details” tab Show host details in the node details window instead of in a new tab
4.8.1 - 25.11.2025
Reduced number of service calls for updating composable and lifecycle nodes Fixed “Use of externally-controlled format string” warning
4.8.0 - 24.11.2025
Added ROS graph change detection to discovery node Fixed forced update topic and service list Reduced count of updates Added id to RosTopic and RosService Added tooltip for CMD in node details Do not show errors in the snackbar for already running requests Fixed deselection of nodes when they are updated Changed the highlighting when hovering Reduced the effort required for updates Fixed error when processing the stop queue Fixed version update info, if updates have not yet been checked for after startup Updated cli description
4.7.3 - 18.11.2025
Highlight true/false in XML launch files Added let proposal Fixed proposals for unless and if in XML launch file Fixed go back/forward in editor
4.7.2 - 18.11.2025
Load launch file on pressed enter load dialog Added option to start publisher with simtime Close load dialog before loadings the launch file to avoid multiple load trigger Added lifecycle context menu to node name Added namespace tag for composable_node in XML launch file proposals Improved log settings
4.7.1 - 14.11.2025
fixed error when loading ‘capability groups’ for included files
4.7.0 - 11.11.2025
Added notification if launch file was reloaded by another instance Fixed: sorting nodes in the host view Evaluate wildcard hostnames in the ssh configuration Improved host input in the connection dialog Updated vite dependency version Fixed the style of the “Node Details” tab when the namespace is too long
4.6.15 - 30.09.2025
Fixed crash of the daemon on exception while load_launch Fixed updating the package list when a package is selected
4.6.14 - 25.09.2025
Disabled pop-outs for headless mode Changed location of the info box in the packages tab Fixed join operator for headless mode Fixed “Missing rate limiting” reported by CodeQL
4.6.13 - 23.09.2025
Fixed open connect dialog if daemon is not running and ros_domain_id is not set
4.6.12 - 23.09.2025
Fixed load included link decorations Fixed open date context menu
4.6.11 - 23.09.2025
Added button to show daemon log for ros2 if start was failed Fixed show_ros_log parameter (for ROS2 daemon) Fix to avoid showing multiple local provider Ensure that no two items with the same ID are inserted into the launch history Do not use the RMW_IMPLEMENTATION by default from environment
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fkie_mas_gui at Robotics Stack Exchange
|
fkie_mas_gui package from fkie_multi_agent_suite repofkie_mas_daemon fkie_mas_discovery fkie_mas_gui fkie_mas_meta fkie_mas_msgs fkie_mas_pylib fkie_mas_sync |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 4.9.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS packages for detection, synchronization (ros1) and graphical management of multi-robots |
| Checkout URI | https://github.com/fkie/fkie-multi-agent-suite.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2025-11-28 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Alexander Tiderko
- Carlos Tampier
Authors
- Francisco Garcia
- Carlos Tampier
- Alexander Tiderko
MAS GUI
New Node Manager for ROS (1/2).
The MAS GUI is composed by two main parts: A Back-End component (daemon with WebSocket), and a Front-End Component (powered by Electron and ReactJS).
Install
We need to first install dependencies and run both Front and Back-End components:
Install dependencies
You need a running TTYD to show screen or log output of the nodes.
sudo snap install ttyd --classic
Update nodejs to v20
The code have been tested with NodeJS v20.15.0:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
Server Side (Back-End)
cd ros_workspace/src
git clone https://github.com/fkie/fkie-multi-agent-suite.git fkie-multi-agent-suite
rosdep update
rosdep install -i --as-root pip:false --reinstall --from-paths fkie-multi-agent-suite
Then build all packages:
catkin build fkie_mas_meta
or
colcon build --packages-select fkie_mas_meta
Client Side (Front-End)
Only for developer mode: Download and install JavaScript module dependencies:
cd fkie_mas_gui
npm install
npm run build
Usage
Run the app in developer mode:
npm run dev:ns
The app will start automatically the local daemon and master discovery nodes.
Start only as node (without GUI)
Starts a server on default port 6274. You can change the port in electron.vite.config.ts.
npm run server:ns
Then open in browser http://localhost:6274
Websocket communication
| Action | Message Format | Description |
|---|---|---|
| Message | {“uri”: str, message: JSONObject } | Publish messages to given topic (URI) |
| Subscribe to an URI | {“sub”, [str]} | Receive all messages published to this URI |
| Unsubscribe from an URI | {“unsub”, [str]} | Stop receiving messages send to this URI |
| Remote procedure call (RPC) | {“uri”: str, “id”: number, “params”: []} | id is unique request. params is a is list with parameters for the remote procedure call. |
| Reply for successful RPC | {“id”: number, “result”: JSONObject } | id is unique request id. |
| Reply with error while RPC | {“id”: number, “error”: str } | id is unique request id. |
Supported interface URIs
| Interface URI | Type | Function | Description |
|---|---|---|---|
| ros.daemon.ready | PUB | => {'status': bool, "timestamp": float} |
Sent by the daemon at an interval |
| ros.discovery.ready | PUB | => {'status': bool} |
|
| ros.daemon.get_version | RPC | () => DaemonVersion |
see fkie_mas_pylib/interface/runtime_interface/DaemonVersion |
| ros.file.get | RPC | (path: str) => FileItem |
see fkie_mas_pylib/interface/file_interface/FileItem |
| ros.file.save | RPC | (file: FileItem) => number |
write file content to providers file system. Return count of written bytes. |
| ros.nodes.get_list | RPC | () => RosNode[] |
see fkie_mas_pylib/interface/runtime_interface/RosNode |
| ros.nodes.get_services | RPC | () => RosService[] |
see fkie_mas_pylib/interface/runtime_interface/RosService |
File truncated at 100 lines see the full file
Changelog
4.9.0 - 28.11.2025
Allow deselection of topics, services, and nodes Added octet to input elements in publish panel Fixed open publish panel if no topic is selected Optimized handling in the publish panel
4.8.2 - 27.11.2025
Removed snackbar info Log panel revised Fixed layout that is corrupted after MAS update and layout reset Changed update strategy of the ros nodes Fixed environment variable set in a launch group Adjust default layout weights Added warning for true/false in launch dialog Added warning for true/false not capitalized in XML launch files Renamed “Node Details” to “Details” tab Show host details in the node details window instead of in a new tab
4.8.1 - 25.11.2025
Reduced number of service calls for updating composable and lifecycle nodes Fixed “Use of externally-controlled format string” warning
4.8.0 - 24.11.2025
Added ROS graph change detection to discovery node Fixed forced update topic and service list Reduced count of updates Added id to RosTopic and RosService Added tooltip for CMD in node details Do not show errors in the snackbar for already running requests Fixed deselection of nodes when they are updated Changed the highlighting when hovering Reduced the effort required for updates Fixed error when processing the stop queue Fixed version update info, if updates have not yet been checked for after startup Updated cli description
4.7.3 - 18.11.2025
Highlight true/false in XML launch files Added let proposal Fixed proposals for unless and if in XML launch file Fixed go back/forward in editor
4.7.2 - 18.11.2025
Load launch file on pressed enter load dialog Added option to start publisher with simtime Close load dialog before loadings the launch file to avoid multiple load trigger Added lifecycle context menu to node name Added namespace tag for composable_node in XML launch file proposals Improved log settings
4.7.1 - 14.11.2025
fixed error when loading ‘capability groups’ for included files
4.7.0 - 11.11.2025
Added notification if launch file was reloaded by another instance Fixed: sorting nodes in the host view Evaluate wildcard hostnames in the ssh configuration Improved host input in the connection dialog Updated vite dependency version Fixed the style of the “Node Details” tab when the namespace is too long
4.6.15 - 30.09.2025
Fixed crash of the daemon on exception while load_launch Fixed updating the package list when a package is selected
4.6.14 - 25.09.2025
Disabled pop-outs for headless mode Changed location of the info box in the packages tab Fixed join operator for headless mode Fixed “Missing rate limiting” reported by CodeQL
4.6.13 - 23.09.2025
Fixed open connect dialog if daemon is not running and ros_domain_id is not set
4.6.12 - 23.09.2025
Fixed load included link decorations Fixed open date context menu
4.6.11 - 23.09.2025
Added button to show daemon log for ros2 if start was failed Fixed show_ros_log parameter (for ROS2 daemon) Fix to avoid showing multiple local provider Ensure that no two items with the same ID are inserted into the launch history Do not use the RMW_IMPLEMENTATION by default from environment
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fkie_mas_gui at Robotics Stack Exchange
|
fkie_mas_gui package from fkie_multi_agent_suite repofkie_mas_daemon fkie_mas_discovery fkie_mas_gui fkie_mas_meta fkie_mas_msgs fkie_mas_pylib fkie_mas_sync |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 4.9.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS packages for detection, synchronization (ros1) and graphical management of multi-robots |
| Checkout URI | https://github.com/fkie/fkie-multi-agent-suite.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2025-11-28 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Alexander Tiderko
- Carlos Tampier
Authors
- Francisco Garcia
- Carlos Tampier
- Alexander Tiderko
MAS GUI
New Node Manager for ROS (1/2).
The MAS GUI is composed by two main parts: A Back-End component (daemon with WebSocket), and a Front-End Component (powered by Electron and ReactJS).
Install
We need to first install dependencies and run both Front and Back-End components:
Install dependencies
You need a running TTYD to show screen or log output of the nodes.
sudo snap install ttyd --classic
Update nodejs to v20
The code have been tested with NodeJS v20.15.0:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
Server Side (Back-End)
cd ros_workspace/src
git clone https://github.com/fkie/fkie-multi-agent-suite.git fkie-multi-agent-suite
rosdep update
rosdep install -i --as-root pip:false --reinstall --from-paths fkie-multi-agent-suite
Then build all packages:
catkin build fkie_mas_meta
or
colcon build --packages-select fkie_mas_meta
Client Side (Front-End)
Only for developer mode: Download and install JavaScript module dependencies:
cd fkie_mas_gui
npm install
npm run build
Usage
Run the app in developer mode:
npm run dev:ns
The app will start automatically the local daemon and master discovery nodes.
Start only as node (without GUI)
Starts a server on default port 6274. You can change the port in electron.vite.config.ts.
npm run server:ns
Then open in browser http://localhost:6274
Websocket communication
| Action | Message Format | Description |
|---|---|---|
| Message | {“uri”: str, message: JSONObject } | Publish messages to given topic (URI) |
| Subscribe to an URI | {“sub”, [str]} | Receive all messages published to this URI |
| Unsubscribe from an URI | {“unsub”, [str]} | Stop receiving messages send to this URI |
| Remote procedure call (RPC) | {“uri”: str, “id”: number, “params”: []} | id is unique request. params is a is list with parameters for the remote procedure call. |
| Reply for successful RPC | {“id”: number, “result”: JSONObject } | id is unique request id. |
| Reply with error while RPC | {“id”: number, “error”: str } | id is unique request id. |
Supported interface URIs
| Interface URI | Type | Function | Description |
|---|---|---|---|
| ros.daemon.ready | PUB | => {'status': bool, "timestamp": float} |
Sent by the daemon at an interval |
| ros.discovery.ready | PUB | => {'status': bool} |
|
| ros.daemon.get_version | RPC | () => DaemonVersion |
see fkie_mas_pylib/interface/runtime_interface/DaemonVersion |
| ros.file.get | RPC | (path: str) => FileItem |
see fkie_mas_pylib/interface/file_interface/FileItem |
| ros.file.save | RPC | (file: FileItem) => number |
write file content to providers file system. Return count of written bytes. |
| ros.nodes.get_list | RPC | () => RosNode[] |
see fkie_mas_pylib/interface/runtime_interface/RosNode |
| ros.nodes.get_services | RPC | () => RosService[] |
see fkie_mas_pylib/interface/runtime_interface/RosService |
File truncated at 100 lines see the full file
Changelog
4.9.0 - 28.11.2025
Allow deselection of topics, services, and nodes Added octet to input elements in publish panel Fixed open publish panel if no topic is selected Optimized handling in the publish panel
4.8.2 - 27.11.2025
Removed snackbar info Log panel revised Fixed layout that is corrupted after MAS update and layout reset Changed update strategy of the ros nodes Fixed environment variable set in a launch group Adjust default layout weights Added warning for true/false in launch dialog Added warning for true/false not capitalized in XML launch files Renamed “Node Details” to “Details” tab Show host details in the node details window instead of in a new tab
4.8.1 - 25.11.2025
Reduced number of service calls for updating composable and lifecycle nodes Fixed “Use of externally-controlled format string” warning
4.8.0 - 24.11.2025
Added ROS graph change detection to discovery node Fixed forced update topic and service list Reduced count of updates Added id to RosTopic and RosService Added tooltip for CMD in node details Do not show errors in the snackbar for already running requests Fixed deselection of nodes when they are updated Changed the highlighting when hovering Reduced the effort required for updates Fixed error when processing the stop queue Fixed version update info, if updates have not yet been checked for after startup Updated cli description
4.7.3 - 18.11.2025
Highlight true/false in XML launch files Added let proposal Fixed proposals for unless and if in XML launch file Fixed go back/forward in editor
4.7.2 - 18.11.2025
Load launch file on pressed enter load dialog Added option to start publisher with simtime Close load dialog before loadings the launch file to avoid multiple load trigger Added lifecycle context menu to node name Added namespace tag for composable_node in XML launch file proposals Improved log settings
4.7.1 - 14.11.2025
fixed error when loading ‘capability groups’ for included files
4.7.0 - 11.11.2025
Added notification if launch file was reloaded by another instance Fixed: sorting nodes in the host view Evaluate wildcard hostnames in the ssh configuration Improved host input in the connection dialog Updated vite dependency version Fixed the style of the “Node Details” tab when the namespace is too long
4.6.15 - 30.09.2025
Fixed crash of the daemon on exception while load_launch Fixed updating the package list when a package is selected
4.6.14 - 25.09.2025
Disabled pop-outs for headless mode Changed location of the info box in the packages tab Fixed join operator for headless mode Fixed “Missing rate limiting” reported by CodeQL
4.6.13 - 23.09.2025
Fixed open connect dialog if daemon is not running and ros_domain_id is not set
4.6.12 - 23.09.2025
Fixed load included link decorations Fixed open date context menu
4.6.11 - 23.09.2025
Added button to show daemon log for ros2 if start was failed Fixed show_ros_log parameter (for ROS2 daemon) Fix to avoid showing multiple local provider Ensure that no two items with the same ID are inserted into the launch history Do not use the RMW_IMPLEMENTATION by default from environment
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fkie_mas_gui at Robotics Stack Exchange
|
fkie_mas_gui package from fkie_multi_agent_suite repofkie_mas_daemon fkie_mas_discovery fkie_mas_gui fkie_mas_meta fkie_mas_msgs fkie_mas_pylib fkie_mas_sync |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 4.9.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS packages for detection, synchronization (ros1) and graphical management of multi-robots |
| Checkout URI | https://github.com/fkie/fkie-multi-agent-suite.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2025-11-28 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Alexander Tiderko
- Carlos Tampier
Authors
- Francisco Garcia
- Carlos Tampier
- Alexander Tiderko
MAS GUI
New Node Manager for ROS (1/2).
The MAS GUI is composed by two main parts: A Back-End component (daemon with WebSocket), and a Front-End Component (powered by Electron and ReactJS).
Install
We need to first install dependencies and run both Front and Back-End components:
Install dependencies
You need a running TTYD to show screen or log output of the nodes.
sudo snap install ttyd --classic
Update nodejs to v20
The code have been tested with NodeJS v20.15.0:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
Server Side (Back-End)
cd ros_workspace/src
git clone https://github.com/fkie/fkie-multi-agent-suite.git fkie-multi-agent-suite
rosdep update
rosdep install -i --as-root pip:false --reinstall --from-paths fkie-multi-agent-suite
Then build all packages:
catkin build fkie_mas_meta
or
colcon build --packages-select fkie_mas_meta
Client Side (Front-End)
Only for developer mode: Download and install JavaScript module dependencies:
cd fkie_mas_gui
npm install
npm run build
Usage
Run the app in developer mode:
npm run dev:ns
The app will start automatically the local daemon and master discovery nodes.
Start only as node (without GUI)
Starts a server on default port 6274. You can change the port in electron.vite.config.ts.
npm run server:ns
Then open in browser http://localhost:6274
Websocket communication
| Action | Message Format | Description |
|---|---|---|
| Message | {“uri”: str, message: JSONObject } | Publish messages to given topic (URI) |
| Subscribe to an URI | {“sub”, [str]} | Receive all messages published to this URI |
| Unsubscribe from an URI | {“unsub”, [str]} | Stop receiving messages send to this URI |
| Remote procedure call (RPC) | {“uri”: str, “id”: number, “params”: []} | id is unique request. params is a is list with parameters for the remote procedure call. |
| Reply for successful RPC | {“id”: number, “result”: JSONObject } | id is unique request id. |
| Reply with error while RPC | {“id”: number, “error”: str } | id is unique request id. |
Supported interface URIs
| Interface URI | Type | Function | Description |
|---|---|---|---|
| ros.daemon.ready | PUB | => {'status': bool, "timestamp": float} |
Sent by the daemon at an interval |
| ros.discovery.ready | PUB | => {'status': bool} |
|
| ros.daemon.get_version | RPC | () => DaemonVersion |
see fkie_mas_pylib/interface/runtime_interface/DaemonVersion |
| ros.file.get | RPC | (path: str) => FileItem |
see fkie_mas_pylib/interface/file_interface/FileItem |
| ros.file.save | RPC | (file: FileItem) => number |
write file content to providers file system. Return count of written bytes. |
| ros.nodes.get_list | RPC | () => RosNode[] |
see fkie_mas_pylib/interface/runtime_interface/RosNode |
| ros.nodes.get_services | RPC | () => RosService[] |
see fkie_mas_pylib/interface/runtime_interface/RosService |
File truncated at 100 lines see the full file
Changelog
4.9.0 - 28.11.2025
Allow deselection of topics, services, and nodes Added octet to input elements in publish panel Fixed open publish panel if no topic is selected Optimized handling in the publish panel
4.8.2 - 27.11.2025
Removed snackbar info Log panel revised Fixed layout that is corrupted after MAS update and layout reset Changed update strategy of the ros nodes Fixed environment variable set in a launch group Adjust default layout weights Added warning for true/false in launch dialog Added warning for true/false not capitalized in XML launch files Renamed “Node Details” to “Details” tab Show host details in the node details window instead of in a new tab
4.8.1 - 25.11.2025
Reduced number of service calls for updating composable and lifecycle nodes Fixed “Use of externally-controlled format string” warning
4.8.0 - 24.11.2025
Added ROS graph change detection to discovery node Fixed forced update topic and service list Reduced count of updates Added id to RosTopic and RosService Added tooltip for CMD in node details Do not show errors in the snackbar for already running requests Fixed deselection of nodes when they are updated Changed the highlighting when hovering Reduced the effort required for updates Fixed error when processing the stop queue Fixed version update info, if updates have not yet been checked for after startup Updated cli description
4.7.3 - 18.11.2025
Highlight true/false in XML launch files Added let proposal Fixed proposals for unless and if in XML launch file Fixed go back/forward in editor
4.7.2 - 18.11.2025
Load launch file on pressed enter load dialog Added option to start publisher with simtime Close load dialog before loadings the launch file to avoid multiple load trigger Added lifecycle context menu to node name Added namespace tag for composable_node in XML launch file proposals Improved log settings
4.7.1 - 14.11.2025
fixed error when loading ‘capability groups’ for included files
4.7.0 - 11.11.2025
Added notification if launch file was reloaded by another instance Fixed: sorting nodes in the host view Evaluate wildcard hostnames in the ssh configuration Improved host input in the connection dialog Updated vite dependency version Fixed the style of the “Node Details” tab when the namespace is too long
4.6.15 - 30.09.2025
Fixed crash of the daemon on exception while load_launch Fixed updating the package list when a package is selected
4.6.14 - 25.09.2025
Disabled pop-outs for headless mode Changed location of the info box in the packages tab Fixed join operator for headless mode Fixed “Missing rate limiting” reported by CodeQL
4.6.13 - 23.09.2025
Fixed open connect dialog if daemon is not running and ros_domain_id is not set
4.6.12 - 23.09.2025
Fixed load included link decorations Fixed open date context menu
4.6.11 - 23.09.2025
Added button to show daemon log for ros2 if start was failed Fixed show_ros_log parameter (for ROS2 daemon) Fix to avoid showing multiple local provider Ensure that no two items with the same ID are inserted into the launch history Do not use the RMW_IMPLEMENTATION by default from environment
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fkie_mas_gui at Robotics Stack Exchange
|
fkie_mas_gui package from fkie_multi_agent_suite repofkie_mas_daemon fkie_mas_discovery fkie_mas_gui fkie_mas_meta fkie_mas_msgs fkie_mas_pylib fkie_mas_sync |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 4.9.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS packages for detection, synchronization (ros1) and graphical management of multi-robots |
| Checkout URI | https://github.com/fkie/fkie-multi-agent-suite.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2025-11-28 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Alexander Tiderko
- Carlos Tampier
Authors
- Francisco Garcia
- Carlos Tampier
- Alexander Tiderko
MAS GUI
New Node Manager for ROS (1/2).
The MAS GUI is composed by two main parts: A Back-End component (daemon with WebSocket), and a Front-End Component (powered by Electron and ReactJS).
Install
We need to first install dependencies and run both Front and Back-End components:
Install dependencies
You need a running TTYD to show screen or log output of the nodes.
sudo snap install ttyd --classic
Update nodejs to v20
The code have been tested with NodeJS v20.15.0:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
Server Side (Back-End)
cd ros_workspace/src
git clone https://github.com/fkie/fkie-multi-agent-suite.git fkie-multi-agent-suite
rosdep update
rosdep install -i --as-root pip:false --reinstall --from-paths fkie-multi-agent-suite
Then build all packages:
catkin build fkie_mas_meta
or
colcon build --packages-select fkie_mas_meta
Client Side (Front-End)
Only for developer mode: Download and install JavaScript module dependencies:
cd fkie_mas_gui
npm install
npm run build
Usage
Run the app in developer mode:
npm run dev:ns
The app will start automatically the local daemon and master discovery nodes.
Start only as node (without GUI)
Starts a server on default port 6274. You can change the port in electron.vite.config.ts.
npm run server:ns
Then open in browser http://localhost:6274
Websocket communication
| Action | Message Format | Description |
|---|---|---|
| Message | {“uri”: str, message: JSONObject } | Publish messages to given topic (URI) |
| Subscribe to an URI | {“sub”, [str]} | Receive all messages published to this URI |
| Unsubscribe from an URI | {“unsub”, [str]} | Stop receiving messages send to this URI |
| Remote procedure call (RPC) | {“uri”: str, “id”: number, “params”: []} | id is unique request. params is a is list with parameters for the remote procedure call. |
| Reply for successful RPC | {“id”: number, “result”: JSONObject } | id is unique request id. |
| Reply with error while RPC | {“id”: number, “error”: str } | id is unique request id. |
Supported interface URIs
| Interface URI | Type | Function | Description |
|---|---|---|---|
| ros.daemon.ready | PUB | => {'status': bool, "timestamp": float} |
Sent by the daemon at an interval |
| ros.discovery.ready | PUB | => {'status': bool} |
|
| ros.daemon.get_version | RPC | () => DaemonVersion |
see fkie_mas_pylib/interface/runtime_interface/DaemonVersion |
| ros.file.get | RPC | (path: str) => FileItem |
see fkie_mas_pylib/interface/file_interface/FileItem |
| ros.file.save | RPC | (file: FileItem) => number |
write file content to providers file system. Return count of written bytes. |
| ros.nodes.get_list | RPC | () => RosNode[] |
see fkie_mas_pylib/interface/runtime_interface/RosNode |
| ros.nodes.get_services | RPC | () => RosService[] |
see fkie_mas_pylib/interface/runtime_interface/RosService |
File truncated at 100 lines see the full file
Changelog
4.9.0 - 28.11.2025
Allow deselection of topics, services, and nodes Added octet to input elements in publish panel Fixed open publish panel if no topic is selected Optimized handling in the publish panel
4.8.2 - 27.11.2025
Removed snackbar info Log panel revised Fixed layout that is corrupted after MAS update and layout reset Changed update strategy of the ros nodes Fixed environment variable set in a launch group Adjust default layout weights Added warning for true/false in launch dialog Added warning for true/false not capitalized in XML launch files Renamed “Node Details” to “Details” tab Show host details in the node details window instead of in a new tab
4.8.1 - 25.11.2025
Reduced number of service calls for updating composable and lifecycle nodes Fixed “Use of externally-controlled format string” warning
4.8.0 - 24.11.2025
Added ROS graph change detection to discovery node Fixed forced update topic and service list Reduced count of updates Added id to RosTopic and RosService Added tooltip for CMD in node details Do not show errors in the snackbar for already running requests Fixed deselection of nodes when they are updated Changed the highlighting when hovering Reduced the effort required for updates Fixed error when processing the stop queue Fixed version update info, if updates have not yet been checked for after startup Updated cli description
4.7.3 - 18.11.2025
Highlight true/false in XML launch files Added let proposal Fixed proposals for unless and if in XML launch file Fixed go back/forward in editor
4.7.2 - 18.11.2025
Load launch file on pressed enter load dialog Added option to start publisher with simtime Close load dialog before loadings the launch file to avoid multiple load trigger Added lifecycle context menu to node name Added namespace tag for composable_node in XML launch file proposals Improved log settings
4.7.1 - 14.11.2025
fixed error when loading ‘capability groups’ for included files
4.7.0 - 11.11.2025
Added notification if launch file was reloaded by another instance Fixed: sorting nodes in the host view Evaluate wildcard hostnames in the ssh configuration Improved host input in the connection dialog Updated vite dependency version Fixed the style of the “Node Details” tab when the namespace is too long
4.6.15 - 30.09.2025
Fixed crash of the daemon on exception while load_launch Fixed updating the package list when a package is selected
4.6.14 - 25.09.2025
Disabled pop-outs for headless mode Changed location of the info box in the packages tab Fixed join operator for headless mode Fixed “Missing rate limiting” reported by CodeQL
4.6.13 - 23.09.2025
Fixed open connect dialog if daemon is not running and ros_domain_id is not set
4.6.12 - 23.09.2025
Fixed load included link decorations Fixed open date context menu
4.6.11 - 23.09.2025
Added button to show daemon log for ros2 if start was failed Fixed show_ros_log parameter (for ROS2 daemon) Fix to avoid showing multiple local provider Ensure that no two items with the same ID are inserted into the launch history Do not use the RMW_IMPLEMENTATION by default from environment
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fkie_mas_gui at Robotics Stack Exchange
|
fkie_mas_gui package from fkie_multi_agent_suite repofkie_mas_daemon fkie_mas_discovery fkie_mas_gui fkie_mas_meta fkie_mas_msgs fkie_mas_pylib fkie_mas_sync |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 4.9.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS packages for detection, synchronization (ros1) and graphical management of multi-robots |
| Checkout URI | https://github.com/fkie/fkie-multi-agent-suite.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2025-11-28 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Alexander Tiderko
- Carlos Tampier
Authors
- Francisco Garcia
- Carlos Tampier
- Alexander Tiderko
MAS GUI
New Node Manager for ROS (1/2).
The MAS GUI is composed by two main parts: A Back-End component (daemon with WebSocket), and a Front-End Component (powered by Electron and ReactJS).
Install
We need to first install dependencies and run both Front and Back-End components:
Install dependencies
You need a running TTYD to show screen or log output of the nodes.
sudo snap install ttyd --classic
Update nodejs to v20
The code have been tested with NodeJS v20.15.0:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
Server Side (Back-End)
cd ros_workspace/src
git clone https://github.com/fkie/fkie-multi-agent-suite.git fkie-multi-agent-suite
rosdep update
rosdep install -i --as-root pip:false --reinstall --from-paths fkie-multi-agent-suite
Then build all packages:
catkin build fkie_mas_meta
or
colcon build --packages-select fkie_mas_meta
Client Side (Front-End)
Only for developer mode: Download and install JavaScript module dependencies:
cd fkie_mas_gui
npm install
npm run build
Usage
Run the app in developer mode:
npm run dev:ns
The app will start automatically the local daemon and master discovery nodes.
Start only as node (without GUI)
Starts a server on default port 6274. You can change the port in electron.vite.config.ts.
npm run server:ns
Then open in browser http://localhost:6274
Websocket communication
| Action | Message Format | Description |
|---|---|---|
| Message | {“uri”: str, message: JSONObject } | Publish messages to given topic (URI) |
| Subscribe to an URI | {“sub”, [str]} | Receive all messages published to this URI |
| Unsubscribe from an URI | {“unsub”, [str]} | Stop receiving messages send to this URI |
| Remote procedure call (RPC) | {“uri”: str, “id”: number, “params”: []} | id is unique request. params is a is list with parameters for the remote procedure call. |
| Reply for successful RPC | {“id”: number, “result”: JSONObject } | id is unique request id. |
| Reply with error while RPC | {“id”: number, “error”: str } | id is unique request id. |
Supported interface URIs
| Interface URI | Type | Function | Description |
|---|---|---|---|
| ros.daemon.ready | PUB | => {'status': bool, "timestamp": float} |
Sent by the daemon at an interval |
| ros.discovery.ready | PUB | => {'status': bool} |
|
| ros.daemon.get_version | RPC | () => DaemonVersion |
see fkie_mas_pylib/interface/runtime_interface/DaemonVersion |
| ros.file.get | RPC | (path: str) => FileItem |
see fkie_mas_pylib/interface/file_interface/FileItem |
| ros.file.save | RPC | (file: FileItem) => number |
write file content to providers file system. Return count of written bytes. |
| ros.nodes.get_list | RPC | () => RosNode[] |
see fkie_mas_pylib/interface/runtime_interface/RosNode |
| ros.nodes.get_services | RPC | () => RosService[] |
see fkie_mas_pylib/interface/runtime_interface/RosService |
File truncated at 100 lines see the full file
Changelog
4.9.0 - 28.11.2025
Allow deselection of topics, services, and nodes Added octet to input elements in publish panel Fixed open publish panel if no topic is selected Optimized handling in the publish panel
4.8.2 - 27.11.2025
Removed snackbar info Log panel revised Fixed layout that is corrupted after MAS update and layout reset Changed update strategy of the ros nodes Fixed environment variable set in a launch group Adjust default layout weights Added warning for true/false in launch dialog Added warning for true/false not capitalized in XML launch files Renamed “Node Details” to “Details” tab Show host details in the node details window instead of in a new tab
4.8.1 - 25.11.2025
Reduced number of service calls for updating composable and lifecycle nodes Fixed “Use of externally-controlled format string” warning
4.8.0 - 24.11.2025
Added ROS graph change detection to discovery node Fixed forced update topic and service list Reduced count of updates Added id to RosTopic and RosService Added tooltip for CMD in node details Do not show errors in the snackbar for already running requests Fixed deselection of nodes when they are updated Changed the highlighting when hovering Reduced the effort required for updates Fixed error when processing the stop queue Fixed version update info, if updates have not yet been checked for after startup Updated cli description
4.7.3 - 18.11.2025
Highlight true/false in XML launch files Added let proposal Fixed proposals for unless and if in XML launch file Fixed go back/forward in editor
4.7.2 - 18.11.2025
Load launch file on pressed enter load dialog Added option to start publisher with simtime Close load dialog before loadings the launch file to avoid multiple load trigger Added lifecycle context menu to node name Added namespace tag for composable_node in XML launch file proposals Improved log settings
4.7.1 - 14.11.2025
fixed error when loading ‘capability groups’ for included files
4.7.0 - 11.11.2025
Added notification if launch file was reloaded by another instance Fixed: sorting nodes in the host view Evaluate wildcard hostnames in the ssh configuration Improved host input in the connection dialog Updated vite dependency version Fixed the style of the “Node Details” tab when the namespace is too long
4.6.15 - 30.09.2025
Fixed crash of the daemon on exception while load_launch Fixed updating the package list when a package is selected
4.6.14 - 25.09.2025
Disabled pop-outs for headless mode Changed location of the info box in the packages tab Fixed join operator for headless mode Fixed “Missing rate limiting” reported by CodeQL
4.6.13 - 23.09.2025
Fixed open connect dialog if daemon is not running and ros_domain_id is not set
4.6.12 - 23.09.2025
Fixed load included link decorations Fixed open date context menu
4.6.11 - 23.09.2025
Added button to show daemon log for ros2 if start was failed Fixed show_ros_log parameter (for ROS2 daemon) Fix to avoid showing multiple local provider Ensure that no two items with the same ID are inserted into the launch history Do not use the RMW_IMPLEMENTATION by default from environment
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake |