|
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
| Version | 0.7.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/automatika-robotics/ros-sugar.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [](https://opensource.org/licenses/MIT) [](https://www.python.org/downloads/) [](https://docs.ros.org/en/humble/index.html) [](https://discord.gg/B9ZU6qjzND) **The orchestration layer for event-driven ROS 2 systems** [**EMOS Documentation**](https://emos.automatikarobotics.com) | [**Developer Docs**](https://sugarcoat.automatikarobotics.com) | [**Discord**](https://discord.gg/B9ZU6qjzND)
What is Sugarcoat?
Sugarcoat is the orchestration layer of the EMOS (Embodied Operating System) ecosystem by Automatika Robotics. It is a meta-framework that replaces fragmented ROS2 development with a unified workflow, providing a high-level Python API to build robust lifecycle-managed components and orchestrate them into cohesive, self-healing systems using an event-driven architecture.
For full documentation, tutorials, and recipes, visit emos.automatikarobotics.com.
Key Features & Core Pillars
| Feature | Description |
|---|---|
| Smart Components | Every component is a managed lifecycle node (Configure, Activate, Deactivate) out of the box. It features type-safe configurations via attrs and declarative auto-wiring for inputs/outputs. |
| Active Resilience |
Built-in “Immune System” for ROS2 nodes. Components actively report their Health Status (Algorithm, Component, or System failures) and automatically trigger distributed Fallbacks to self-heal without crashing. |
| Event-Driven Behavior | Define global Events (e.g., Event(battery < 10.0)) and Actions in pure, readable Python. These act as triggers that monitor ROS2 topics natively and execute instantly regardless of current system state. |
| Centralized Orchestration | A powerful Launcher acts as a pythonic alternative to ros2 launch. It supports multi-threaded or multi-process execution, actively supervising component lifecycles at runtime. |
| Universal Applications | Robot Plugins act as a translation layer. This allows you to write generic, portable automation logic (recipes) that run on any robot without code changes. |
| Dynamic Web UI | Auto-generates a fully functional web frontend for every topic, parameter, and event instantly. |
Dynamic Web UI for Sugarcoat Recipes
The Dynamic Web UI feature takes system visibility and control to the next level. Built with FastHTML and MonsterUI, it is designed to automatically generate a fully dynamic, extensible web interface for any Sugarcoat recipe, completely eliminating the need for manual front-end development.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Point Navigation Recipe An example for an automatically generated UI for a point navigation system from Kompass. The UI automatically renders map data, and sends navigation goals to the robot.
What’s Inside?
- Automatic Settings UI: Interfaces for configuring the settings of all Components used in your recipe are generated on the fly.
- Auto I/O Visualization: Front-end controls and data visualizations for UI Inputs and Outputs are created automatically.
- WebSocket-Based Streaming: Features bidirectional, low-latency communication for streaming text, image, and audio messages.
- Responsive Layouts: Input and output elements are presented in clear, adaptable grid layouts.
- Extensible Design: Easily add support for new message types and custom visualizations through extensions.
Documentation
| Resource | URL |
|---|---|
| Usage Docs (EMOS) | emos.automatikarobotics.com |
| Developer Docs | sugarcoat.automatikarobotics.com |
| API Reference | sugarcoat.automatikarobotics.com/apidocs |
Installation
Sugarcoat is available for ROS versions Humble.
Using your Package Manager (Recommended)
On Ubuntu, for example:
sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar
Building from Source
```bash
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.7.1 (2026-06-05)
- (fix) Fixes stale reference in logged warning
- (chore) Adds more tests for plugins, http transport, route via host and telemetry bus
- (refactor) Changes from tcp to AF_UNIX sockets in transport bus and fixes pubilishing from multiple threads on the same sock via locks
- (fix) Makes rclpy_context test fixture tolerant of a pre-initialized context
- (docs) Updates robot plugins doc
- (feature) Adds robot config from plugin when defined
- (fix) Adds handling callbacks and publishers dict as sources of truth instead of in_topic and out_topic
- (chore) Adds correct docstring for plugin metadata
- (chore) Updates robot plugin tests
- (feature) Adds use_plugin to topic to get take topic type from
plugin
- Disambiguates topics of similar type by matching topic name with
keys available in plugin
- Keys can surface in errors or avaialble via inspection
- (feature) Adds plugin_action decorator for robot actions exposed by plugins
- (chore) Adds test for robot plugin feature
- (feature) Adds initialization and tear down of robot plugin host to the launcher
- (feature) Adds serialization of robot plugin in the generic executable
- (feature) Adds handling of external plugin topics and events blackboard in the monitor
- (feature) Wires the robot plugin handling in the component
- (feature) Adds robot command type that subclasses publisher for generalized publishing to robot via plugins
- (refactor) Removes old plugin init from serialized config
- (feautre) Adds new general purpose robot plugin infrastructure (feedback, robot commands, transports and plugin classes)
- (chore) Removes rolling from deb package build
- Contributors: ahr
0.7.0 (2026-04-30)
- (chore) Adds tests for base attrs
- (fix) Adds check for any type fields in base attrs
- (feature) Adds display of action server logs in the main logging card (#46)
- (fix) Changes sleep time between probe service response checks to 1/loop_rate instead of arbitrary constant
- (feature) Adds on_process_fail method to launcher that respawns
processes
- Adds lifecycle service calling methods in monitor to respawn processes and handle lifecylce transitions
- Creates unified timer for watching process start for initial launch and failed process launch
- Uses internal launch actions for emitting the action to launch all components at init
- (fix) Adds a param to base config for executor spin timeout to decouple it from loop rate
- (feature) Adds ui display for geometry types when no map element is present
- (fix) Specifies callback in tf listener timer (#43)
- (chore) Adds testing for execute action service
- (feature) Calling the execute method service for component actions now returns the method response
- (chore) Adds testing CI
- (chore) Adds test for safe restart
- (feature) Adds the safe restart context manager in base component
- Contributors: Maria Kabtoul, ahr, mkabtoul
0.6.1 (2026-04-11)
- (docs) Adds a more comprehensive guide for the internal events-actions system design
- (fix) Adds guard to avoid redundant checks for handle once events
- (feature) Adds tests for generic events with and without dynamic arguments for Actions
- (feature) Adds generic events management to Monitor
- (refactor) Removes overhead of serializing/deserializing events in Monitor
- (feature) Adds support for constructing event conditions using generic methods in the recipe polled at a given check_rate
- (chore) Removes unused commented code
- (chore) Improves system graph colors in light theme
- (feature) Makes system graph draggable and resizable
- (fix) Fixes arrow heads pointing direction for input/output topics
- (fix) Fixes multiple issues with input topics in node graph
- (feature) Adds events and actions to the graph and adds events detail card
- (refactor) Refactors building system info and adds condition serialization to events
- (fix) Fixes fetching decorated methods in component
- (feature) Adds endpoints for system info graph
- (feature) Adds front end elements for system info graph
- (feature) Adds serialized system info generation in the launcher
- (fix) Removes unused imports
- (fix) Sets destroyed publisher object to None to avoid rclpy errors during restart
- Contributors: ahr, mkabtoul
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| automatika_embodied_agents | |
| kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
|
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
| Version | 0.7.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/automatika-robotics/ros-sugar.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [](https://opensource.org/licenses/MIT) [](https://www.python.org/downloads/) [](https://docs.ros.org/en/humble/index.html) [](https://discord.gg/B9ZU6qjzND) **The orchestration layer for event-driven ROS 2 systems** [**EMOS Documentation**](https://emos.automatikarobotics.com) | [**Developer Docs**](https://sugarcoat.automatikarobotics.com) | [**Discord**](https://discord.gg/B9ZU6qjzND)
What is Sugarcoat?
Sugarcoat is the orchestration layer of the EMOS (Embodied Operating System) ecosystem by Automatika Robotics. It is a meta-framework that replaces fragmented ROS2 development with a unified workflow, providing a high-level Python API to build robust lifecycle-managed components and orchestrate them into cohesive, self-healing systems using an event-driven architecture.
For full documentation, tutorials, and recipes, visit emos.automatikarobotics.com.
Key Features & Core Pillars
| Feature | Description |
|---|---|
| Smart Components | Every component is a managed lifecycle node (Configure, Activate, Deactivate) out of the box. It features type-safe configurations via attrs and declarative auto-wiring for inputs/outputs. |
| Active Resilience |
Built-in “Immune System” for ROS2 nodes. Components actively report their Health Status (Algorithm, Component, or System failures) and automatically trigger distributed Fallbacks to self-heal without crashing. |
| Event-Driven Behavior | Define global Events (e.g., Event(battery < 10.0)) and Actions in pure, readable Python. These act as triggers that monitor ROS2 topics natively and execute instantly regardless of current system state. |
| Centralized Orchestration | A powerful Launcher acts as a pythonic alternative to ros2 launch. It supports multi-threaded or multi-process execution, actively supervising component lifecycles at runtime. |
| Universal Applications | Robot Plugins act as a translation layer. This allows you to write generic, portable automation logic (recipes) that run on any robot without code changes. |
| Dynamic Web UI | Auto-generates a fully functional web frontend for every topic, parameter, and event instantly. |
Dynamic Web UI for Sugarcoat Recipes
The Dynamic Web UI feature takes system visibility and control to the next level. Built with FastHTML and MonsterUI, it is designed to automatically generate a fully dynamic, extensible web interface for any Sugarcoat recipe, completely eliminating the need for manual front-end development.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Point Navigation Recipe An example for an automatically generated UI for a point navigation system from Kompass. The UI automatically renders map data, and sends navigation goals to the robot.
What’s Inside?
- Automatic Settings UI: Interfaces for configuring the settings of all Components used in your recipe are generated on the fly.
- Auto I/O Visualization: Front-end controls and data visualizations for UI Inputs and Outputs are created automatically.
- WebSocket-Based Streaming: Features bidirectional, low-latency communication for streaming text, image, and audio messages.
- Responsive Layouts: Input and output elements are presented in clear, adaptable grid layouts.
- Extensible Design: Easily add support for new message types and custom visualizations through extensions.
Documentation
| Resource | URL |
|---|---|
| Usage Docs (EMOS) | emos.automatikarobotics.com |
| Developer Docs | sugarcoat.automatikarobotics.com |
| API Reference | sugarcoat.automatikarobotics.com/apidocs |
Installation
Sugarcoat is available for ROS versions Humble.
Using your Package Manager (Recommended)
On Ubuntu, for example:
sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar
Building from Source
```bash
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.7.1 (2026-06-05)
- (fix) Fixes stale reference in logged warning
- (chore) Adds more tests for plugins, http transport, route via host and telemetry bus
- (refactor) Changes from tcp to AF_UNIX sockets in transport bus and fixes pubilishing from multiple threads on the same sock via locks
- (fix) Makes rclpy_context test fixture tolerant of a pre-initialized context
- (docs) Updates robot plugins doc
- (feature) Adds robot config from plugin when defined
- (fix) Adds handling callbacks and publishers dict as sources of truth instead of in_topic and out_topic
- (chore) Adds correct docstring for plugin metadata
- (chore) Updates robot plugin tests
- (feature) Adds use_plugin to topic to get take topic type from
plugin
- Disambiguates topics of similar type by matching topic name with
keys available in plugin
- Keys can surface in errors or avaialble via inspection
- (feature) Adds plugin_action decorator for robot actions exposed by plugins
- (chore) Adds test for robot plugin feature
- (feature) Adds initialization and tear down of robot plugin host to the launcher
- (feature) Adds serialization of robot plugin in the generic executable
- (feature) Adds handling of external plugin topics and events blackboard in the monitor
- (feature) Wires the robot plugin handling in the component
- (feature) Adds robot command type that subclasses publisher for generalized publishing to robot via plugins
- (refactor) Removes old plugin init from serialized config
- (feautre) Adds new general purpose robot plugin infrastructure (feedback, robot commands, transports and plugin classes)
- (chore) Removes rolling from deb package build
- Contributors: ahr
0.7.0 (2026-04-30)
- (chore) Adds tests for base attrs
- (fix) Adds check for any type fields in base attrs
- (feature) Adds display of action server logs in the main logging card (#46)
- (fix) Changes sleep time between probe service response checks to 1/loop_rate instead of arbitrary constant
- (feature) Adds on_process_fail method to launcher that respawns
processes
- Adds lifecycle service calling methods in monitor to respawn processes and handle lifecylce transitions
- Creates unified timer for watching process start for initial launch and failed process launch
- Uses internal launch actions for emitting the action to launch all components at init
- (fix) Adds a param to base config for executor spin timeout to decouple it from loop rate
- (feature) Adds ui display for geometry types when no map element is present
- (fix) Specifies callback in tf listener timer (#43)
- (chore) Adds testing for execute action service
- (feature) Calling the execute method service for component actions now returns the method response
- (chore) Adds testing CI
- (chore) Adds test for safe restart
- (feature) Adds the safe restart context manager in base component
- Contributors: Maria Kabtoul, ahr, mkabtoul
0.6.1 (2026-04-11)
- (docs) Adds a more comprehensive guide for the internal events-actions system design
- (fix) Adds guard to avoid redundant checks for handle once events
- (feature) Adds tests for generic events with and without dynamic arguments for Actions
- (feature) Adds generic events management to Monitor
- (refactor) Removes overhead of serializing/deserializing events in Monitor
- (feature) Adds support for constructing event conditions using generic methods in the recipe polled at a given check_rate
- (chore) Removes unused commented code
- (chore) Improves system graph colors in light theme
- (feature) Makes system graph draggable and resizable
- (fix) Fixes arrow heads pointing direction for input/output topics
- (fix) Fixes multiple issues with input topics in node graph
- (feature) Adds events and actions to the graph and adds events detail card
- (refactor) Refactors building system info and adds condition serialization to events
- (fix) Fixes fetching decorated methods in component
- (feature) Adds endpoints for system info graph
- (feature) Adds front end elements for system info graph
- (feature) Adds serialized system info generation in the launcher
- (fix) Removes unused imports
- (fix) Sets destroyed publisher object to None to avoid rclpy errors during restart
- Contributors: ahr, mkabtoul
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| automatika_embodied_agents | |
| kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
|
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
| Version | 0.7.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/automatika-robotics/ros-sugar.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [](https://opensource.org/licenses/MIT) [](https://www.python.org/downloads/) [](https://docs.ros.org/en/humble/index.html) [](https://discord.gg/B9ZU6qjzND) **The orchestration layer for event-driven ROS 2 systems** [**EMOS Documentation**](https://emos.automatikarobotics.com) | [**Developer Docs**](https://sugarcoat.automatikarobotics.com) | [**Discord**](https://discord.gg/B9ZU6qjzND)
What is Sugarcoat?
Sugarcoat is the orchestration layer of the EMOS (Embodied Operating System) ecosystem by Automatika Robotics. It is a meta-framework that replaces fragmented ROS2 development with a unified workflow, providing a high-level Python API to build robust lifecycle-managed components and orchestrate them into cohesive, self-healing systems using an event-driven architecture.
For full documentation, tutorials, and recipes, visit emos.automatikarobotics.com.
Key Features & Core Pillars
| Feature | Description |
|---|---|
| Smart Components | Every component is a managed lifecycle node (Configure, Activate, Deactivate) out of the box. It features type-safe configurations via attrs and declarative auto-wiring for inputs/outputs. |
| Active Resilience |
Built-in “Immune System” for ROS2 nodes. Components actively report their Health Status (Algorithm, Component, or System failures) and automatically trigger distributed Fallbacks to self-heal without crashing. |
| Event-Driven Behavior | Define global Events (e.g., Event(battery < 10.0)) and Actions in pure, readable Python. These act as triggers that monitor ROS2 topics natively and execute instantly regardless of current system state. |
| Centralized Orchestration | A powerful Launcher acts as a pythonic alternative to ros2 launch. It supports multi-threaded or multi-process execution, actively supervising component lifecycles at runtime. |
| Universal Applications | Robot Plugins act as a translation layer. This allows you to write generic, portable automation logic (recipes) that run on any robot without code changes. |
| Dynamic Web UI | Auto-generates a fully functional web frontend for every topic, parameter, and event instantly. |
Dynamic Web UI for Sugarcoat Recipes
The Dynamic Web UI feature takes system visibility and control to the next level. Built with FastHTML and MonsterUI, it is designed to automatically generate a fully dynamic, extensible web interface for any Sugarcoat recipe, completely eliminating the need for manual front-end development.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Point Navigation Recipe An example for an automatically generated UI for a point navigation system from Kompass. The UI automatically renders map data, and sends navigation goals to the robot.
What’s Inside?
- Automatic Settings UI: Interfaces for configuring the settings of all Components used in your recipe are generated on the fly.
- Auto I/O Visualization: Front-end controls and data visualizations for UI Inputs and Outputs are created automatically.
- WebSocket-Based Streaming: Features bidirectional, low-latency communication for streaming text, image, and audio messages.
- Responsive Layouts: Input and output elements are presented in clear, adaptable grid layouts.
- Extensible Design: Easily add support for new message types and custom visualizations through extensions.
Documentation
| Resource | URL |
|---|---|
| Usage Docs (EMOS) | emos.automatikarobotics.com |
| Developer Docs | sugarcoat.automatikarobotics.com |
| API Reference | sugarcoat.automatikarobotics.com/apidocs |
Installation
Sugarcoat is available for ROS versions Humble.
Using your Package Manager (Recommended)
On Ubuntu, for example:
sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar
Building from Source
```bash
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.7.1 (2026-06-05)
- (fix) Fixes stale reference in logged warning
- (chore) Adds more tests for plugins, http transport, route via host and telemetry bus
- (refactor) Changes from tcp to AF_UNIX sockets in transport bus and fixes pubilishing from multiple threads on the same sock via locks
- (fix) Makes rclpy_context test fixture tolerant of a pre-initialized context
- (docs) Updates robot plugins doc
- (feature) Adds robot config from plugin when defined
- (fix) Adds handling callbacks and publishers dict as sources of truth instead of in_topic and out_topic
- (chore) Adds correct docstring for plugin metadata
- (chore) Updates robot plugin tests
- (feature) Adds use_plugin to topic to get take topic type from
plugin
- Disambiguates topics of similar type by matching topic name with
keys available in plugin
- Keys can surface in errors or avaialble via inspection
- (feature) Adds plugin_action decorator for robot actions exposed by plugins
- (chore) Adds test for robot plugin feature
- (feature) Adds initialization and tear down of robot plugin host to the launcher
- (feature) Adds serialization of robot plugin in the generic executable
- (feature) Adds handling of external plugin topics and events blackboard in the monitor
- (feature) Wires the robot plugin handling in the component
- (feature) Adds robot command type that subclasses publisher for generalized publishing to robot via plugins
- (refactor) Removes old plugin init from serialized config
- (feautre) Adds new general purpose robot plugin infrastructure (feedback, robot commands, transports and plugin classes)
- (chore) Removes rolling from deb package build
- Contributors: ahr
0.7.0 (2026-04-30)
- (chore) Adds tests for base attrs
- (fix) Adds check for any type fields in base attrs
- (feature) Adds display of action server logs in the main logging card (#46)
- (fix) Changes sleep time between probe service response checks to 1/loop_rate instead of arbitrary constant
- (feature) Adds on_process_fail method to launcher that respawns
processes
- Adds lifecycle service calling methods in monitor to respawn processes and handle lifecylce transitions
- Creates unified timer for watching process start for initial launch and failed process launch
- Uses internal launch actions for emitting the action to launch all components at init
- (fix) Adds a param to base config for executor spin timeout to decouple it from loop rate
- (feature) Adds ui display for geometry types when no map element is present
- (fix) Specifies callback in tf listener timer (#43)
- (chore) Adds testing for execute action service
- (feature) Calling the execute method service for component actions now returns the method response
- (chore) Adds testing CI
- (chore) Adds test for safe restart
- (feature) Adds the safe restart context manager in base component
- Contributors: Maria Kabtoul, ahr, mkabtoul
0.6.1 (2026-04-11)
- (docs) Adds a more comprehensive guide for the internal events-actions system design
- (fix) Adds guard to avoid redundant checks for handle once events
- (feature) Adds tests for generic events with and without dynamic arguments for Actions
- (feature) Adds generic events management to Monitor
- (refactor) Removes overhead of serializing/deserializing events in Monitor
- (feature) Adds support for constructing event conditions using generic methods in the recipe polled at a given check_rate
- (chore) Removes unused commented code
- (chore) Improves system graph colors in light theme
- (feature) Makes system graph draggable and resizable
- (fix) Fixes arrow heads pointing direction for input/output topics
- (fix) Fixes multiple issues with input topics in node graph
- (feature) Adds events and actions to the graph and adds events detail card
- (refactor) Refactors building system info and adds condition serialization to events
- (fix) Fixes fetching decorated methods in component
- (feature) Adds endpoints for system info graph
- (feature) Adds front end elements for system info graph
- (feature) Adds serialized system info generation in the launcher
- (fix) Removes unused imports
- (fix) Sets destroyed publisher object to None to avoid rclpy errors during restart
- Contributors: ahr, mkabtoul
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| automatika_embodied_agents | |
| kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
|
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
| Version | 0.7.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/automatika-robotics/ros-sugar.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [](https://opensource.org/licenses/MIT) [](https://www.python.org/downloads/) [](https://docs.ros.org/en/humble/index.html) [](https://discord.gg/B9ZU6qjzND) **The orchestration layer for event-driven ROS 2 systems** [**EMOS Documentation**](https://emos.automatikarobotics.com) | [**Developer Docs**](https://sugarcoat.automatikarobotics.com) | [**Discord**](https://discord.gg/B9ZU6qjzND)
What is Sugarcoat?
Sugarcoat is the orchestration layer of the EMOS (Embodied Operating System) ecosystem by Automatika Robotics. It is a meta-framework that replaces fragmented ROS2 development with a unified workflow, providing a high-level Python API to build robust lifecycle-managed components and orchestrate them into cohesive, self-healing systems using an event-driven architecture.
For full documentation, tutorials, and recipes, visit emos.automatikarobotics.com.
Key Features & Core Pillars
| Feature | Description |
|---|---|
| Smart Components | Every component is a managed lifecycle node (Configure, Activate, Deactivate) out of the box. It features type-safe configurations via attrs and declarative auto-wiring for inputs/outputs. |
| Active Resilience |
Built-in “Immune System” for ROS2 nodes. Components actively report their Health Status (Algorithm, Component, or System failures) and automatically trigger distributed Fallbacks to self-heal without crashing. |
| Event-Driven Behavior | Define global Events (e.g., Event(battery < 10.0)) and Actions in pure, readable Python. These act as triggers that monitor ROS2 topics natively and execute instantly regardless of current system state. |
| Centralized Orchestration | A powerful Launcher acts as a pythonic alternative to ros2 launch. It supports multi-threaded or multi-process execution, actively supervising component lifecycles at runtime. |
| Universal Applications | Robot Plugins act as a translation layer. This allows you to write generic, portable automation logic (recipes) that run on any robot without code changes. |
| Dynamic Web UI | Auto-generates a fully functional web frontend for every topic, parameter, and event instantly. |
Dynamic Web UI for Sugarcoat Recipes
The Dynamic Web UI feature takes system visibility and control to the next level. Built with FastHTML and MonsterUI, it is designed to automatically generate a fully dynamic, extensible web interface for any Sugarcoat recipe, completely eliminating the need for manual front-end development.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Point Navigation Recipe An example for an automatically generated UI for a point navigation system from Kompass. The UI automatically renders map data, and sends navigation goals to the robot.
What’s Inside?
- Automatic Settings UI: Interfaces for configuring the settings of all Components used in your recipe are generated on the fly.
- Auto I/O Visualization: Front-end controls and data visualizations for UI Inputs and Outputs are created automatically.
- WebSocket-Based Streaming: Features bidirectional, low-latency communication for streaming text, image, and audio messages.
- Responsive Layouts: Input and output elements are presented in clear, adaptable grid layouts.
- Extensible Design: Easily add support for new message types and custom visualizations through extensions.
Documentation
| Resource | URL |
|---|---|
| Usage Docs (EMOS) | emos.automatikarobotics.com |
| Developer Docs | sugarcoat.automatikarobotics.com |
| API Reference | sugarcoat.automatikarobotics.com/apidocs |
Installation
Sugarcoat is available for ROS versions Humble.
Using your Package Manager (Recommended)
On Ubuntu, for example:
sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar
Building from Source
```bash
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.7.1 (2026-06-05)
- (fix) Fixes stale reference in logged warning
- (chore) Adds more tests for plugins, http transport, route via host and telemetry bus
- (refactor) Changes from tcp to AF_UNIX sockets in transport bus and fixes pubilishing from multiple threads on the same sock via locks
- (fix) Makes rclpy_context test fixture tolerant of a pre-initialized context
- (docs) Updates robot plugins doc
- (feature) Adds robot config from plugin when defined
- (fix) Adds handling callbacks and publishers dict as sources of truth instead of in_topic and out_topic
- (chore) Adds correct docstring for plugin metadata
- (chore) Updates robot plugin tests
- (feature) Adds use_plugin to topic to get take topic type from
plugin
- Disambiguates topics of similar type by matching topic name with
keys available in plugin
- Keys can surface in errors or avaialble via inspection
- (feature) Adds plugin_action decorator for robot actions exposed by plugins
- (chore) Adds test for robot plugin feature
- (feature) Adds initialization and tear down of robot plugin host to the launcher
- (feature) Adds serialization of robot plugin in the generic executable
- (feature) Adds handling of external plugin topics and events blackboard in the monitor
- (feature) Wires the robot plugin handling in the component
- (feature) Adds robot command type that subclasses publisher for generalized publishing to robot via plugins
- (refactor) Removes old plugin init from serialized config
- (feautre) Adds new general purpose robot plugin infrastructure (feedback, robot commands, transports and plugin classes)
- (chore) Removes rolling from deb package build
- Contributors: ahr
0.7.0 (2026-04-30)
- (chore) Adds tests for base attrs
- (fix) Adds check for any type fields in base attrs
- (feature) Adds display of action server logs in the main logging card (#46)
- (fix) Changes sleep time between probe service response checks to 1/loop_rate instead of arbitrary constant
- (feature) Adds on_process_fail method to launcher that respawns
processes
- Adds lifecycle service calling methods in monitor to respawn processes and handle lifecylce transitions
- Creates unified timer for watching process start for initial launch and failed process launch
- Uses internal launch actions for emitting the action to launch all components at init
- (fix) Adds a param to base config for executor spin timeout to decouple it from loop rate
- (feature) Adds ui display for geometry types when no map element is present
- (fix) Specifies callback in tf listener timer (#43)
- (chore) Adds testing for execute action service
- (feature) Calling the execute method service for component actions now returns the method response
- (chore) Adds testing CI
- (chore) Adds test for safe restart
- (feature) Adds the safe restart context manager in base component
- Contributors: Maria Kabtoul, ahr, mkabtoul
0.6.1 (2026-04-11)
- (docs) Adds a more comprehensive guide for the internal events-actions system design
- (fix) Adds guard to avoid redundant checks for handle once events
- (feature) Adds tests for generic events with and without dynamic arguments for Actions
- (feature) Adds generic events management to Monitor
- (refactor) Removes overhead of serializing/deserializing events in Monitor
- (feature) Adds support for constructing event conditions using generic methods in the recipe polled at a given check_rate
- (chore) Removes unused commented code
- (chore) Improves system graph colors in light theme
- (feature) Makes system graph draggable and resizable
- (fix) Fixes arrow heads pointing direction for input/output topics
- (fix) Fixes multiple issues with input topics in node graph
- (feature) Adds events and actions to the graph and adds events detail card
- (refactor) Refactors building system info and adds condition serialization to events
- (fix) Fixes fetching decorated methods in component
- (feature) Adds endpoints for system info graph
- (feature) Adds front end elements for system info graph
- (feature) Adds serialized system info generation in the launcher
- (fix) Removes unused imports
- (fix) Sets destroyed publisher object to None to avoid rclpy errors during restart
- Contributors: ahr, mkabtoul
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| automatika_embodied_agents | |
| kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
|
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
| Version | 0.7.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/automatika-robotics/ros-sugar.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [](https://opensource.org/licenses/MIT) [](https://www.python.org/downloads/) [](https://docs.ros.org/en/humble/index.html) [](https://discord.gg/B9ZU6qjzND) **The orchestration layer for event-driven ROS 2 systems** [**EMOS Documentation**](https://emos.automatikarobotics.com) | [**Developer Docs**](https://sugarcoat.automatikarobotics.com) | [**Discord**](https://discord.gg/B9ZU6qjzND)
What is Sugarcoat?
Sugarcoat is the orchestration layer of the EMOS (Embodied Operating System) ecosystem by Automatika Robotics. It is a meta-framework that replaces fragmented ROS2 development with a unified workflow, providing a high-level Python API to build robust lifecycle-managed components and orchestrate them into cohesive, self-healing systems using an event-driven architecture.
For full documentation, tutorials, and recipes, visit emos.automatikarobotics.com.
Key Features & Core Pillars
| Feature | Description |
|---|---|
| Smart Components | Every component is a managed lifecycle node (Configure, Activate, Deactivate) out of the box. It features type-safe configurations via attrs and declarative auto-wiring for inputs/outputs. |
| Active Resilience |
Built-in “Immune System” for ROS2 nodes. Components actively report their Health Status (Algorithm, Component, or System failures) and automatically trigger distributed Fallbacks to self-heal without crashing. |
| Event-Driven Behavior | Define global Events (e.g., Event(battery < 10.0)) and Actions in pure, readable Python. These act as triggers that monitor ROS2 topics natively and execute instantly regardless of current system state. |
| Centralized Orchestration | A powerful Launcher acts as a pythonic alternative to ros2 launch. It supports multi-threaded or multi-process execution, actively supervising component lifecycles at runtime. |
| Universal Applications | Robot Plugins act as a translation layer. This allows you to write generic, portable automation logic (recipes) that run on any robot without code changes. |
| Dynamic Web UI | Auto-generates a fully functional web frontend for every topic, parameter, and event instantly. |
Dynamic Web UI for Sugarcoat Recipes
The Dynamic Web UI feature takes system visibility and control to the next level. Built with FastHTML and MonsterUI, it is designed to automatically generate a fully dynamic, extensible web interface for any Sugarcoat recipe, completely eliminating the need for manual front-end development.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Point Navigation Recipe An example for an automatically generated UI for a point navigation system from Kompass. The UI automatically renders map data, and sends navigation goals to the robot.
What’s Inside?
- Automatic Settings UI: Interfaces for configuring the settings of all Components used in your recipe are generated on the fly.
- Auto I/O Visualization: Front-end controls and data visualizations for UI Inputs and Outputs are created automatically.
- WebSocket-Based Streaming: Features bidirectional, low-latency communication for streaming text, image, and audio messages.
- Responsive Layouts: Input and output elements are presented in clear, adaptable grid layouts.
- Extensible Design: Easily add support for new message types and custom visualizations through extensions.
Documentation
| Resource | URL |
|---|---|
| Usage Docs (EMOS) | emos.automatikarobotics.com |
| Developer Docs | sugarcoat.automatikarobotics.com |
| API Reference | sugarcoat.automatikarobotics.com/apidocs |
Installation
Sugarcoat is available for ROS versions Humble.
Using your Package Manager (Recommended)
On Ubuntu, for example:
sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar
Building from Source
```bash
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.7.1 (2026-06-05)
- (fix) Fixes stale reference in logged warning
- (chore) Adds more tests for plugins, http transport, route via host and telemetry bus
- (refactor) Changes from tcp to AF_UNIX sockets in transport bus and fixes pubilishing from multiple threads on the same sock via locks
- (fix) Makes rclpy_context test fixture tolerant of a pre-initialized context
- (docs) Updates robot plugins doc
- (feature) Adds robot config from plugin when defined
- (fix) Adds handling callbacks and publishers dict as sources of truth instead of in_topic and out_topic
- (chore) Adds correct docstring for plugin metadata
- (chore) Updates robot plugin tests
- (feature) Adds use_plugin to topic to get take topic type from
plugin
- Disambiguates topics of similar type by matching topic name with
keys available in plugin
- Keys can surface in errors or avaialble via inspection
- (feature) Adds plugin_action decorator for robot actions exposed by plugins
- (chore) Adds test for robot plugin feature
- (feature) Adds initialization and tear down of robot plugin host to the launcher
- (feature) Adds serialization of robot plugin in the generic executable
- (feature) Adds handling of external plugin topics and events blackboard in the monitor
- (feature) Wires the robot plugin handling in the component
- (feature) Adds robot command type that subclasses publisher for generalized publishing to robot via plugins
- (refactor) Removes old plugin init from serialized config
- (feautre) Adds new general purpose robot plugin infrastructure (feedback, robot commands, transports and plugin classes)
- (chore) Removes rolling from deb package build
- Contributors: ahr
0.7.0 (2026-04-30)
- (chore) Adds tests for base attrs
- (fix) Adds check for any type fields in base attrs
- (feature) Adds display of action server logs in the main logging card (#46)
- (fix) Changes sleep time between probe service response checks to 1/loop_rate instead of arbitrary constant
- (feature) Adds on_process_fail method to launcher that respawns
processes
- Adds lifecycle service calling methods in monitor to respawn processes and handle lifecylce transitions
- Creates unified timer for watching process start for initial launch and failed process launch
- Uses internal launch actions for emitting the action to launch all components at init
- (fix) Adds a param to base config for executor spin timeout to decouple it from loop rate
- (feature) Adds ui display for geometry types when no map element is present
- (fix) Specifies callback in tf listener timer (#43)
- (chore) Adds testing for execute action service
- (feature) Calling the execute method service for component actions now returns the method response
- (chore) Adds testing CI
- (chore) Adds test for safe restart
- (feature) Adds the safe restart context manager in base component
- Contributors: Maria Kabtoul, ahr, mkabtoul
0.6.1 (2026-04-11)
- (docs) Adds a more comprehensive guide for the internal events-actions system design
- (fix) Adds guard to avoid redundant checks for handle once events
- (feature) Adds tests for generic events with and without dynamic arguments for Actions
- (feature) Adds generic events management to Monitor
- (refactor) Removes overhead of serializing/deserializing events in Monitor
- (feature) Adds support for constructing event conditions using generic methods in the recipe polled at a given check_rate
- (chore) Removes unused commented code
- (chore) Improves system graph colors in light theme
- (feature) Makes system graph draggable and resizable
- (fix) Fixes arrow heads pointing direction for input/output topics
- (fix) Fixes multiple issues with input topics in node graph
- (feature) Adds events and actions to the graph and adds events detail card
- (refactor) Refactors building system info and adds condition serialization to events
- (fix) Fixes fetching decorated methods in component
- (feature) Adds endpoints for system info graph
- (feature) Adds front end elements for system info graph
- (feature) Adds serialized system info generation in the launcher
- (fix) Removes unused imports
- (fix) Sets destroyed publisher object to None to avoid rclpy errors during restart
- Contributors: ahr, mkabtoul
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| automatika_embodied_agents | |
| kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
|
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
| Version | 0.7.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/automatika-robotics/ros-sugar.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [](https://opensource.org/licenses/MIT) [](https://www.python.org/downloads/) [](https://docs.ros.org/en/humble/index.html) [](https://discord.gg/B9ZU6qjzND) **The orchestration layer for event-driven ROS 2 systems** [**EMOS Documentation**](https://emos.automatikarobotics.com) | [**Developer Docs**](https://sugarcoat.automatikarobotics.com) | [**Discord**](https://discord.gg/B9ZU6qjzND)
What is Sugarcoat?
Sugarcoat is the orchestration layer of the EMOS (Embodied Operating System) ecosystem by Automatika Robotics. It is a meta-framework that replaces fragmented ROS2 development with a unified workflow, providing a high-level Python API to build robust lifecycle-managed components and orchestrate them into cohesive, self-healing systems using an event-driven architecture.
For full documentation, tutorials, and recipes, visit emos.automatikarobotics.com.
Key Features & Core Pillars
| Feature | Description |
|---|---|
| Smart Components | Every component is a managed lifecycle node (Configure, Activate, Deactivate) out of the box. It features type-safe configurations via attrs and declarative auto-wiring for inputs/outputs. |
| Active Resilience |
Built-in “Immune System” for ROS2 nodes. Components actively report their Health Status (Algorithm, Component, or System failures) and automatically trigger distributed Fallbacks to self-heal without crashing. |
| Event-Driven Behavior | Define global Events (e.g., Event(battery < 10.0)) and Actions in pure, readable Python. These act as triggers that monitor ROS2 topics natively and execute instantly regardless of current system state. |
| Centralized Orchestration | A powerful Launcher acts as a pythonic alternative to ros2 launch. It supports multi-threaded or multi-process execution, actively supervising component lifecycles at runtime. |
| Universal Applications | Robot Plugins act as a translation layer. This allows you to write generic, portable automation logic (recipes) that run on any robot without code changes. |
| Dynamic Web UI | Auto-generates a fully functional web frontend for every topic, parameter, and event instantly. |
Dynamic Web UI for Sugarcoat Recipes
The Dynamic Web UI feature takes system visibility and control to the next level. Built with FastHTML and MonsterUI, it is designed to automatically generate a fully dynamic, extensible web interface for any Sugarcoat recipe, completely eliminating the need for manual front-end development.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Point Navigation Recipe An example for an automatically generated UI for a point navigation system from Kompass. The UI automatically renders map data, and sends navigation goals to the robot.
What’s Inside?
- Automatic Settings UI: Interfaces for configuring the settings of all Components used in your recipe are generated on the fly.
- Auto I/O Visualization: Front-end controls and data visualizations for UI Inputs and Outputs are created automatically.
- WebSocket-Based Streaming: Features bidirectional, low-latency communication for streaming text, image, and audio messages.
- Responsive Layouts: Input and output elements are presented in clear, adaptable grid layouts.
- Extensible Design: Easily add support for new message types and custom visualizations through extensions.
Documentation
| Resource | URL |
|---|---|
| Usage Docs (EMOS) | emos.automatikarobotics.com |
| Developer Docs | sugarcoat.automatikarobotics.com |
| API Reference | sugarcoat.automatikarobotics.com/apidocs |
Installation
Sugarcoat is available for ROS versions Humble.
Using your Package Manager (Recommended)
On Ubuntu, for example:
sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar
Building from Source
```bash
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.7.1 (2026-06-05)
- (fix) Fixes stale reference in logged warning
- (chore) Adds more tests for plugins, http transport, route via host and telemetry bus
- (refactor) Changes from tcp to AF_UNIX sockets in transport bus and fixes pubilishing from multiple threads on the same sock via locks
- (fix) Makes rclpy_context test fixture tolerant of a pre-initialized context
- (docs) Updates robot plugins doc
- (feature) Adds robot config from plugin when defined
- (fix) Adds handling callbacks and publishers dict as sources of truth instead of in_topic and out_topic
- (chore) Adds correct docstring for plugin metadata
- (chore) Updates robot plugin tests
- (feature) Adds use_plugin to topic to get take topic type from
plugin
- Disambiguates topics of similar type by matching topic name with
keys available in plugin
- Keys can surface in errors or avaialble via inspection
- (feature) Adds plugin_action decorator for robot actions exposed by plugins
- (chore) Adds test for robot plugin feature
- (feature) Adds initialization and tear down of robot plugin host to the launcher
- (feature) Adds serialization of robot plugin in the generic executable
- (feature) Adds handling of external plugin topics and events blackboard in the monitor
- (feature) Wires the robot plugin handling in the component
- (feature) Adds robot command type that subclasses publisher for generalized publishing to robot via plugins
- (refactor) Removes old plugin init from serialized config
- (feautre) Adds new general purpose robot plugin infrastructure (feedback, robot commands, transports and plugin classes)
- (chore) Removes rolling from deb package build
- Contributors: ahr
0.7.0 (2026-04-30)
- (chore) Adds tests for base attrs
- (fix) Adds check for any type fields in base attrs
- (feature) Adds display of action server logs in the main logging card (#46)
- (fix) Changes sleep time between probe service response checks to 1/loop_rate instead of arbitrary constant
- (feature) Adds on_process_fail method to launcher that respawns
processes
- Adds lifecycle service calling methods in monitor to respawn processes and handle lifecylce transitions
- Creates unified timer for watching process start for initial launch and failed process launch
- Uses internal launch actions for emitting the action to launch all components at init
- (fix) Adds a param to base config for executor spin timeout to decouple it from loop rate
- (feature) Adds ui display for geometry types when no map element is present
- (fix) Specifies callback in tf listener timer (#43)
- (chore) Adds testing for execute action service
- (feature) Calling the execute method service for component actions now returns the method response
- (chore) Adds testing CI
- (chore) Adds test for safe restart
- (feature) Adds the safe restart context manager in base component
- Contributors: Maria Kabtoul, ahr, mkabtoul
0.6.1 (2026-04-11)
- (docs) Adds a more comprehensive guide for the internal events-actions system design
- (fix) Adds guard to avoid redundant checks for handle once events
- (feature) Adds tests for generic events with and without dynamic arguments for Actions
- (feature) Adds generic events management to Monitor
- (refactor) Removes overhead of serializing/deserializing events in Monitor
- (feature) Adds support for constructing event conditions using generic methods in the recipe polled at a given check_rate
- (chore) Removes unused commented code
- (chore) Improves system graph colors in light theme
- (feature) Makes system graph draggable and resizable
- (fix) Fixes arrow heads pointing direction for input/output topics
- (fix) Fixes multiple issues with input topics in node graph
- (feature) Adds events and actions to the graph and adds events detail card
- (refactor) Refactors building system info and adds condition serialization to events
- (fix) Fixes fetching decorated methods in component
- (feature) Adds endpoints for system info graph
- (feature) Adds front end elements for system info graph
- (feature) Adds serialized system info generation in the launcher
- (fix) Removes unused imports
- (fix) Sets destroyed publisher object to None to avoid rclpy errors during restart
- Contributors: ahr, mkabtoul
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| automatika_embodied_agents | |
| kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
|
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
| Version | 0.7.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/automatika-robotics/ros-sugar.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [](https://opensource.org/licenses/MIT) [](https://www.python.org/downloads/) [](https://docs.ros.org/en/humble/index.html) [](https://discord.gg/B9ZU6qjzND) **The orchestration layer for event-driven ROS 2 systems** [**EMOS Documentation**](https://emos.automatikarobotics.com) | [**Developer Docs**](https://sugarcoat.automatikarobotics.com) | [**Discord**](https://discord.gg/B9ZU6qjzND)
What is Sugarcoat?
Sugarcoat is the orchestration layer of the EMOS (Embodied Operating System) ecosystem by Automatika Robotics. It is a meta-framework that replaces fragmented ROS2 development with a unified workflow, providing a high-level Python API to build robust lifecycle-managed components and orchestrate them into cohesive, self-healing systems using an event-driven architecture.
For full documentation, tutorials, and recipes, visit emos.automatikarobotics.com.
Key Features & Core Pillars
| Feature | Description |
|---|---|
| Smart Components | Every component is a managed lifecycle node (Configure, Activate, Deactivate) out of the box. It features type-safe configurations via attrs and declarative auto-wiring for inputs/outputs. |
| Active Resilience |
Built-in “Immune System” for ROS2 nodes. Components actively report their Health Status (Algorithm, Component, or System failures) and automatically trigger distributed Fallbacks to self-heal without crashing. |
| Event-Driven Behavior | Define global Events (e.g., Event(battery < 10.0)) and Actions in pure, readable Python. These act as triggers that monitor ROS2 topics natively and execute instantly regardless of current system state. |
| Centralized Orchestration | A powerful Launcher acts as a pythonic alternative to ros2 launch. It supports multi-threaded or multi-process execution, actively supervising component lifecycles at runtime. |
| Universal Applications | Robot Plugins act as a translation layer. This allows you to write generic, portable automation logic (recipes) that run on any robot without code changes. |
| Dynamic Web UI | Auto-generates a fully functional web frontend for every topic, parameter, and event instantly. |
Dynamic Web UI for Sugarcoat Recipes
The Dynamic Web UI feature takes system visibility and control to the next level. Built with FastHTML and MonsterUI, it is designed to automatically generate a fully dynamic, extensible web interface for any Sugarcoat recipe, completely eliminating the need for manual front-end development.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Point Navigation Recipe An example for an automatically generated UI for a point navigation system from Kompass. The UI automatically renders map data, and sends navigation goals to the robot.
What’s Inside?
- Automatic Settings UI: Interfaces for configuring the settings of all Components used in your recipe are generated on the fly.
- Auto I/O Visualization: Front-end controls and data visualizations for UI Inputs and Outputs are created automatically.
- WebSocket-Based Streaming: Features bidirectional, low-latency communication for streaming text, image, and audio messages.
- Responsive Layouts: Input and output elements are presented in clear, adaptable grid layouts.
- Extensible Design: Easily add support for new message types and custom visualizations through extensions.
Documentation
| Resource | URL |
|---|---|
| Usage Docs (EMOS) | emos.automatikarobotics.com |
| Developer Docs | sugarcoat.automatikarobotics.com |
| API Reference | sugarcoat.automatikarobotics.com/apidocs |
Installation
Sugarcoat is available for ROS versions Humble.
Using your Package Manager (Recommended)
On Ubuntu, for example:
sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar
Building from Source
```bash
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.7.1 (2026-06-05)
- (fix) Fixes stale reference in logged warning
- (chore) Adds more tests for plugins, http transport, route via host and telemetry bus
- (refactor) Changes from tcp to AF_UNIX sockets in transport bus and fixes pubilishing from multiple threads on the same sock via locks
- (fix) Makes rclpy_context test fixture tolerant of a pre-initialized context
- (docs) Updates robot plugins doc
- (feature) Adds robot config from plugin when defined
- (fix) Adds handling callbacks and publishers dict as sources of truth instead of in_topic and out_topic
- (chore) Adds correct docstring for plugin metadata
- (chore) Updates robot plugin tests
- (feature) Adds use_plugin to topic to get take topic type from
plugin
- Disambiguates topics of similar type by matching topic name with
keys available in plugin
- Keys can surface in errors or avaialble via inspection
- (feature) Adds plugin_action decorator for robot actions exposed by plugins
- (chore) Adds test for robot plugin feature
- (feature) Adds initialization and tear down of robot plugin host to the launcher
- (feature) Adds serialization of robot plugin in the generic executable
- (feature) Adds handling of external plugin topics and events blackboard in the monitor
- (feature) Wires the robot plugin handling in the component
- (feature) Adds robot command type that subclasses publisher for generalized publishing to robot via plugins
- (refactor) Removes old plugin init from serialized config
- (feautre) Adds new general purpose robot plugin infrastructure (feedback, robot commands, transports and plugin classes)
- (chore) Removes rolling from deb package build
- Contributors: ahr
0.7.0 (2026-04-30)
- (chore) Adds tests for base attrs
- (fix) Adds check for any type fields in base attrs
- (feature) Adds display of action server logs in the main logging card (#46)
- (fix) Changes sleep time between probe service response checks to 1/loop_rate instead of arbitrary constant
- (feature) Adds on_process_fail method to launcher that respawns
processes
- Adds lifecycle service calling methods in monitor to respawn processes and handle lifecylce transitions
- Creates unified timer for watching process start for initial launch and failed process launch
- Uses internal launch actions for emitting the action to launch all components at init
- (fix) Adds a param to base config for executor spin timeout to decouple it from loop rate
- (feature) Adds ui display for geometry types when no map element is present
- (fix) Specifies callback in tf listener timer (#43)
- (chore) Adds testing for execute action service
- (feature) Calling the execute method service for component actions now returns the method response
- (chore) Adds testing CI
- (chore) Adds test for safe restart
- (feature) Adds the safe restart context manager in base component
- Contributors: Maria Kabtoul, ahr, mkabtoul
0.6.1 (2026-04-11)
- (docs) Adds a more comprehensive guide for the internal events-actions system design
- (fix) Adds guard to avoid redundant checks for handle once events
- (feature) Adds tests for generic events with and without dynamic arguments for Actions
- (feature) Adds generic events management to Monitor
- (refactor) Removes overhead of serializing/deserializing events in Monitor
- (feature) Adds support for constructing event conditions using generic methods in the recipe polled at a given check_rate
- (chore) Removes unused commented code
- (chore) Improves system graph colors in light theme
- (feature) Makes system graph draggable and resizable
- (fix) Fixes arrow heads pointing direction for input/output topics
- (fix) Fixes multiple issues with input topics in node graph
- (feature) Adds events and actions to the graph and adds events detail card
- (refactor) Refactors building system info and adds condition serialization to events
- (fix) Fixes fetching decorated methods in component
- (feature) Adds endpoints for system info graph
- (feature) Adds front end elements for system info graph
- (feature) Adds serialized system info generation in the launcher
- (fix) Removes unused imports
- (fix) Sets destroyed publisher object to None to avoid rclpy errors during restart
- Contributors: ahr, mkabtoul
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| automatika_embodied_agents | |
| kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
|
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
| Version | 0.7.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/automatika-robotics/ros-sugar.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [](https://opensource.org/licenses/MIT) [](https://www.python.org/downloads/) [](https://docs.ros.org/en/humble/index.html) [](https://discord.gg/B9ZU6qjzND) **The orchestration layer for event-driven ROS 2 systems** [**EMOS Documentation**](https://emos.automatikarobotics.com) | [**Developer Docs**](https://sugarcoat.automatikarobotics.com) | [**Discord**](https://discord.gg/B9ZU6qjzND)
What is Sugarcoat?
Sugarcoat is the orchestration layer of the EMOS (Embodied Operating System) ecosystem by Automatika Robotics. It is a meta-framework that replaces fragmented ROS2 development with a unified workflow, providing a high-level Python API to build robust lifecycle-managed components and orchestrate them into cohesive, self-healing systems using an event-driven architecture.
For full documentation, tutorials, and recipes, visit emos.automatikarobotics.com.
Key Features & Core Pillars
| Feature | Description |
|---|---|
| Smart Components | Every component is a managed lifecycle node (Configure, Activate, Deactivate) out of the box. It features type-safe configurations via attrs and declarative auto-wiring for inputs/outputs. |
| Active Resilience |
Built-in “Immune System” for ROS2 nodes. Components actively report their Health Status (Algorithm, Component, or System failures) and automatically trigger distributed Fallbacks to self-heal without crashing. |
| Event-Driven Behavior | Define global Events (e.g., Event(battery < 10.0)) and Actions in pure, readable Python. These act as triggers that monitor ROS2 topics natively and execute instantly regardless of current system state. |
| Centralized Orchestration | A powerful Launcher acts as a pythonic alternative to ros2 launch. It supports multi-threaded or multi-process execution, actively supervising component lifecycles at runtime. |
| Universal Applications | Robot Plugins act as a translation layer. This allows you to write generic, portable automation logic (recipes) that run on any robot without code changes. |
| Dynamic Web UI | Auto-generates a fully functional web frontend for every topic, parameter, and event instantly. |
Dynamic Web UI for Sugarcoat Recipes
The Dynamic Web UI feature takes system visibility and control to the next level. Built with FastHTML and MonsterUI, it is designed to automatically generate a fully dynamic, extensible web interface for any Sugarcoat recipe, completely eliminating the need for manual front-end development.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Point Navigation Recipe An example for an automatically generated UI for a point navigation system from Kompass. The UI automatically renders map data, and sends navigation goals to the robot.
What’s Inside?
- Automatic Settings UI: Interfaces for configuring the settings of all Components used in your recipe are generated on the fly.
- Auto I/O Visualization: Front-end controls and data visualizations for UI Inputs and Outputs are created automatically.
- WebSocket-Based Streaming: Features bidirectional, low-latency communication for streaming text, image, and audio messages.
- Responsive Layouts: Input and output elements are presented in clear, adaptable grid layouts.
- Extensible Design: Easily add support for new message types and custom visualizations through extensions.
Documentation
| Resource | URL |
|---|---|
| Usage Docs (EMOS) | emos.automatikarobotics.com |
| Developer Docs | sugarcoat.automatikarobotics.com |
| API Reference | sugarcoat.automatikarobotics.com/apidocs |
Installation
Sugarcoat is available for ROS versions Humble.
Using your Package Manager (Recommended)
On Ubuntu, for example:
sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar
Building from Source
```bash
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.7.1 (2026-06-05)
- (fix) Fixes stale reference in logged warning
- (chore) Adds more tests for plugins, http transport, route via host and telemetry bus
- (refactor) Changes from tcp to AF_UNIX sockets in transport bus and fixes pubilishing from multiple threads on the same sock via locks
- (fix) Makes rclpy_context test fixture tolerant of a pre-initialized context
- (docs) Updates robot plugins doc
- (feature) Adds robot config from plugin when defined
- (fix) Adds handling callbacks and publishers dict as sources of truth instead of in_topic and out_topic
- (chore) Adds correct docstring for plugin metadata
- (chore) Updates robot plugin tests
- (feature) Adds use_plugin to topic to get take topic type from
plugin
- Disambiguates topics of similar type by matching topic name with
keys available in plugin
- Keys can surface in errors or avaialble via inspection
- (feature) Adds plugin_action decorator for robot actions exposed by plugins
- (chore) Adds test for robot plugin feature
- (feature) Adds initialization and tear down of robot plugin host to the launcher
- (feature) Adds serialization of robot plugin in the generic executable
- (feature) Adds handling of external plugin topics and events blackboard in the monitor
- (feature) Wires the robot plugin handling in the component
- (feature) Adds robot command type that subclasses publisher for generalized publishing to robot via plugins
- (refactor) Removes old plugin init from serialized config
- (feautre) Adds new general purpose robot plugin infrastructure (feedback, robot commands, transports and plugin classes)
- (chore) Removes rolling from deb package build
- Contributors: ahr
0.7.0 (2026-04-30)
- (chore) Adds tests for base attrs
- (fix) Adds check for any type fields in base attrs
- (feature) Adds display of action server logs in the main logging card (#46)
- (fix) Changes sleep time between probe service response checks to 1/loop_rate instead of arbitrary constant
- (feature) Adds on_process_fail method to launcher that respawns
processes
- Adds lifecycle service calling methods in monitor to respawn processes and handle lifecylce transitions
- Creates unified timer for watching process start for initial launch and failed process launch
- Uses internal launch actions for emitting the action to launch all components at init
- (fix) Adds a param to base config for executor spin timeout to decouple it from loop rate
- (feature) Adds ui display for geometry types when no map element is present
- (fix) Specifies callback in tf listener timer (#43)
- (chore) Adds testing for execute action service
- (feature) Calling the execute method service for component actions now returns the method response
- (chore) Adds testing CI
- (chore) Adds test for safe restart
- (feature) Adds the safe restart context manager in base component
- Contributors: Maria Kabtoul, ahr, mkabtoul
0.6.1 (2026-04-11)
- (docs) Adds a more comprehensive guide for the internal events-actions system design
- (fix) Adds guard to avoid redundant checks for handle once events
- (feature) Adds tests for generic events with and without dynamic arguments for Actions
- (feature) Adds generic events management to Monitor
- (refactor) Removes overhead of serializing/deserializing events in Monitor
- (feature) Adds support for constructing event conditions using generic methods in the recipe polled at a given check_rate
- (chore) Removes unused commented code
- (chore) Improves system graph colors in light theme
- (feature) Makes system graph draggable and resizable
- (fix) Fixes arrow heads pointing direction for input/output topics
- (fix) Fixes multiple issues with input topics in node graph
- (feature) Adds events and actions to the graph and adds events detail card
- (refactor) Refactors building system info and adds condition serialization to events
- (fix) Fixes fetching decorated methods in component
- (feature) Adds endpoints for system info graph
- (feature) Adds front end elements for system info graph
- (feature) Adds serialized system info generation in the launcher
- (fix) Removes unused imports
- (fix) Sets destroyed publisher object to None to avoid rclpy errors during restart
- Contributors: ahr, mkabtoul
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| automatika_embodied_agents | |
| kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
|
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
| Version | 0.7.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/automatika-robotics/ros-sugar.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [](https://opensource.org/licenses/MIT) [](https://www.python.org/downloads/) [](https://docs.ros.org/en/humble/index.html) [](https://discord.gg/B9ZU6qjzND) **The orchestration layer for event-driven ROS 2 systems** [**EMOS Documentation**](https://emos.automatikarobotics.com) | [**Developer Docs**](https://sugarcoat.automatikarobotics.com) | [**Discord**](https://discord.gg/B9ZU6qjzND)
What is Sugarcoat?
Sugarcoat is the orchestration layer of the EMOS (Embodied Operating System) ecosystem by Automatika Robotics. It is a meta-framework that replaces fragmented ROS2 development with a unified workflow, providing a high-level Python API to build robust lifecycle-managed components and orchestrate them into cohesive, self-healing systems using an event-driven architecture.
For full documentation, tutorials, and recipes, visit emos.automatikarobotics.com.
Key Features & Core Pillars
| Feature | Description |
|---|---|
| Smart Components | Every component is a managed lifecycle node (Configure, Activate, Deactivate) out of the box. It features type-safe configurations via attrs and declarative auto-wiring for inputs/outputs. |
| Active Resilience |
Built-in “Immune System” for ROS2 nodes. Components actively report their Health Status (Algorithm, Component, or System failures) and automatically trigger distributed Fallbacks to self-heal without crashing. |
| Event-Driven Behavior | Define global Events (e.g., Event(battery < 10.0)) and Actions in pure, readable Python. These act as triggers that monitor ROS2 topics natively and execute instantly regardless of current system state. |
| Centralized Orchestration | A powerful Launcher acts as a pythonic alternative to ros2 launch. It supports multi-threaded or multi-process execution, actively supervising component lifecycles at runtime. |
| Universal Applications | Robot Plugins act as a translation layer. This allows you to write generic, portable automation logic (recipes) that run on any robot without code changes. |
| Dynamic Web UI | Auto-generates a fully functional web frontend for every topic, parameter, and event instantly. |
Dynamic Web UI for Sugarcoat Recipes
The Dynamic Web UI feature takes system visibility and control to the next level. Built with FastHTML and MonsterUI, it is designed to automatically generate a fully dynamic, extensible web interface for any Sugarcoat recipe, completely eliminating the need for manual front-end development.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Point Navigation Recipe An example for an automatically generated UI for a point navigation system from Kompass. The UI automatically renders map data, and sends navigation goals to the robot.
What’s Inside?
- Automatic Settings UI: Interfaces for configuring the settings of all Components used in your recipe are generated on the fly.
- Auto I/O Visualization: Front-end controls and data visualizations for UI Inputs and Outputs are created automatically.
- WebSocket-Based Streaming: Features bidirectional, low-latency communication for streaming text, image, and audio messages.
- Responsive Layouts: Input and output elements are presented in clear, adaptable grid layouts.
- Extensible Design: Easily add support for new message types and custom visualizations through extensions.
Documentation
| Resource | URL |
|---|---|
| Usage Docs (EMOS) | emos.automatikarobotics.com |
| Developer Docs | sugarcoat.automatikarobotics.com |
| API Reference | sugarcoat.automatikarobotics.com/apidocs |
Installation
Sugarcoat is available for ROS versions Humble.
Using your Package Manager (Recommended)
On Ubuntu, for example:
sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar
Building from Source
```bash
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.7.1 (2026-06-05)
- (fix) Fixes stale reference in logged warning
- (chore) Adds more tests for plugins, http transport, route via host and telemetry bus
- (refactor) Changes from tcp to AF_UNIX sockets in transport bus and fixes pubilishing from multiple threads on the same sock via locks
- (fix) Makes rclpy_context test fixture tolerant of a pre-initialized context
- (docs) Updates robot plugins doc
- (feature) Adds robot config from plugin when defined
- (fix) Adds handling callbacks and publishers dict as sources of truth instead of in_topic and out_topic
- (chore) Adds correct docstring for plugin metadata
- (chore) Updates robot plugin tests
- (feature) Adds use_plugin to topic to get take topic type from
plugin
- Disambiguates topics of similar type by matching topic name with
keys available in plugin
- Keys can surface in errors or avaialble via inspection
- (feature) Adds plugin_action decorator for robot actions exposed by plugins
- (chore) Adds test for robot plugin feature
- (feature) Adds initialization and tear down of robot plugin host to the launcher
- (feature) Adds serialization of robot plugin in the generic executable
- (feature) Adds handling of external plugin topics and events blackboard in the monitor
- (feature) Wires the robot plugin handling in the component
- (feature) Adds robot command type that subclasses publisher for generalized publishing to robot via plugins
- (refactor) Removes old plugin init from serialized config
- (feautre) Adds new general purpose robot plugin infrastructure (feedback, robot commands, transports and plugin classes)
- (chore) Removes rolling from deb package build
- Contributors: ahr
0.7.0 (2026-04-30)
- (chore) Adds tests for base attrs
- (fix) Adds check for any type fields in base attrs
- (feature) Adds display of action server logs in the main logging card (#46)
- (fix) Changes sleep time between probe service response checks to 1/loop_rate instead of arbitrary constant
- (feature) Adds on_process_fail method to launcher that respawns
processes
- Adds lifecycle service calling methods in monitor to respawn processes and handle lifecylce transitions
- Creates unified timer for watching process start for initial launch and failed process launch
- Uses internal launch actions for emitting the action to launch all components at init
- (fix) Adds a param to base config for executor spin timeout to decouple it from loop rate
- (feature) Adds ui display for geometry types when no map element is present
- (fix) Specifies callback in tf listener timer (#43)
- (chore) Adds testing for execute action service
- (feature) Calling the execute method service for component actions now returns the method response
- (chore) Adds testing CI
- (chore) Adds test for safe restart
- (feature) Adds the safe restart context manager in base component
- Contributors: Maria Kabtoul, ahr, mkabtoul
0.6.1 (2026-04-11)
- (docs) Adds a more comprehensive guide for the internal events-actions system design
- (fix) Adds guard to avoid redundant checks for handle once events
- (feature) Adds tests for generic events with and without dynamic arguments for Actions
- (feature) Adds generic events management to Monitor
- (refactor) Removes overhead of serializing/deserializing events in Monitor
- (feature) Adds support for constructing event conditions using generic methods in the recipe polled at a given check_rate
- (chore) Removes unused commented code
- (chore) Improves system graph colors in light theme
- (feature) Makes system graph draggable and resizable
- (fix) Fixes arrow heads pointing direction for input/output topics
- (fix) Fixes multiple issues with input topics in node graph
- (feature) Adds events and actions to the graph and adds events detail card
- (refactor) Refactors building system info and adds condition serialization to events
- (fix) Fixes fetching decorated methods in component
- (feature) Adds endpoints for system info graph
- (feature) Adds front end elements for system info graph
- (feature) Adds serialized system info generation in the launcher
- (fix) Removes unused imports
- (fix) Sets destroyed publisher object to None to avoid rclpy errors during restart
- Contributors: ahr, mkabtoul
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| automatika_embodied_agents | |
| kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
|
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
| Version | 0.7.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/automatika-robotics/ros-sugar.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [](https://opensource.org/licenses/MIT) [](https://www.python.org/downloads/) [](https://docs.ros.org/en/humble/index.html) [](https://discord.gg/B9ZU6qjzND) **The orchestration layer for event-driven ROS 2 systems** [**EMOS Documentation**](https://emos.automatikarobotics.com) | [**Developer Docs**](https://sugarcoat.automatikarobotics.com) | [**Discord**](https://discord.gg/B9ZU6qjzND)
What is Sugarcoat?
Sugarcoat is the orchestration layer of the EMOS (Embodied Operating System) ecosystem by Automatika Robotics. It is a meta-framework that replaces fragmented ROS2 development with a unified workflow, providing a high-level Python API to build robust lifecycle-managed components and orchestrate them into cohesive, self-healing systems using an event-driven architecture.
For full documentation, tutorials, and recipes, visit emos.automatikarobotics.com.
Key Features & Core Pillars
| Feature | Description |
|---|---|
| Smart Components | Every component is a managed lifecycle node (Configure, Activate, Deactivate) out of the box. It features type-safe configurations via attrs and declarative auto-wiring for inputs/outputs. |
| Active Resilience |
Built-in “Immune System” for ROS2 nodes. Components actively report their Health Status (Algorithm, Component, or System failures) and automatically trigger distributed Fallbacks to self-heal without crashing. |
| Event-Driven Behavior | Define global Events (e.g., Event(battery < 10.0)) and Actions in pure, readable Python. These act as triggers that monitor ROS2 topics natively and execute instantly regardless of current system state. |
| Centralized Orchestration | A powerful Launcher acts as a pythonic alternative to ros2 launch. It supports multi-threaded or multi-process execution, actively supervising component lifecycles at runtime. |
| Universal Applications | Robot Plugins act as a translation layer. This allows you to write generic, portable automation logic (recipes) that run on any robot without code changes. |
| Dynamic Web UI | Auto-generates a fully functional web frontend for every topic, parameter, and event instantly. |
Dynamic Web UI for Sugarcoat Recipes
The Dynamic Web UI feature takes system visibility and control to the next level. Built with FastHTML and MonsterUI, it is designed to automatically generate a fully dynamic, extensible web interface for any Sugarcoat recipe, completely eliminating the need for manual front-end development.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Point Navigation Recipe An example for an automatically generated UI for a point navigation system from Kompass. The UI automatically renders map data, and sends navigation goals to the robot.
What’s Inside?
- Automatic Settings UI: Interfaces for configuring the settings of all Components used in your recipe are generated on the fly.
- Auto I/O Visualization: Front-end controls and data visualizations for UI Inputs and Outputs are created automatically.
- WebSocket-Based Streaming: Features bidirectional, low-latency communication for streaming text, image, and audio messages.
- Responsive Layouts: Input and output elements are presented in clear, adaptable grid layouts.
- Extensible Design: Easily add support for new message types and custom visualizations through extensions.
Documentation
| Resource | URL |
|---|---|
| Usage Docs (EMOS) | emos.automatikarobotics.com |
| Developer Docs | sugarcoat.automatikarobotics.com |
| API Reference | sugarcoat.automatikarobotics.com/apidocs |
Installation
Sugarcoat is available for ROS versions Humble.
Using your Package Manager (Recommended)
On Ubuntu, for example:
sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar
Building from Source
```bash
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.7.1 (2026-06-05)
- (fix) Fixes stale reference in logged warning
- (chore) Adds more tests for plugins, http transport, route via host and telemetry bus
- (refactor) Changes from tcp to AF_UNIX sockets in transport bus and fixes pubilishing from multiple threads on the same sock via locks
- (fix) Makes rclpy_context test fixture tolerant of a pre-initialized context
- (docs) Updates robot plugins doc
- (feature) Adds robot config from plugin when defined
- (fix) Adds handling callbacks and publishers dict as sources of truth instead of in_topic and out_topic
- (chore) Adds correct docstring for plugin metadata
- (chore) Updates robot plugin tests
- (feature) Adds use_plugin to topic to get take topic type from
plugin
- Disambiguates topics of similar type by matching topic name with
keys available in plugin
- Keys can surface in errors or avaialble via inspection
- (feature) Adds plugin_action decorator for robot actions exposed by plugins
- (chore) Adds test for robot plugin feature
- (feature) Adds initialization and tear down of robot plugin host to the launcher
- (feature) Adds serialization of robot plugin in the generic executable
- (feature) Adds handling of external plugin topics and events blackboard in the monitor
- (feature) Wires the robot plugin handling in the component
- (feature) Adds robot command type that subclasses publisher for generalized publishing to robot via plugins
- (refactor) Removes old plugin init from serialized config
- (feautre) Adds new general purpose robot plugin infrastructure (feedback, robot commands, transports and plugin classes)
- (chore) Removes rolling from deb package build
- Contributors: ahr
0.7.0 (2026-04-30)
- (chore) Adds tests for base attrs
- (fix) Adds check for any type fields in base attrs
- (feature) Adds display of action server logs in the main logging card (#46)
- (fix) Changes sleep time between probe service response checks to 1/loop_rate instead of arbitrary constant
- (feature) Adds on_process_fail method to launcher that respawns
processes
- Adds lifecycle service calling methods in monitor to respawn processes and handle lifecylce transitions
- Creates unified timer for watching process start for initial launch and failed process launch
- Uses internal launch actions for emitting the action to launch all components at init
- (fix) Adds a param to base config for executor spin timeout to decouple it from loop rate
- (feature) Adds ui display for geometry types when no map element is present
- (fix) Specifies callback in tf listener timer (#43)
- (chore) Adds testing for execute action service
- (feature) Calling the execute method service for component actions now returns the method response
- (chore) Adds testing CI
- (chore) Adds test for safe restart
- (feature) Adds the safe restart context manager in base component
- Contributors: Maria Kabtoul, ahr, mkabtoul
0.6.1 (2026-04-11)
- (docs) Adds a more comprehensive guide for the internal events-actions system design
- (fix) Adds guard to avoid redundant checks for handle once events
- (feature) Adds tests for generic events with and without dynamic arguments for Actions
- (feature) Adds generic events management to Monitor
- (refactor) Removes overhead of serializing/deserializing events in Monitor
- (feature) Adds support for constructing event conditions using generic methods in the recipe polled at a given check_rate
- (chore) Removes unused commented code
- (chore) Improves system graph colors in light theme
- (feature) Makes system graph draggable and resizable
- (fix) Fixes arrow heads pointing direction for input/output topics
- (fix) Fixes multiple issues with input topics in node graph
- (feature) Adds events and actions to the graph and adds events detail card
- (refactor) Refactors building system info and adds condition serialization to events
- (fix) Fixes fetching decorated methods in component
- (feature) Adds endpoints for system info graph
- (feature) Adds front end elements for system info graph
- (feature) Adds serialized system info generation in the launcher
- (fix) Removes unused imports
- (fix) Sets destroyed publisher object to None to avoid rclpy errors during restart
- Contributors: ahr, mkabtoul
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| automatika_embodied_agents | |
| kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
|
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
| Version | 0.7.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/automatika-robotics/ros-sugar.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [](https://opensource.org/licenses/MIT) [](https://www.python.org/downloads/) [](https://docs.ros.org/en/humble/index.html) [](https://discord.gg/B9ZU6qjzND) **The orchestration layer for event-driven ROS 2 systems** [**EMOS Documentation**](https://emos.automatikarobotics.com) | [**Developer Docs**](https://sugarcoat.automatikarobotics.com) | [**Discord**](https://discord.gg/B9ZU6qjzND)
What is Sugarcoat?
Sugarcoat is the orchestration layer of the EMOS (Embodied Operating System) ecosystem by Automatika Robotics. It is a meta-framework that replaces fragmented ROS2 development with a unified workflow, providing a high-level Python API to build robust lifecycle-managed components and orchestrate them into cohesive, self-healing systems using an event-driven architecture.
For full documentation, tutorials, and recipes, visit emos.automatikarobotics.com.
Key Features & Core Pillars
| Feature | Description |
|---|---|
| Smart Components | Every component is a managed lifecycle node (Configure, Activate, Deactivate) out of the box. It features type-safe configurations via attrs and declarative auto-wiring for inputs/outputs. |
| Active Resilience |
Built-in “Immune System” for ROS2 nodes. Components actively report their Health Status (Algorithm, Component, or System failures) and automatically trigger distributed Fallbacks to self-heal without crashing. |
| Event-Driven Behavior | Define global Events (e.g., Event(battery < 10.0)) and Actions in pure, readable Python. These act as triggers that monitor ROS2 topics natively and execute instantly regardless of current system state. |
| Centralized Orchestration | A powerful Launcher acts as a pythonic alternative to ros2 launch. It supports multi-threaded or multi-process execution, actively supervising component lifecycles at runtime. |
| Universal Applications | Robot Plugins act as a translation layer. This allows you to write generic, portable automation logic (recipes) that run on any robot without code changes. |
| Dynamic Web UI | Auto-generates a fully functional web frontend for every topic, parameter, and event instantly. |
Dynamic Web UI for Sugarcoat Recipes
The Dynamic Web UI feature takes system visibility and control to the next level. Built with FastHTML and MonsterUI, it is designed to automatically generate a fully dynamic, extensible web interface for any Sugarcoat recipe, completely eliminating the need for manual front-end development.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Point Navigation Recipe An example for an automatically generated UI for a point navigation system from Kompass. The UI automatically renders map data, and sends navigation goals to the robot.
What’s Inside?
- Automatic Settings UI: Interfaces for configuring the settings of all Components used in your recipe are generated on the fly.
- Auto I/O Visualization: Front-end controls and data visualizations for UI Inputs and Outputs are created automatically.
- WebSocket-Based Streaming: Features bidirectional, low-latency communication for streaming text, image, and audio messages.
- Responsive Layouts: Input and output elements are presented in clear, adaptable grid layouts.
- Extensible Design: Easily add support for new message types and custom visualizations through extensions.
Documentation
| Resource | URL |
|---|---|
| Usage Docs (EMOS) | emos.automatikarobotics.com |
| Developer Docs | sugarcoat.automatikarobotics.com |
| API Reference | sugarcoat.automatikarobotics.com/apidocs |
Installation
Sugarcoat is available for ROS versions Humble.
Using your Package Manager (Recommended)
On Ubuntu, for example:
sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar
Building from Source
```bash
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.7.1 (2026-06-05)
- (fix) Fixes stale reference in logged warning
- (chore) Adds more tests for plugins, http transport, route via host and telemetry bus
- (refactor) Changes from tcp to AF_UNIX sockets in transport bus and fixes pubilishing from multiple threads on the same sock via locks
- (fix) Makes rclpy_context test fixture tolerant of a pre-initialized context
- (docs) Updates robot plugins doc
- (feature) Adds robot config from plugin when defined
- (fix) Adds handling callbacks and publishers dict as sources of truth instead of in_topic and out_topic
- (chore) Adds correct docstring for plugin metadata
- (chore) Updates robot plugin tests
- (feature) Adds use_plugin to topic to get take topic type from
plugin
- Disambiguates topics of similar type by matching topic name with
keys available in plugin
- Keys can surface in errors or avaialble via inspection
- (feature) Adds plugin_action decorator for robot actions exposed by plugins
- (chore) Adds test for robot plugin feature
- (feature) Adds initialization and tear down of robot plugin host to the launcher
- (feature) Adds serialization of robot plugin in the generic executable
- (feature) Adds handling of external plugin topics and events blackboard in the monitor
- (feature) Wires the robot plugin handling in the component
- (feature) Adds robot command type that subclasses publisher for generalized publishing to robot via plugins
- (refactor) Removes old plugin init from serialized config
- (feautre) Adds new general purpose robot plugin infrastructure (feedback, robot commands, transports and plugin classes)
- (chore) Removes rolling from deb package build
- Contributors: ahr
0.7.0 (2026-04-30)
- (chore) Adds tests for base attrs
- (fix) Adds check for any type fields in base attrs
- (feature) Adds display of action server logs in the main logging card (#46)
- (fix) Changes sleep time between probe service response checks to 1/loop_rate instead of arbitrary constant
- (feature) Adds on_process_fail method to launcher that respawns
processes
- Adds lifecycle service calling methods in monitor to respawn processes and handle lifecylce transitions
- Creates unified timer for watching process start for initial launch and failed process launch
- Uses internal launch actions for emitting the action to launch all components at init
- (fix) Adds a param to base config for executor spin timeout to decouple it from loop rate
- (feature) Adds ui display for geometry types when no map element is present
- (fix) Specifies callback in tf listener timer (#43)
- (chore) Adds testing for execute action service
- (feature) Calling the execute method service for component actions now returns the method response
- (chore) Adds testing CI
- (chore) Adds test for safe restart
- (feature) Adds the safe restart context manager in base component
- Contributors: Maria Kabtoul, ahr, mkabtoul
0.6.1 (2026-04-11)
- (docs) Adds a more comprehensive guide for the internal events-actions system design
- (fix) Adds guard to avoid redundant checks for handle once events
- (feature) Adds tests for generic events with and without dynamic arguments for Actions
- (feature) Adds generic events management to Monitor
- (refactor) Removes overhead of serializing/deserializing events in Monitor
- (feature) Adds support for constructing event conditions using generic methods in the recipe polled at a given check_rate
- (chore) Removes unused commented code
- (chore) Improves system graph colors in light theme
- (feature) Makes system graph draggable and resizable
- (fix) Fixes arrow heads pointing direction for input/output topics
- (fix) Fixes multiple issues with input topics in node graph
- (feature) Adds events and actions to the graph and adds events detail card
- (refactor) Refactors building system info and adds condition serialization to events
- (fix) Fixes fetching decorated methods in component
- (feature) Adds endpoints for system info graph
- (feature) Adds front end elements for system info graph
- (feature) Adds serialized system info generation in the launcher
- (fix) Removes unused imports
- (fix) Sets destroyed publisher object to None to avoid rclpy errors during restart
- Contributors: ahr, mkabtoul
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| automatika_embodied_agents | |
| kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
|
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
| Version | 0.7.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/automatika-robotics/ros-sugar.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [](https://opensource.org/licenses/MIT) [](https://www.python.org/downloads/) [](https://docs.ros.org/en/humble/index.html) [](https://discord.gg/B9ZU6qjzND) **The orchestration layer for event-driven ROS 2 systems** [**EMOS Documentation**](https://emos.automatikarobotics.com) | [**Developer Docs**](https://sugarcoat.automatikarobotics.com) | [**Discord**](https://discord.gg/B9ZU6qjzND)
What is Sugarcoat?
Sugarcoat is the orchestration layer of the EMOS (Embodied Operating System) ecosystem by Automatika Robotics. It is a meta-framework that replaces fragmented ROS2 development with a unified workflow, providing a high-level Python API to build robust lifecycle-managed components and orchestrate them into cohesive, self-healing systems using an event-driven architecture.
For full documentation, tutorials, and recipes, visit emos.automatikarobotics.com.
Key Features & Core Pillars
| Feature | Description |
|---|---|
| Smart Components | Every component is a managed lifecycle node (Configure, Activate, Deactivate) out of the box. It features type-safe configurations via attrs and declarative auto-wiring for inputs/outputs. |
| Active Resilience |
Built-in “Immune System” for ROS2 nodes. Components actively report their Health Status (Algorithm, Component, or System failures) and automatically trigger distributed Fallbacks to self-heal without crashing. |
| Event-Driven Behavior | Define global Events (e.g., Event(battery < 10.0)) and Actions in pure, readable Python. These act as triggers that monitor ROS2 topics natively and execute instantly regardless of current system state. |
| Centralized Orchestration | A powerful Launcher acts as a pythonic alternative to ros2 launch. It supports multi-threaded or multi-process execution, actively supervising component lifecycles at runtime. |
| Universal Applications | Robot Plugins act as a translation layer. This allows you to write generic, portable automation logic (recipes) that run on any robot without code changes. |
| Dynamic Web UI | Auto-generates a fully functional web frontend for every topic, parameter, and event instantly. |
Dynamic Web UI for Sugarcoat Recipes
The Dynamic Web UI feature takes system visibility and control to the next level. Built with FastHTML and MonsterUI, it is designed to automatically generate a fully dynamic, extensible web interface for any Sugarcoat recipe, completely eliminating the need for manual front-end development.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Point Navigation Recipe An example for an automatically generated UI for a point navigation system from Kompass. The UI automatically renders map data, and sends navigation goals to the robot.
What’s Inside?
- Automatic Settings UI: Interfaces for configuring the settings of all Components used in your recipe are generated on the fly.
- Auto I/O Visualization: Front-end controls and data visualizations for UI Inputs and Outputs are created automatically.
- WebSocket-Based Streaming: Features bidirectional, low-latency communication for streaming text, image, and audio messages.
- Responsive Layouts: Input and output elements are presented in clear, adaptable grid layouts.
- Extensible Design: Easily add support for new message types and custom visualizations through extensions.
Documentation
| Resource | URL |
|---|---|
| Usage Docs (EMOS) | emos.automatikarobotics.com |
| Developer Docs | sugarcoat.automatikarobotics.com |
| API Reference | sugarcoat.automatikarobotics.com/apidocs |
Installation
Sugarcoat is available for ROS versions Humble.
Using your Package Manager (Recommended)
On Ubuntu, for example:
sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar
Building from Source
```bash
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.7.1 (2026-06-05)
- (fix) Fixes stale reference in logged warning
- (chore) Adds more tests for plugins, http transport, route via host and telemetry bus
- (refactor) Changes from tcp to AF_UNIX sockets in transport bus and fixes pubilishing from multiple threads on the same sock via locks
- (fix) Makes rclpy_context test fixture tolerant of a pre-initialized context
- (docs) Updates robot plugins doc
- (feature) Adds robot config from plugin when defined
- (fix) Adds handling callbacks and publishers dict as sources of truth instead of in_topic and out_topic
- (chore) Adds correct docstring for plugin metadata
- (chore) Updates robot plugin tests
- (feature) Adds use_plugin to topic to get take topic type from
plugin
- Disambiguates topics of similar type by matching topic name with
keys available in plugin
- Keys can surface in errors or avaialble via inspection
- (feature) Adds plugin_action decorator for robot actions exposed by plugins
- (chore) Adds test for robot plugin feature
- (feature) Adds initialization and tear down of robot plugin host to the launcher
- (feature) Adds serialization of robot plugin in the generic executable
- (feature) Adds handling of external plugin topics and events blackboard in the monitor
- (feature) Wires the robot plugin handling in the component
- (feature) Adds robot command type that subclasses publisher for generalized publishing to robot via plugins
- (refactor) Removes old plugin init from serialized config
- (feautre) Adds new general purpose robot plugin infrastructure (feedback, robot commands, transports and plugin classes)
- (chore) Removes rolling from deb package build
- Contributors: ahr
0.7.0 (2026-04-30)
- (chore) Adds tests for base attrs
- (fix) Adds check for any type fields in base attrs
- (feature) Adds display of action server logs in the main logging card (#46)
- (fix) Changes sleep time between probe service response checks to 1/loop_rate instead of arbitrary constant
- (feature) Adds on_process_fail method to launcher that respawns
processes
- Adds lifecycle service calling methods in monitor to respawn processes and handle lifecylce transitions
- Creates unified timer for watching process start for initial launch and failed process launch
- Uses internal launch actions for emitting the action to launch all components at init
- (fix) Adds a param to base config for executor spin timeout to decouple it from loop rate
- (feature) Adds ui display for geometry types when no map element is present
- (fix) Specifies callback in tf listener timer (#43)
- (chore) Adds testing for execute action service
- (feature) Calling the execute method service for component actions now returns the method response
- (chore) Adds testing CI
- (chore) Adds test for safe restart
- (feature) Adds the safe restart context manager in base component
- Contributors: Maria Kabtoul, ahr, mkabtoul
0.6.1 (2026-04-11)
- (docs) Adds a more comprehensive guide for the internal events-actions system design
- (fix) Adds guard to avoid redundant checks for handle once events
- (feature) Adds tests for generic events with and without dynamic arguments for Actions
- (feature) Adds generic events management to Monitor
- (refactor) Removes overhead of serializing/deserializing events in Monitor
- (feature) Adds support for constructing event conditions using generic methods in the recipe polled at a given check_rate
- (chore) Removes unused commented code
- (chore) Improves system graph colors in light theme
- (feature) Makes system graph draggable and resizable
- (fix) Fixes arrow heads pointing direction for input/output topics
- (fix) Fixes multiple issues with input topics in node graph
- (feature) Adds events and actions to the graph and adds events detail card
- (refactor) Refactors building system info and adds condition serialization to events
- (fix) Fixes fetching decorated methods in component
- (feature) Adds endpoints for system info graph
- (feature) Adds front end elements for system info graph
- (feature) Adds serialized system info generation in the launcher
- (fix) Removes unused imports
- (fix) Sets destroyed publisher object to None to avoid rclpy errors during restart
- Contributors: ahr, mkabtoul
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| automatika_embodied_agents | |
| kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
|
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
| Version | 0.7.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/automatika-robotics/ros-sugar.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [](https://opensource.org/licenses/MIT) [](https://www.python.org/downloads/) [](https://docs.ros.org/en/humble/index.html) [](https://discord.gg/B9ZU6qjzND) **The orchestration layer for event-driven ROS 2 systems** [**EMOS Documentation**](https://emos.automatikarobotics.com) | [**Developer Docs**](https://sugarcoat.automatikarobotics.com) | [**Discord**](https://discord.gg/B9ZU6qjzND)
What is Sugarcoat?
Sugarcoat is the orchestration layer of the EMOS (Embodied Operating System) ecosystem by Automatika Robotics. It is a meta-framework that replaces fragmented ROS2 development with a unified workflow, providing a high-level Python API to build robust lifecycle-managed components and orchestrate them into cohesive, self-healing systems using an event-driven architecture.
For full documentation, tutorials, and recipes, visit emos.automatikarobotics.com.
Key Features & Core Pillars
| Feature | Description |
|---|---|
| Smart Components | Every component is a managed lifecycle node (Configure, Activate, Deactivate) out of the box. It features type-safe configurations via attrs and declarative auto-wiring for inputs/outputs. |
| Active Resilience |
Built-in “Immune System” for ROS2 nodes. Components actively report their Health Status (Algorithm, Component, or System failures) and automatically trigger distributed Fallbacks to self-heal without crashing. |
| Event-Driven Behavior | Define global Events (e.g., Event(battery < 10.0)) and Actions in pure, readable Python. These act as triggers that monitor ROS2 topics natively and execute instantly regardless of current system state. |
| Centralized Orchestration | A powerful Launcher acts as a pythonic alternative to ros2 launch. It supports multi-threaded or multi-process execution, actively supervising component lifecycles at runtime. |
| Universal Applications | Robot Plugins act as a translation layer. This allows you to write generic, portable automation logic (recipes) that run on any robot without code changes. |
| Dynamic Web UI | Auto-generates a fully functional web frontend for every topic, parameter, and event instantly. |
Dynamic Web UI for Sugarcoat Recipes
The Dynamic Web UI feature takes system visibility and control to the next level. Built with FastHTML and MonsterUI, it is designed to automatically generate a fully dynamic, extensible web interface for any Sugarcoat recipe, completely eliminating the need for manual front-end development.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Point Navigation Recipe An example for an automatically generated UI for a point navigation system from Kompass. The UI automatically renders map data, and sends navigation goals to the robot.
What’s Inside?
- Automatic Settings UI: Interfaces for configuring the settings of all Components used in your recipe are generated on the fly.
- Auto I/O Visualization: Front-end controls and data visualizations for UI Inputs and Outputs are created automatically.
- WebSocket-Based Streaming: Features bidirectional, low-latency communication for streaming text, image, and audio messages.
- Responsive Layouts: Input and output elements are presented in clear, adaptable grid layouts.
- Extensible Design: Easily add support for new message types and custom visualizations through extensions.
Documentation
| Resource | URL |
|---|---|
| Usage Docs (EMOS) | emos.automatikarobotics.com |
| Developer Docs | sugarcoat.automatikarobotics.com |
| API Reference | sugarcoat.automatikarobotics.com/apidocs |
Installation
Sugarcoat is available for ROS versions Humble.
Using your Package Manager (Recommended)
On Ubuntu, for example:
sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar
Building from Source
```bash
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.7.1 (2026-06-05)
- (fix) Fixes stale reference in logged warning
- (chore) Adds more tests for plugins, http transport, route via host and telemetry bus
- (refactor) Changes from tcp to AF_UNIX sockets in transport bus and fixes pubilishing from multiple threads on the same sock via locks
- (fix) Makes rclpy_context test fixture tolerant of a pre-initialized context
- (docs) Updates robot plugins doc
- (feature) Adds robot config from plugin when defined
- (fix) Adds handling callbacks and publishers dict as sources of truth instead of in_topic and out_topic
- (chore) Adds correct docstring for plugin metadata
- (chore) Updates robot plugin tests
- (feature) Adds use_plugin to topic to get take topic type from
plugin
- Disambiguates topics of similar type by matching topic name with
keys available in plugin
- Keys can surface in errors or avaialble via inspection
- (feature) Adds plugin_action decorator for robot actions exposed by plugins
- (chore) Adds test for robot plugin feature
- (feature) Adds initialization and tear down of robot plugin host to the launcher
- (feature) Adds serialization of robot plugin in the generic executable
- (feature) Adds handling of external plugin topics and events blackboard in the monitor
- (feature) Wires the robot plugin handling in the component
- (feature) Adds robot command type that subclasses publisher for generalized publishing to robot via plugins
- (refactor) Removes old plugin init from serialized config
- (feautre) Adds new general purpose robot plugin infrastructure (feedback, robot commands, transports and plugin classes)
- (chore) Removes rolling from deb package build
- Contributors: ahr
0.7.0 (2026-04-30)
- (chore) Adds tests for base attrs
- (fix) Adds check for any type fields in base attrs
- (feature) Adds display of action server logs in the main logging card (#46)
- (fix) Changes sleep time between probe service response checks to 1/loop_rate instead of arbitrary constant
- (feature) Adds on_process_fail method to launcher that respawns
processes
- Adds lifecycle service calling methods in monitor to respawn processes and handle lifecylce transitions
- Creates unified timer for watching process start for initial launch and failed process launch
- Uses internal launch actions for emitting the action to launch all components at init
- (fix) Adds a param to base config for executor spin timeout to decouple it from loop rate
- (feature) Adds ui display for geometry types when no map element is present
- (fix) Specifies callback in tf listener timer (#43)
- (chore) Adds testing for execute action service
- (feature) Calling the execute method service for component actions now returns the method response
- (chore) Adds testing CI
- (chore) Adds test for safe restart
- (feature) Adds the safe restart context manager in base component
- Contributors: Maria Kabtoul, ahr, mkabtoul
0.6.1 (2026-04-11)
- (docs) Adds a more comprehensive guide for the internal events-actions system design
- (fix) Adds guard to avoid redundant checks for handle once events
- (feature) Adds tests for generic events with and without dynamic arguments for Actions
- (feature) Adds generic events management to Monitor
- (refactor) Removes overhead of serializing/deserializing events in Monitor
- (feature) Adds support for constructing event conditions using generic methods in the recipe polled at a given check_rate
- (chore) Removes unused commented code
- (chore) Improves system graph colors in light theme
- (feature) Makes system graph draggable and resizable
- (fix) Fixes arrow heads pointing direction for input/output topics
- (fix) Fixes multiple issues with input topics in node graph
- (feature) Adds events and actions to the graph and adds events detail card
- (refactor) Refactors building system info and adds condition serialization to events
- (fix) Fixes fetching decorated methods in component
- (feature) Adds endpoints for system info graph
- (feature) Adds front end elements for system info graph
- (feature) Adds serialized system info generation in the launcher
- (fix) Removes unused imports
- (fix) Sets destroyed publisher object to None to avoid rclpy errors during restart
- Contributors: ahr, mkabtoul
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| automatika_embodied_agents | |
| kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
|
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
| Version | 0.7.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/automatika-robotics/ros-sugar.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [](https://opensource.org/licenses/MIT) [](https://www.python.org/downloads/) [](https://docs.ros.org/en/humble/index.html) [](https://discord.gg/B9ZU6qjzND) **The orchestration layer for event-driven ROS 2 systems** [**EMOS Documentation**](https://emos.automatikarobotics.com) | [**Developer Docs**](https://sugarcoat.automatikarobotics.com) | [**Discord**](https://discord.gg/B9ZU6qjzND)
What is Sugarcoat?
Sugarcoat is the orchestration layer of the EMOS (Embodied Operating System) ecosystem by Automatika Robotics. It is a meta-framework that replaces fragmented ROS2 development with a unified workflow, providing a high-level Python API to build robust lifecycle-managed components and orchestrate them into cohesive, self-healing systems using an event-driven architecture.
For full documentation, tutorials, and recipes, visit emos.automatikarobotics.com.
Key Features & Core Pillars
| Feature | Description |
|---|---|
| Smart Components | Every component is a managed lifecycle node (Configure, Activate, Deactivate) out of the box. It features type-safe configurations via attrs and declarative auto-wiring for inputs/outputs. |
| Active Resilience |
Built-in “Immune System” for ROS2 nodes. Components actively report their Health Status (Algorithm, Component, or System failures) and automatically trigger distributed Fallbacks to self-heal without crashing. |
| Event-Driven Behavior | Define global Events (e.g., Event(battery < 10.0)) and Actions in pure, readable Python. These act as triggers that monitor ROS2 topics natively and execute instantly regardless of current system state. |
| Centralized Orchestration | A powerful Launcher acts as a pythonic alternative to ros2 launch. It supports multi-threaded or multi-process execution, actively supervising component lifecycles at runtime. |
| Universal Applications | Robot Plugins act as a translation layer. This allows you to write generic, portable automation logic (recipes) that run on any robot without code changes. |
| Dynamic Web UI | Auto-generates a fully functional web frontend for every topic, parameter, and event instantly. |
Dynamic Web UI for Sugarcoat Recipes
The Dynamic Web UI feature takes system visibility and control to the next level. Built with FastHTML and MonsterUI, it is designed to automatically generate a fully dynamic, extensible web interface for any Sugarcoat recipe, completely eliminating the need for manual front-end development.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Point Navigation Recipe An example for an automatically generated UI for a point navigation system from Kompass. The UI automatically renders map data, and sends navigation goals to the robot.
What’s Inside?
- Automatic Settings UI: Interfaces for configuring the settings of all Components used in your recipe are generated on the fly.
- Auto I/O Visualization: Front-end controls and data visualizations for UI Inputs and Outputs are created automatically.
- WebSocket-Based Streaming: Features bidirectional, low-latency communication for streaming text, image, and audio messages.
- Responsive Layouts: Input and output elements are presented in clear, adaptable grid layouts.
- Extensible Design: Easily add support for new message types and custom visualizations through extensions.
Documentation
| Resource | URL |
|---|---|
| Usage Docs (EMOS) | emos.automatikarobotics.com |
| Developer Docs | sugarcoat.automatikarobotics.com |
| API Reference | sugarcoat.automatikarobotics.com/apidocs |
Installation
Sugarcoat is available for ROS versions Humble.
Using your Package Manager (Recommended)
On Ubuntu, for example:
sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar
Building from Source
```bash
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.7.1 (2026-06-05)
- (fix) Fixes stale reference in logged warning
- (chore) Adds more tests for plugins, http transport, route via host and telemetry bus
- (refactor) Changes from tcp to AF_UNIX sockets in transport bus and fixes pubilishing from multiple threads on the same sock via locks
- (fix) Makes rclpy_context test fixture tolerant of a pre-initialized context
- (docs) Updates robot plugins doc
- (feature) Adds robot config from plugin when defined
- (fix) Adds handling callbacks and publishers dict as sources of truth instead of in_topic and out_topic
- (chore) Adds correct docstring for plugin metadata
- (chore) Updates robot plugin tests
- (feature) Adds use_plugin to topic to get take topic type from
plugin
- Disambiguates topics of similar type by matching topic name with
keys available in plugin
- Keys can surface in errors or avaialble via inspection
- (feature) Adds plugin_action decorator for robot actions exposed by plugins
- (chore) Adds test for robot plugin feature
- (feature) Adds initialization and tear down of robot plugin host to the launcher
- (feature) Adds serialization of robot plugin in the generic executable
- (feature) Adds handling of external plugin topics and events blackboard in the monitor
- (feature) Wires the robot plugin handling in the component
- (feature) Adds robot command type that subclasses publisher for generalized publishing to robot via plugins
- (refactor) Removes old plugin init from serialized config
- (feautre) Adds new general purpose robot plugin infrastructure (feedback, robot commands, transports and plugin classes)
- (chore) Removes rolling from deb package build
- Contributors: ahr
0.7.0 (2026-04-30)
- (chore) Adds tests for base attrs
- (fix) Adds check for any type fields in base attrs
- (feature) Adds display of action server logs in the main logging card (#46)
- (fix) Changes sleep time between probe service response checks to 1/loop_rate instead of arbitrary constant
- (feature) Adds on_process_fail method to launcher that respawns
processes
- Adds lifecycle service calling methods in monitor to respawn processes and handle lifecylce transitions
- Creates unified timer for watching process start for initial launch and failed process launch
- Uses internal launch actions for emitting the action to launch all components at init
- (fix) Adds a param to base config for executor spin timeout to decouple it from loop rate
- (feature) Adds ui display for geometry types when no map element is present
- (fix) Specifies callback in tf listener timer (#43)
- (chore) Adds testing for execute action service
- (feature) Calling the execute method service for component actions now returns the method response
- (chore) Adds testing CI
- (chore) Adds test for safe restart
- (feature) Adds the safe restart context manager in base component
- Contributors: Maria Kabtoul, ahr, mkabtoul
0.6.1 (2026-04-11)
- (docs) Adds a more comprehensive guide for the internal events-actions system design
- (fix) Adds guard to avoid redundant checks for handle once events
- (feature) Adds tests for generic events with and without dynamic arguments for Actions
- (feature) Adds generic events management to Monitor
- (refactor) Removes overhead of serializing/deserializing events in Monitor
- (feature) Adds support for constructing event conditions using generic methods in the recipe polled at a given check_rate
- (chore) Removes unused commented code
- (chore) Improves system graph colors in light theme
- (feature) Makes system graph draggable and resizable
- (fix) Fixes arrow heads pointing direction for input/output topics
- (fix) Fixes multiple issues with input topics in node graph
- (feature) Adds events and actions to the graph and adds events detail card
- (refactor) Refactors building system info and adds condition serialization to events
- (fix) Fixes fetching decorated methods in component
- (feature) Adds endpoints for system info graph
- (feature) Adds front end elements for system info graph
- (feature) Adds serialized system info generation in the launcher
- (fix) Removes unused imports
- (fix) Sets destroyed publisher object to None to avoid rclpy errors during restart
- Contributors: ahr, mkabtoul
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| automatika_embodied_agents | |
| kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
|
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
| Version | 0.7.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/automatika-robotics/ros-sugar.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [](https://opensource.org/licenses/MIT) [](https://www.python.org/downloads/) [](https://docs.ros.org/en/humble/index.html) [](https://discord.gg/B9ZU6qjzND) **The orchestration layer for event-driven ROS 2 systems** [**EMOS Documentation**](https://emos.automatikarobotics.com) | [**Developer Docs**](https://sugarcoat.automatikarobotics.com) | [**Discord**](https://discord.gg/B9ZU6qjzND)
What is Sugarcoat?
Sugarcoat is the orchestration layer of the EMOS (Embodied Operating System) ecosystem by Automatika Robotics. It is a meta-framework that replaces fragmented ROS2 development with a unified workflow, providing a high-level Python API to build robust lifecycle-managed components and orchestrate them into cohesive, self-healing systems using an event-driven architecture.
For full documentation, tutorials, and recipes, visit emos.automatikarobotics.com.
Key Features & Core Pillars
| Feature | Description |
|---|---|
| Smart Components | Every component is a managed lifecycle node (Configure, Activate, Deactivate) out of the box. It features type-safe configurations via attrs and declarative auto-wiring for inputs/outputs. |
| Active Resilience |
Built-in “Immune System” for ROS2 nodes. Components actively report their Health Status (Algorithm, Component, or System failures) and automatically trigger distributed Fallbacks to self-heal without crashing. |
| Event-Driven Behavior | Define global Events (e.g., Event(battery < 10.0)) and Actions in pure, readable Python. These act as triggers that monitor ROS2 topics natively and execute instantly regardless of current system state. |
| Centralized Orchestration | A powerful Launcher acts as a pythonic alternative to ros2 launch. It supports multi-threaded or multi-process execution, actively supervising component lifecycles at runtime. |
| Universal Applications | Robot Plugins act as a translation layer. This allows you to write generic, portable automation logic (recipes) that run on any robot without code changes. |
| Dynamic Web UI | Auto-generates a fully functional web frontend for every topic, parameter, and event instantly. |
Dynamic Web UI for Sugarcoat Recipes
The Dynamic Web UI feature takes system visibility and control to the next level. Built with FastHTML and MonsterUI, it is designed to automatically generate a fully dynamic, extensible web interface for any Sugarcoat recipe, completely eliminating the need for manual front-end development.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Point Navigation Recipe An example for an automatically generated UI for a point navigation system from Kompass. The UI automatically renders map data, and sends navigation goals to the robot.
What’s Inside?
- Automatic Settings UI: Interfaces for configuring the settings of all Components used in your recipe are generated on the fly.
- Auto I/O Visualization: Front-end controls and data visualizations for UI Inputs and Outputs are created automatically.
- WebSocket-Based Streaming: Features bidirectional, low-latency communication for streaming text, image, and audio messages.
- Responsive Layouts: Input and output elements are presented in clear, adaptable grid layouts.
- Extensible Design: Easily add support for new message types and custom visualizations through extensions.
Documentation
| Resource | URL |
|---|---|
| Usage Docs (EMOS) | emos.automatikarobotics.com |
| Developer Docs | sugarcoat.automatikarobotics.com |
| API Reference | sugarcoat.automatikarobotics.com/apidocs |
Installation
Sugarcoat is available for ROS versions Humble.
Using your Package Manager (Recommended)
On Ubuntu, for example:
sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar
Building from Source
```bash
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.7.1 (2026-06-05)
- (fix) Fixes stale reference in logged warning
- (chore) Adds more tests for plugins, http transport, route via host and telemetry bus
- (refactor) Changes from tcp to AF_UNIX sockets in transport bus and fixes pubilishing from multiple threads on the same sock via locks
- (fix) Makes rclpy_context test fixture tolerant of a pre-initialized context
- (docs) Updates robot plugins doc
- (feature) Adds robot config from plugin when defined
- (fix) Adds handling callbacks and publishers dict as sources of truth instead of in_topic and out_topic
- (chore) Adds correct docstring for plugin metadata
- (chore) Updates robot plugin tests
- (feature) Adds use_plugin to topic to get take topic type from
plugin
- Disambiguates topics of similar type by matching topic name with
keys available in plugin
- Keys can surface in errors or avaialble via inspection
- (feature) Adds plugin_action decorator for robot actions exposed by plugins
- (chore) Adds test for robot plugin feature
- (feature) Adds initialization and tear down of robot plugin host to the launcher
- (feature) Adds serialization of robot plugin in the generic executable
- (feature) Adds handling of external plugin topics and events blackboard in the monitor
- (feature) Wires the robot plugin handling in the component
- (feature) Adds robot command type that subclasses publisher for generalized publishing to robot via plugins
- (refactor) Removes old plugin init from serialized config
- (feautre) Adds new general purpose robot plugin infrastructure (feedback, robot commands, transports and plugin classes)
- (chore) Removes rolling from deb package build
- Contributors: ahr
0.7.0 (2026-04-30)
- (chore) Adds tests for base attrs
- (fix) Adds check for any type fields in base attrs
- (feature) Adds display of action server logs in the main logging card (#46)
- (fix) Changes sleep time between probe service response checks to 1/loop_rate instead of arbitrary constant
- (feature) Adds on_process_fail method to launcher that respawns
processes
- Adds lifecycle service calling methods in monitor to respawn processes and handle lifecylce transitions
- Creates unified timer for watching process start for initial launch and failed process launch
- Uses internal launch actions for emitting the action to launch all components at init
- (fix) Adds a param to base config for executor spin timeout to decouple it from loop rate
- (feature) Adds ui display for geometry types when no map element is present
- (fix) Specifies callback in tf listener timer (#43)
- (chore) Adds testing for execute action service
- (feature) Calling the execute method service for component actions now returns the method response
- (chore) Adds testing CI
- (chore) Adds test for safe restart
- (feature) Adds the safe restart context manager in base component
- Contributors: Maria Kabtoul, ahr, mkabtoul
0.6.1 (2026-04-11)
- (docs) Adds a more comprehensive guide for the internal events-actions system design
- (fix) Adds guard to avoid redundant checks for handle once events
- (feature) Adds tests for generic events with and without dynamic arguments for Actions
- (feature) Adds generic events management to Monitor
- (refactor) Removes overhead of serializing/deserializing events in Monitor
- (feature) Adds support for constructing event conditions using generic methods in the recipe polled at a given check_rate
- (chore) Removes unused commented code
- (chore) Improves system graph colors in light theme
- (feature) Makes system graph draggable and resizable
- (fix) Fixes arrow heads pointing direction for input/output topics
- (fix) Fixes multiple issues with input topics in node graph
- (feature) Adds events and actions to the graph and adds events detail card
- (refactor) Refactors building system info and adds condition serialization to events
- (fix) Fixes fetching decorated methods in component
- (feature) Adds endpoints for system info graph
- (feature) Adds front end elements for system info graph
- (feature) Adds serialized system info generation in the launcher
- (fix) Removes unused imports
- (fix) Sets destroyed publisher object to None to avoid rclpy errors during restart
- Contributors: ahr, mkabtoul
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| automatika_embodied_agents | |
| kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
|
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
| Version | 0.7.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/automatika-robotics/ros-sugar.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [](https://opensource.org/licenses/MIT) [](https://www.python.org/downloads/) [](https://docs.ros.org/en/humble/index.html) [](https://discord.gg/B9ZU6qjzND) **The orchestration layer for event-driven ROS 2 systems** [**EMOS Documentation**](https://emos.automatikarobotics.com) | [**Developer Docs**](https://sugarcoat.automatikarobotics.com) | [**Discord**](https://discord.gg/B9ZU6qjzND)
What is Sugarcoat?
Sugarcoat is the orchestration layer of the EMOS (Embodied Operating System) ecosystem by Automatika Robotics. It is a meta-framework that replaces fragmented ROS2 development with a unified workflow, providing a high-level Python API to build robust lifecycle-managed components and orchestrate them into cohesive, self-healing systems using an event-driven architecture.
For full documentation, tutorials, and recipes, visit emos.automatikarobotics.com.
Key Features & Core Pillars
| Feature | Description |
|---|---|
| Smart Components | Every component is a managed lifecycle node (Configure, Activate, Deactivate) out of the box. It features type-safe configurations via attrs and declarative auto-wiring for inputs/outputs. |
| Active Resilience |
Built-in “Immune System” for ROS2 nodes. Components actively report their Health Status (Algorithm, Component, or System failures) and automatically trigger distributed Fallbacks to self-heal without crashing. |
| Event-Driven Behavior | Define global Events (e.g., Event(battery < 10.0)) and Actions in pure, readable Python. These act as triggers that monitor ROS2 topics natively and execute instantly regardless of current system state. |
| Centralized Orchestration | A powerful Launcher acts as a pythonic alternative to ros2 launch. It supports multi-threaded or multi-process execution, actively supervising component lifecycles at runtime. |
| Universal Applications | Robot Plugins act as a translation layer. This allows you to write generic, portable automation logic (recipes) that run on any robot without code changes. |
| Dynamic Web UI | Auto-generates a fully functional web frontend for every topic, parameter, and event instantly. |
Dynamic Web UI for Sugarcoat Recipes
The Dynamic Web UI feature takes system visibility and control to the next level. Built with FastHTML and MonsterUI, it is designed to automatically generate a fully dynamic, extensible web interface for any Sugarcoat recipe, completely eliminating the need for manual front-end development.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Point Navigation Recipe An example for an automatically generated UI for a point navigation system from Kompass. The UI automatically renders map data, and sends navigation goals to the robot.
What’s Inside?
- Automatic Settings UI: Interfaces for configuring the settings of all Components used in your recipe are generated on the fly.
- Auto I/O Visualization: Front-end controls and data visualizations for UI Inputs and Outputs are created automatically.
- WebSocket-Based Streaming: Features bidirectional, low-latency communication for streaming text, image, and audio messages.
- Responsive Layouts: Input and output elements are presented in clear, adaptable grid layouts.
- Extensible Design: Easily add support for new message types and custom visualizations through extensions.
Documentation
| Resource | URL |
|---|---|
| Usage Docs (EMOS) | emos.automatikarobotics.com |
| Developer Docs | sugarcoat.automatikarobotics.com |
| API Reference | sugarcoat.automatikarobotics.com/apidocs |
Installation
Sugarcoat is available for ROS versions Humble.
Using your Package Manager (Recommended)
On Ubuntu, for example:
sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar
Building from Source
```bash
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.7.1 (2026-06-05)
- (fix) Fixes stale reference in logged warning
- (chore) Adds more tests for plugins, http transport, route via host and telemetry bus
- (refactor) Changes from tcp to AF_UNIX sockets in transport bus and fixes pubilishing from multiple threads on the same sock via locks
- (fix) Makes rclpy_context test fixture tolerant of a pre-initialized context
- (docs) Updates robot plugins doc
- (feature) Adds robot config from plugin when defined
- (fix) Adds handling callbacks and publishers dict as sources of truth instead of in_topic and out_topic
- (chore) Adds correct docstring for plugin metadata
- (chore) Updates robot plugin tests
- (feature) Adds use_plugin to topic to get take topic type from
plugin
- Disambiguates topics of similar type by matching topic name with
keys available in plugin
- Keys can surface in errors or avaialble via inspection
- (feature) Adds plugin_action decorator for robot actions exposed by plugins
- (chore) Adds test for robot plugin feature
- (feature) Adds initialization and tear down of robot plugin host to the launcher
- (feature) Adds serialization of robot plugin in the generic executable
- (feature) Adds handling of external plugin topics and events blackboard in the monitor
- (feature) Wires the robot plugin handling in the component
- (feature) Adds robot command type that subclasses publisher for generalized publishing to robot via plugins
- (refactor) Removes old plugin init from serialized config
- (feautre) Adds new general purpose robot plugin infrastructure (feedback, robot commands, transports and plugin classes)
- (chore) Removes rolling from deb package build
- Contributors: ahr
0.7.0 (2026-04-30)
- (chore) Adds tests for base attrs
- (fix) Adds check for any type fields in base attrs
- (feature) Adds display of action server logs in the main logging card (#46)
- (fix) Changes sleep time between probe service response checks to 1/loop_rate instead of arbitrary constant
- (feature) Adds on_process_fail method to launcher that respawns
processes
- Adds lifecycle service calling methods in monitor to respawn processes and handle lifecylce transitions
- Creates unified timer for watching process start for initial launch and failed process launch
- Uses internal launch actions for emitting the action to launch all components at init
- (fix) Adds a param to base config for executor spin timeout to decouple it from loop rate
- (feature) Adds ui display for geometry types when no map element is present
- (fix) Specifies callback in tf listener timer (#43)
- (chore) Adds testing for execute action service
- (feature) Calling the execute method service for component actions now returns the method response
- (chore) Adds testing CI
- (chore) Adds test for safe restart
- (feature) Adds the safe restart context manager in base component
- Contributors: Maria Kabtoul, ahr, mkabtoul
0.6.1 (2026-04-11)
- (docs) Adds a more comprehensive guide for the internal events-actions system design
- (fix) Adds guard to avoid redundant checks for handle once events
- (feature) Adds tests for generic events with and without dynamic arguments for Actions
- (feature) Adds generic events management to Monitor
- (refactor) Removes overhead of serializing/deserializing events in Monitor
- (feature) Adds support for constructing event conditions using generic methods in the recipe polled at a given check_rate
- (chore) Removes unused commented code
- (chore) Improves system graph colors in light theme
- (feature) Makes system graph draggable and resizable
- (fix) Fixes arrow heads pointing direction for input/output topics
- (fix) Fixes multiple issues with input topics in node graph
- (feature) Adds events and actions to the graph and adds events detail card
- (refactor) Refactors building system info and adds condition serialization to events
- (fix) Fixes fetching decorated methods in component
- (feature) Adds endpoints for system info graph
- (feature) Adds front end elements for system info graph
- (feature) Adds serialized system info generation in the launcher
- (fix) Removes unused imports
- (fix) Sets destroyed publisher object to None to avoid rclpy errors during restart
- Contributors: ahr, mkabtoul
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| automatika_embodied_agents | |
| kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
|
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
| Version | 0.7.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/automatika-robotics/ros-sugar.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [](https://opensource.org/licenses/MIT) [](https://www.python.org/downloads/) [](https://docs.ros.org/en/humble/index.html) [](https://discord.gg/B9ZU6qjzND) **The orchestration layer for event-driven ROS 2 systems** [**EMOS Documentation**](https://emos.automatikarobotics.com) | [**Developer Docs**](https://sugarcoat.automatikarobotics.com) | [**Discord**](https://discord.gg/B9ZU6qjzND)
What is Sugarcoat?
Sugarcoat is the orchestration layer of the EMOS (Embodied Operating System) ecosystem by Automatika Robotics. It is a meta-framework that replaces fragmented ROS2 development with a unified workflow, providing a high-level Python API to build robust lifecycle-managed components and orchestrate them into cohesive, self-healing systems using an event-driven architecture.
For full documentation, tutorials, and recipes, visit emos.automatikarobotics.com.
Key Features & Core Pillars
| Feature | Description |
|---|---|
| Smart Components | Every component is a managed lifecycle node (Configure, Activate, Deactivate) out of the box. It features type-safe configurations via attrs and declarative auto-wiring for inputs/outputs. |
| Active Resilience |
Built-in “Immune System” for ROS2 nodes. Components actively report their Health Status (Algorithm, Component, or System failures) and automatically trigger distributed Fallbacks to self-heal without crashing. |
| Event-Driven Behavior | Define global Events (e.g., Event(battery < 10.0)) and Actions in pure, readable Python. These act as triggers that monitor ROS2 topics natively and execute instantly regardless of current system state. |
| Centralized Orchestration | A powerful Launcher acts as a pythonic alternative to ros2 launch. It supports multi-threaded or multi-process execution, actively supervising component lifecycles at runtime. |
| Universal Applications | Robot Plugins act as a translation layer. This allows you to write generic, portable automation logic (recipes) that run on any robot without code changes. |
| Dynamic Web UI | Auto-generates a fully functional web frontend for every topic, parameter, and event instantly. |
Dynamic Web UI for Sugarcoat Recipes
The Dynamic Web UI feature takes system visibility and control to the next level. Built with FastHTML and MonsterUI, it is designed to automatically generate a fully dynamic, extensible web interface for any Sugarcoat recipe, completely eliminating the need for manual front-end development.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Point Navigation Recipe An example for an automatically generated UI for a point navigation system from Kompass. The UI automatically renders map data, and sends navigation goals to the robot.
What’s Inside?
- Automatic Settings UI: Interfaces for configuring the settings of all Components used in your recipe are generated on the fly.
- Auto I/O Visualization: Front-end controls and data visualizations for UI Inputs and Outputs are created automatically.
- WebSocket-Based Streaming: Features bidirectional, low-latency communication for streaming text, image, and audio messages.
- Responsive Layouts: Input and output elements are presented in clear, adaptable grid layouts.
- Extensible Design: Easily add support for new message types and custom visualizations through extensions.
Documentation
| Resource | URL |
|---|---|
| Usage Docs (EMOS) | emos.automatikarobotics.com |
| Developer Docs | sugarcoat.automatikarobotics.com |
| API Reference | sugarcoat.automatikarobotics.com/apidocs |
Installation
Sugarcoat is available for ROS versions Humble.
Using your Package Manager (Recommended)
On Ubuntu, for example:
sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar
Building from Source
```bash
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.7.1 (2026-06-05)
- (fix) Fixes stale reference in logged warning
- (chore) Adds more tests for plugins, http transport, route via host and telemetry bus
- (refactor) Changes from tcp to AF_UNIX sockets in transport bus and fixes pubilishing from multiple threads on the same sock via locks
- (fix) Makes rclpy_context test fixture tolerant of a pre-initialized context
- (docs) Updates robot plugins doc
- (feature) Adds robot config from plugin when defined
- (fix) Adds handling callbacks and publishers dict as sources of truth instead of in_topic and out_topic
- (chore) Adds correct docstring for plugin metadata
- (chore) Updates robot plugin tests
- (feature) Adds use_plugin to topic to get take topic type from
plugin
- Disambiguates topics of similar type by matching topic name with
keys available in plugin
- Keys can surface in errors or avaialble via inspection
- (feature) Adds plugin_action decorator for robot actions exposed by plugins
- (chore) Adds test for robot plugin feature
- (feature) Adds initialization and tear down of robot plugin host to the launcher
- (feature) Adds serialization of robot plugin in the generic executable
- (feature) Adds handling of external plugin topics and events blackboard in the monitor
- (feature) Wires the robot plugin handling in the component
- (feature) Adds robot command type that subclasses publisher for generalized publishing to robot via plugins
- (refactor) Removes old plugin init from serialized config
- (feautre) Adds new general purpose robot plugin infrastructure (feedback, robot commands, transports and plugin classes)
- (chore) Removes rolling from deb package build
- Contributors: ahr
0.7.0 (2026-04-30)
- (chore) Adds tests for base attrs
- (fix) Adds check for any type fields in base attrs
- (feature) Adds display of action server logs in the main logging card (#46)
- (fix) Changes sleep time between probe service response checks to 1/loop_rate instead of arbitrary constant
- (feature) Adds on_process_fail method to launcher that respawns
processes
- Adds lifecycle service calling methods in monitor to respawn processes and handle lifecylce transitions
- Creates unified timer for watching process start for initial launch and failed process launch
- Uses internal launch actions for emitting the action to launch all components at init
- (fix) Adds a param to base config for executor spin timeout to decouple it from loop rate
- (feature) Adds ui display for geometry types when no map element is present
- (fix) Specifies callback in tf listener timer (#43)
- (chore) Adds testing for execute action service
- (feature) Calling the execute method service for component actions now returns the method response
- (chore) Adds testing CI
- (chore) Adds test for safe restart
- (feature) Adds the safe restart context manager in base component
- Contributors: Maria Kabtoul, ahr, mkabtoul
0.6.1 (2026-04-11)
- (docs) Adds a more comprehensive guide for the internal events-actions system design
- (fix) Adds guard to avoid redundant checks for handle once events
- (feature) Adds tests for generic events with and without dynamic arguments for Actions
- (feature) Adds generic events management to Monitor
- (refactor) Removes overhead of serializing/deserializing events in Monitor
- (feature) Adds support for constructing event conditions using generic methods in the recipe polled at a given check_rate
- (chore) Removes unused commented code
- (chore) Improves system graph colors in light theme
- (feature) Makes system graph draggable and resizable
- (fix) Fixes arrow heads pointing direction for input/output topics
- (fix) Fixes multiple issues with input topics in node graph
- (feature) Adds events and actions to the graph and adds events detail card
- (refactor) Refactors building system info and adds condition serialization to events
- (fix) Fixes fetching decorated methods in component
- (feature) Adds endpoints for system info graph
- (feature) Adds front end elements for system info graph
- (feature) Adds serialized system info generation in the launcher
- (fix) Removes unused imports
- (fix) Sets destroyed publisher object to None to avoid rclpy errors during restart
- Contributors: ahr, mkabtoul
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| automatika_embodied_agents | |
| kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
|
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
| Version | 0.7.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/automatika-robotics/ros-sugar.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [](https://opensource.org/licenses/MIT) [](https://www.python.org/downloads/) [](https://docs.ros.org/en/humble/index.html) [](https://discord.gg/B9ZU6qjzND) **The orchestration layer for event-driven ROS 2 systems** [**EMOS Documentation**](https://emos.automatikarobotics.com) | [**Developer Docs**](https://sugarcoat.automatikarobotics.com) | [**Discord**](https://discord.gg/B9ZU6qjzND)
What is Sugarcoat?
Sugarcoat is the orchestration layer of the EMOS (Embodied Operating System) ecosystem by Automatika Robotics. It is a meta-framework that replaces fragmented ROS2 development with a unified workflow, providing a high-level Python API to build robust lifecycle-managed components and orchestrate them into cohesive, self-healing systems using an event-driven architecture.
For full documentation, tutorials, and recipes, visit emos.automatikarobotics.com.
Key Features & Core Pillars
| Feature | Description |
|---|---|
| Smart Components | Every component is a managed lifecycle node (Configure, Activate, Deactivate) out of the box. It features type-safe configurations via attrs and declarative auto-wiring for inputs/outputs. |
| Active Resilience |
Built-in “Immune System” for ROS2 nodes. Components actively report their Health Status (Algorithm, Component, or System failures) and automatically trigger distributed Fallbacks to self-heal without crashing. |
| Event-Driven Behavior | Define global Events (e.g., Event(battery < 10.0)) and Actions in pure, readable Python. These act as triggers that monitor ROS2 topics natively and execute instantly regardless of current system state. |
| Centralized Orchestration | A powerful Launcher acts as a pythonic alternative to ros2 launch. It supports multi-threaded or multi-process execution, actively supervising component lifecycles at runtime. |
| Universal Applications | Robot Plugins act as a translation layer. This allows you to write generic, portable automation logic (recipes) that run on any robot without code changes. |
| Dynamic Web UI | Auto-generates a fully functional web frontend for every topic, parameter, and event instantly. |
Dynamic Web UI for Sugarcoat Recipes
The Dynamic Web UI feature takes system visibility and control to the next level. Built with FastHTML and MonsterUI, it is designed to automatically generate a fully dynamic, extensible web interface for any Sugarcoat recipe, completely eliminating the need for manual front-end development.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Point Navigation Recipe An example for an automatically generated UI for a point navigation system from Kompass. The UI automatically renders map data, and sends navigation goals to the robot.
What’s Inside?
- Automatic Settings UI: Interfaces for configuring the settings of all Components used in your recipe are generated on the fly.
- Auto I/O Visualization: Front-end controls and data visualizations for UI Inputs and Outputs are created automatically.
- WebSocket-Based Streaming: Features bidirectional, low-latency communication for streaming text, image, and audio messages.
- Responsive Layouts: Input and output elements are presented in clear, adaptable grid layouts.
- Extensible Design: Easily add support for new message types and custom visualizations through extensions.
Documentation
| Resource | URL |
|---|---|
| Usage Docs (EMOS) | emos.automatikarobotics.com |
| Developer Docs | sugarcoat.automatikarobotics.com |
| API Reference | sugarcoat.automatikarobotics.com/apidocs |
Installation
Sugarcoat is available for ROS versions Humble.
Using your Package Manager (Recommended)
On Ubuntu, for example:
sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar
Building from Source
```bash
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.7.1 (2026-06-05)
- (fix) Fixes stale reference in logged warning
- (chore) Adds more tests for plugins, http transport, route via host and telemetry bus
- (refactor) Changes from tcp to AF_UNIX sockets in transport bus and fixes pubilishing from multiple threads on the same sock via locks
- (fix) Makes rclpy_context test fixture tolerant of a pre-initialized context
- (docs) Updates robot plugins doc
- (feature) Adds robot config from plugin when defined
- (fix) Adds handling callbacks and publishers dict as sources of truth instead of in_topic and out_topic
- (chore) Adds correct docstring for plugin metadata
- (chore) Updates robot plugin tests
- (feature) Adds use_plugin to topic to get take topic type from
plugin
- Disambiguates topics of similar type by matching topic name with
keys available in plugin
- Keys can surface in errors or avaialble via inspection
- (feature) Adds plugin_action decorator for robot actions exposed by plugins
- (chore) Adds test for robot plugin feature
- (feature) Adds initialization and tear down of robot plugin host to the launcher
- (feature) Adds serialization of robot plugin in the generic executable
- (feature) Adds handling of external plugin topics and events blackboard in the monitor
- (feature) Wires the robot plugin handling in the component
- (feature) Adds robot command type that subclasses publisher for generalized publishing to robot via plugins
- (refactor) Removes old plugin init from serialized config
- (feautre) Adds new general purpose robot plugin infrastructure (feedback, robot commands, transports and plugin classes)
- (chore) Removes rolling from deb package build
- Contributors: ahr
0.7.0 (2026-04-30)
- (chore) Adds tests for base attrs
- (fix) Adds check for any type fields in base attrs
- (feature) Adds display of action server logs in the main logging card (#46)
- (fix) Changes sleep time between probe service response checks to 1/loop_rate instead of arbitrary constant
- (feature) Adds on_process_fail method to launcher that respawns
processes
- Adds lifecycle service calling methods in monitor to respawn processes and handle lifecylce transitions
- Creates unified timer for watching process start for initial launch and failed process launch
- Uses internal launch actions for emitting the action to launch all components at init
- (fix) Adds a param to base config for executor spin timeout to decouple it from loop rate
- (feature) Adds ui display for geometry types when no map element is present
- (fix) Specifies callback in tf listener timer (#43)
- (chore) Adds testing for execute action service
- (feature) Calling the execute method service for component actions now returns the method response
- (chore) Adds testing CI
- (chore) Adds test for safe restart
- (feature) Adds the safe restart context manager in base component
- Contributors: Maria Kabtoul, ahr, mkabtoul
0.6.1 (2026-04-11)
- (docs) Adds a more comprehensive guide for the internal events-actions system design
- (fix) Adds guard to avoid redundant checks for handle once events
- (feature) Adds tests for generic events with and without dynamic arguments for Actions
- (feature) Adds generic events management to Monitor
- (refactor) Removes overhead of serializing/deserializing events in Monitor
- (feature) Adds support for constructing event conditions using generic methods in the recipe polled at a given check_rate
- (chore) Removes unused commented code
- (chore) Improves system graph colors in light theme
- (feature) Makes system graph draggable and resizable
- (fix) Fixes arrow heads pointing direction for input/output topics
- (fix) Fixes multiple issues with input topics in node graph
- (feature) Adds events and actions to the graph and adds events detail card
- (refactor) Refactors building system info and adds condition serialization to events
- (fix) Fixes fetching decorated methods in component
- (feature) Adds endpoints for system info graph
- (feature) Adds front end elements for system info graph
- (feature) Adds serialized system info generation in the launcher
- (fix) Removes unused imports
- (fix) Sets destroyed publisher object to None to avoid rclpy errors during restart
- Contributors: ahr, mkabtoul
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| automatika_embodied_agents | |
| kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
|
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
| Version | 0.7.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/automatika-robotics/ros-sugar.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [](https://opensource.org/licenses/MIT) [](https://www.python.org/downloads/) [](https://docs.ros.org/en/humble/index.html) [](https://discord.gg/B9ZU6qjzND) **The orchestration layer for event-driven ROS 2 systems** [**EMOS Documentation**](https://emos.automatikarobotics.com) | [**Developer Docs**](https://sugarcoat.automatikarobotics.com) | [**Discord**](https://discord.gg/B9ZU6qjzND)
What is Sugarcoat?
Sugarcoat is the orchestration layer of the EMOS (Embodied Operating System) ecosystem by Automatika Robotics. It is a meta-framework that replaces fragmented ROS2 development with a unified workflow, providing a high-level Python API to build robust lifecycle-managed components and orchestrate them into cohesive, self-healing systems using an event-driven architecture.
For full documentation, tutorials, and recipes, visit emos.automatikarobotics.com.
Key Features & Core Pillars
| Feature | Description |
|---|---|
| Smart Components | Every component is a managed lifecycle node (Configure, Activate, Deactivate) out of the box. It features type-safe configurations via attrs and declarative auto-wiring for inputs/outputs. |
| Active Resilience |
Built-in “Immune System” for ROS2 nodes. Components actively report their Health Status (Algorithm, Component, or System failures) and automatically trigger distributed Fallbacks to self-heal without crashing. |
| Event-Driven Behavior | Define global Events (e.g., Event(battery < 10.0)) and Actions in pure, readable Python. These act as triggers that monitor ROS2 topics natively and execute instantly regardless of current system state. |
| Centralized Orchestration | A powerful Launcher acts as a pythonic alternative to ros2 launch. It supports multi-threaded or multi-process execution, actively supervising component lifecycles at runtime. |
| Universal Applications | Robot Plugins act as a translation layer. This allows you to write generic, portable automation logic (recipes) that run on any robot without code changes. |
| Dynamic Web UI | Auto-generates a fully functional web frontend for every topic, parameter, and event instantly. |
Dynamic Web UI for Sugarcoat Recipes
The Dynamic Web UI feature takes system visibility and control to the next level. Built with FastHTML and MonsterUI, it is designed to automatically generate a fully dynamic, extensible web interface for any Sugarcoat recipe, completely eliminating the need for manual front-end development.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Point Navigation Recipe An example for an automatically generated UI for a point navigation system from Kompass. The UI automatically renders map data, and sends navigation goals to the robot.
What’s Inside?
- Automatic Settings UI: Interfaces for configuring the settings of all Components used in your recipe are generated on the fly.
- Auto I/O Visualization: Front-end controls and data visualizations for UI Inputs and Outputs are created automatically.
- WebSocket-Based Streaming: Features bidirectional, low-latency communication for streaming text, image, and audio messages.
- Responsive Layouts: Input and output elements are presented in clear, adaptable grid layouts.
- Extensible Design: Easily add support for new message types and custom visualizations through extensions.
Documentation
| Resource | URL |
|---|---|
| Usage Docs (EMOS) | emos.automatikarobotics.com |
| Developer Docs | sugarcoat.automatikarobotics.com |
| API Reference | sugarcoat.automatikarobotics.com/apidocs |
Installation
Sugarcoat is available for ROS versions Humble.
Using your Package Manager (Recommended)
On Ubuntu, for example:
sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar
Building from Source
```bash
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.7.1 (2026-06-05)
- (fix) Fixes stale reference in logged warning
- (chore) Adds more tests for plugins, http transport, route via host and telemetry bus
- (refactor) Changes from tcp to AF_UNIX sockets in transport bus and fixes pubilishing from multiple threads on the same sock via locks
- (fix) Makes rclpy_context test fixture tolerant of a pre-initialized context
- (docs) Updates robot plugins doc
- (feature) Adds robot config from plugin when defined
- (fix) Adds handling callbacks and publishers dict as sources of truth instead of in_topic and out_topic
- (chore) Adds correct docstring for plugin metadata
- (chore) Updates robot plugin tests
- (feature) Adds use_plugin to topic to get take topic type from
plugin
- Disambiguates topics of similar type by matching topic name with
keys available in plugin
- Keys can surface in errors or avaialble via inspection
- (feature) Adds plugin_action decorator for robot actions exposed by plugins
- (chore) Adds test for robot plugin feature
- (feature) Adds initialization and tear down of robot plugin host to the launcher
- (feature) Adds serialization of robot plugin in the generic executable
- (feature) Adds handling of external plugin topics and events blackboard in the monitor
- (feature) Wires the robot plugin handling in the component
- (feature) Adds robot command type that subclasses publisher for generalized publishing to robot via plugins
- (refactor) Removes old plugin init from serialized config
- (feautre) Adds new general purpose robot plugin infrastructure (feedback, robot commands, transports and plugin classes)
- (chore) Removes rolling from deb package build
- Contributors: ahr
0.7.0 (2026-04-30)
- (chore) Adds tests for base attrs
- (fix) Adds check for any type fields in base attrs
- (feature) Adds display of action server logs in the main logging card (#46)
- (fix) Changes sleep time between probe service response checks to 1/loop_rate instead of arbitrary constant
- (feature) Adds on_process_fail method to launcher that respawns
processes
- Adds lifecycle service calling methods in monitor to respawn processes and handle lifecylce transitions
- Creates unified timer for watching process start for initial launch and failed process launch
- Uses internal launch actions for emitting the action to launch all components at init
- (fix) Adds a param to base config for executor spin timeout to decouple it from loop rate
- (feature) Adds ui display for geometry types when no map element is present
- (fix) Specifies callback in tf listener timer (#43)
- (chore) Adds testing for execute action service
- (feature) Calling the execute method service for component actions now returns the method response
- (chore) Adds testing CI
- (chore) Adds test for safe restart
- (feature) Adds the safe restart context manager in base component
- Contributors: Maria Kabtoul, ahr, mkabtoul
0.6.1 (2026-04-11)
- (docs) Adds a more comprehensive guide for the internal events-actions system design
- (fix) Adds guard to avoid redundant checks for handle once events
- (feature) Adds tests for generic events with and without dynamic arguments for Actions
- (feature) Adds generic events management to Monitor
- (refactor) Removes overhead of serializing/deserializing events in Monitor
- (feature) Adds support for constructing event conditions using generic methods in the recipe polled at a given check_rate
- (chore) Removes unused commented code
- (chore) Improves system graph colors in light theme
- (feature) Makes system graph draggable and resizable
- (fix) Fixes arrow heads pointing direction for input/output topics
- (fix) Fixes multiple issues with input topics in node graph
- (feature) Adds events and actions to the graph and adds events detail card
- (refactor) Refactors building system info and adds condition serialization to events
- (fix) Fixes fetching decorated methods in component
- (feature) Adds endpoints for system info graph
- (feature) Adds front end elements for system info graph
- (feature) Adds serialized system info generation in the launcher
- (fix) Removes unused imports
- (fix) Sets destroyed publisher object to None to avoid rclpy errors during restart
- Contributors: ahr, mkabtoul
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| automatika_embodied_agents | |
| kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
|
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
| Version | 0.7.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/automatika-robotics/ros-sugar.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [](https://opensource.org/licenses/MIT) [](https://www.python.org/downloads/) [](https://docs.ros.org/en/humble/index.html) [](https://discord.gg/B9ZU6qjzND) **The orchestration layer for event-driven ROS 2 systems** [**EMOS Documentation**](https://emos.automatikarobotics.com) | [**Developer Docs**](https://sugarcoat.automatikarobotics.com) | [**Discord**](https://discord.gg/B9ZU6qjzND)
What is Sugarcoat?
Sugarcoat is the orchestration layer of the EMOS (Embodied Operating System) ecosystem by Automatika Robotics. It is a meta-framework that replaces fragmented ROS2 development with a unified workflow, providing a high-level Python API to build robust lifecycle-managed components and orchestrate them into cohesive, self-healing systems using an event-driven architecture.
For full documentation, tutorials, and recipes, visit emos.automatikarobotics.com.
Key Features & Core Pillars
| Feature | Description |
|---|---|
| Smart Components | Every component is a managed lifecycle node (Configure, Activate, Deactivate) out of the box. It features type-safe configurations via attrs and declarative auto-wiring for inputs/outputs. |
| Active Resilience |
Built-in “Immune System” for ROS2 nodes. Components actively report their Health Status (Algorithm, Component, or System failures) and automatically trigger distributed Fallbacks to self-heal without crashing. |
| Event-Driven Behavior | Define global Events (e.g., Event(battery < 10.0)) and Actions in pure, readable Python. These act as triggers that monitor ROS2 topics natively and execute instantly regardless of current system state. |
| Centralized Orchestration | A powerful Launcher acts as a pythonic alternative to ros2 launch. It supports multi-threaded or multi-process execution, actively supervising component lifecycles at runtime. |
| Universal Applications | Robot Plugins act as a translation layer. This allows you to write generic, portable automation logic (recipes) that run on any robot without code changes. |
| Dynamic Web UI | Auto-generates a fully functional web frontend for every topic, parameter, and event instantly. |
Dynamic Web UI for Sugarcoat Recipes
The Dynamic Web UI feature takes system visibility and control to the next level. Built with FastHTML and MonsterUI, it is designed to automatically generate a fully dynamic, extensible web interface for any Sugarcoat recipe, completely eliminating the need for manual front-end development.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Point Navigation Recipe An example for an automatically generated UI for a point navigation system from Kompass. The UI automatically renders map data, and sends navigation goals to the robot.
What’s Inside?
- Automatic Settings UI: Interfaces for configuring the settings of all Components used in your recipe are generated on the fly.
- Auto I/O Visualization: Front-end controls and data visualizations for UI Inputs and Outputs are created automatically.
- WebSocket-Based Streaming: Features bidirectional, low-latency communication for streaming text, image, and audio messages.
- Responsive Layouts: Input and output elements are presented in clear, adaptable grid layouts.
- Extensible Design: Easily add support for new message types and custom visualizations through extensions.
Documentation
| Resource | URL |
|---|---|
| Usage Docs (EMOS) | emos.automatikarobotics.com |
| Developer Docs | sugarcoat.automatikarobotics.com |
| API Reference | sugarcoat.automatikarobotics.com/apidocs |
Installation
Sugarcoat is available for ROS versions Humble.
Using your Package Manager (Recommended)
On Ubuntu, for example:
sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar
Building from Source
```bash
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.7.1 (2026-06-05)
- (fix) Fixes stale reference in logged warning
- (chore) Adds more tests for plugins, http transport, route via host and telemetry bus
- (refactor) Changes from tcp to AF_UNIX sockets in transport bus and fixes pubilishing from multiple threads on the same sock via locks
- (fix) Makes rclpy_context test fixture tolerant of a pre-initialized context
- (docs) Updates robot plugins doc
- (feature) Adds robot config from plugin when defined
- (fix) Adds handling callbacks and publishers dict as sources of truth instead of in_topic and out_topic
- (chore) Adds correct docstring for plugin metadata
- (chore) Updates robot plugin tests
- (feature) Adds use_plugin to topic to get take topic type from
plugin
- Disambiguates topics of similar type by matching topic name with
keys available in plugin
- Keys can surface in errors or avaialble via inspection
- (feature) Adds plugin_action decorator for robot actions exposed by plugins
- (chore) Adds test for robot plugin feature
- (feature) Adds initialization and tear down of robot plugin host to the launcher
- (feature) Adds serialization of robot plugin in the generic executable
- (feature) Adds handling of external plugin topics and events blackboard in the monitor
- (feature) Wires the robot plugin handling in the component
- (feature) Adds robot command type that subclasses publisher for generalized publishing to robot via plugins
- (refactor) Removes old plugin init from serialized config
- (feautre) Adds new general purpose robot plugin infrastructure (feedback, robot commands, transports and plugin classes)
- (chore) Removes rolling from deb package build
- Contributors: ahr
0.7.0 (2026-04-30)
- (chore) Adds tests for base attrs
- (fix) Adds check for any type fields in base attrs
- (feature) Adds display of action server logs in the main logging card (#46)
- (fix) Changes sleep time between probe service response checks to 1/loop_rate instead of arbitrary constant
- (feature) Adds on_process_fail method to launcher that respawns
processes
- Adds lifecycle service calling methods in monitor to respawn processes and handle lifecylce transitions
- Creates unified timer for watching process start for initial launch and failed process launch
- Uses internal launch actions for emitting the action to launch all components at init
- (fix) Adds a param to base config for executor spin timeout to decouple it from loop rate
- (feature) Adds ui display for geometry types when no map element is present
- (fix) Specifies callback in tf listener timer (#43)
- (chore) Adds testing for execute action service
- (feature) Calling the execute method service for component actions now returns the method response
- (chore) Adds testing CI
- (chore) Adds test for safe restart
- (feature) Adds the safe restart context manager in base component
- Contributors: Maria Kabtoul, ahr, mkabtoul
0.6.1 (2026-04-11)
- (docs) Adds a more comprehensive guide for the internal events-actions system design
- (fix) Adds guard to avoid redundant checks for handle once events
- (feature) Adds tests for generic events with and without dynamic arguments for Actions
- (feature) Adds generic events management to Monitor
- (refactor) Removes overhead of serializing/deserializing events in Monitor
- (feature) Adds support for constructing event conditions using generic methods in the recipe polled at a given check_rate
- (chore) Removes unused commented code
- (chore) Improves system graph colors in light theme
- (feature) Makes system graph draggable and resizable
- (fix) Fixes arrow heads pointing direction for input/output topics
- (fix) Fixes multiple issues with input topics in node graph
- (feature) Adds events and actions to the graph and adds events detail card
- (refactor) Refactors building system info and adds condition serialization to events
- (fix) Fixes fetching decorated methods in component
- (feature) Adds endpoints for system info graph
- (feature) Adds front end elements for system info graph
- (feature) Adds serialized system info generation in the launcher
- (fix) Removes unused imports
- (fix) Sets destroyed publisher object to None to avoid rclpy errors during restart
- Contributors: ahr, mkabtoul
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| automatika_embodied_agents | |
| kompass |