Package symbol

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Version 0.6.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-04-19
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![ROS2](https://img.shields.io/badge/ROS2-Humble%2B-green)](https://docs.ros.org/en/humble/index.html) [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](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.

EmbodiedAgents UI Example GIF

  • 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.

Navigation System UI Example GIF

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.

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

Changelog for package automatika_ros_sugar

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

0.6.0 (2026-04-05)

  • (docs) Updates docs for the publishing pre-processor consistency and action decorators with description
  • (fix) Moves feedback update period to UI node config
  • (fix) Uses wait_until_first_feedback in action client send_request
  • (fix) Minor fix in onclick button behavior
  • (feature) Adds persistent connection handling for map topics in UI
  • (fix) Updates Twist converter to use a single argument
  • (fix) Fixes base action client goal acceptance check
  • (feature) Extends the launcher to use robot, frames, inputs and outputs settings implemented in child packages
  • (fix) Adds fix for uvloop ssl protocol bug by passing it asynio event loop
  • (fix) Adds fixes for python3.8 compatibility
  • (fix) Fixes null header values in HTMX websocket messages that crashes FastHTML
  • (fix) Fixes running external processors on output
  • (fix) Fix on_fail action validation in Launcher
  • (chore) Fixes feedback messages logging in Task UI
  • (feature) Adds helper method to format ros messages for logging
  • (chore) Improves UI light theme colors
  • (fix) Fixes feedback cleanup and scroll to bottom
  • (fix) Fixes action client cleanup in UI node after task completed
  • (fix) Fixes UI Task feedback ws sending in callback
  • (fix) Fixes UI page reload on form start error
  • (fix) Adds audio manager to UI only if an audio element is added
  • (fix) Kills the feedback timer after a task is cancelled
  • (fix) Changes certificate missing logging in ui node to warning
  • (feature) Adds method to inspect component and to get available ros entrypoints
  • (feature) Adds summarize method to component base config
  • (fix) Tracks each component package and executable names in a dictionary by the Launcher
  • (feature) Adds array_shape validator to base validators
  • (fix) Fixes elements setup order in launcher
  • (fix) Makes ui main action input return an error if called on a component not an action server
  • (chore) Adds check for additional internal events in Monitor launch_action
  • (fix) Moves initializing empty internal events/actions paris to helper method
  • (fix) Fixes pure internal events init in Monitor
  • (fix) Adds more expressive response in execute_method service
  • (feature) Adds registration of pure internal events in Monitor
  • (refactor) Moves parameter update code to a helper method to be used by childern components
  • (fix) Removes node spin fro service send_request
  • (fix) Fixes calling execute method client in monitor
  • (feature) Adds setter methods for custom action/server names
  • (feature) Adds methods to execute action goals based on a component name
  • (feature) Adds execute method service client to monitor and makes all service calls return results
  • (fix) Fixes error in component fallback decorator
  • (feature) Makes tool description a mapping thats stored as a json string
  • (feature) Adds optional tool description to fallback decorators as well
  • (feature) Adds action description to component action decorator
  • (feature) Adds description property to Action
  • (docs) Moves all docs to developer style
  • (docs) Fixes base url and sitemap
  • (chore) Splits docs action to build and deploy
  • (chore) Changes CI to official github pages deployment
  • Contributors: ahr, mkabtoul

0.5.0 (2026-02-14)

File truncated at 100 lines see the full file

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

Package symbol

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
jazzy

Package Summary

Version 0.6.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-04-19
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![ROS2](https://img.shields.io/badge/ROS2-Humble%2B-green)](https://docs.ros.org/en/humble/index.html) [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](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.

EmbodiedAgents UI Example GIF

  • 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.

Navigation System UI Example GIF

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.

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

Changelog for package automatika_ros_sugar

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

0.6.0 (2026-04-05)

  • (docs) Updates docs for the publishing pre-processor consistency and action decorators with description
  • (fix) Moves feedback update period to UI node config
  • (fix) Uses wait_until_first_feedback in action client send_request
  • (fix) Minor fix in onclick button behavior
  • (feature) Adds persistent connection handling for map topics in UI
  • (fix) Updates Twist converter to use a single argument
  • (fix) Fixes base action client goal acceptance check
  • (feature) Extends the launcher to use robot, frames, inputs and outputs settings implemented in child packages
  • (fix) Adds fix for uvloop ssl protocol bug by passing it asynio event loop
  • (fix) Adds fixes for python3.8 compatibility
  • (fix) Fixes null header values in HTMX websocket messages that crashes FastHTML
  • (fix) Fixes running external processors on output
  • (fix) Fix on_fail action validation in Launcher
  • (chore) Fixes feedback messages logging in Task UI
  • (feature) Adds helper method to format ros messages for logging
  • (chore) Improves UI light theme colors
  • (fix) Fixes feedback cleanup and scroll to bottom
  • (fix) Fixes action client cleanup in UI node after task completed
  • (fix) Fixes UI Task feedback ws sending in callback
  • (fix) Fixes UI page reload on form start error
  • (fix) Adds audio manager to UI only if an audio element is added
  • (fix) Kills the feedback timer after a task is cancelled
  • (fix) Changes certificate missing logging in ui node to warning
  • (feature) Adds method to inspect component and to get available ros entrypoints
  • (feature) Adds summarize method to component base config
  • (fix) Tracks each component package and executable names in a dictionary by the Launcher
  • (feature) Adds array_shape validator to base validators
  • (fix) Fixes elements setup order in launcher
  • (fix) Makes ui main action input return an error if called on a component not an action server
  • (chore) Adds check for additional internal events in Monitor launch_action
  • (fix) Moves initializing empty internal events/actions paris to helper method
  • (fix) Fixes pure internal events init in Monitor
  • (fix) Adds more expressive response in execute_method service
  • (feature) Adds registration of pure internal events in Monitor
  • (refactor) Moves parameter update code to a helper method to be used by childern components
  • (fix) Removes node spin fro service send_request
  • (fix) Fixes calling execute method client in monitor
  • (feature) Adds setter methods for custom action/server names
  • (feature) Adds methods to execute action goals based on a component name
  • (feature) Adds execute method service client to monitor and makes all service calls return results
  • (fix) Fixes error in component fallback decorator
  • (feature) Makes tool description a mapping thats stored as a json string
  • (feature) Adds optional tool description to fallback decorators as well
  • (feature) Adds action description to component action decorator
  • (feature) Adds description property to Action
  • (docs) Moves all docs to developer style
  • (docs) Fixes base url and sitemap
  • (chore) Splits docs action to build and deploy
  • (chore) Changes CI to official github pages deployment
  • Contributors: ahr, mkabtoul

0.5.0 (2026-02-14)

File truncated at 100 lines see the full file

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

Package symbol

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
kilted

Package Summary

Version 0.6.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-04-19
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![ROS2](https://img.shields.io/badge/ROS2-Humble%2B-green)](https://docs.ros.org/en/humble/index.html) [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](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.

EmbodiedAgents UI Example GIF

  • 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.

Navigation System UI Example GIF

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.

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

Changelog for package automatika_ros_sugar

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

0.6.0 (2026-04-05)

  • (docs) Updates docs for the publishing pre-processor consistency and action decorators with description
  • (fix) Moves feedback update period to UI node config
  • (fix) Uses wait_until_first_feedback in action client send_request
  • (fix) Minor fix in onclick button behavior
  • (feature) Adds persistent connection handling for map topics in UI
  • (fix) Updates Twist converter to use a single argument
  • (fix) Fixes base action client goal acceptance check
  • (feature) Extends the launcher to use robot, frames, inputs and outputs settings implemented in child packages
  • (fix) Adds fix for uvloop ssl protocol bug by passing it asynio event loop
  • (fix) Adds fixes for python3.8 compatibility
  • (fix) Fixes null header values in HTMX websocket messages that crashes FastHTML
  • (fix) Fixes running external processors on output
  • (fix) Fix on_fail action validation in Launcher
  • (chore) Fixes feedback messages logging in Task UI
  • (feature) Adds helper method to format ros messages for logging
  • (chore) Improves UI light theme colors
  • (fix) Fixes feedback cleanup and scroll to bottom
  • (fix) Fixes action client cleanup in UI node after task completed
  • (fix) Fixes UI Task feedback ws sending in callback
  • (fix) Fixes UI page reload on form start error
  • (fix) Adds audio manager to UI only if an audio element is added
  • (fix) Kills the feedback timer after a task is cancelled
  • (fix) Changes certificate missing logging in ui node to warning
  • (feature) Adds method to inspect component and to get available ros entrypoints
  • (feature) Adds summarize method to component base config
  • (fix) Tracks each component package and executable names in a dictionary by the Launcher
  • (feature) Adds array_shape validator to base validators
  • (fix) Fixes elements setup order in launcher
  • (fix) Makes ui main action input return an error if called on a component not an action server
  • (chore) Adds check for additional internal events in Monitor launch_action
  • (fix) Moves initializing empty internal events/actions paris to helper method
  • (fix) Fixes pure internal events init in Monitor
  • (fix) Adds more expressive response in execute_method service
  • (feature) Adds registration of pure internal events in Monitor
  • (refactor) Moves parameter update code to a helper method to be used by childern components
  • (fix) Removes node spin fro service send_request
  • (fix) Fixes calling execute method client in monitor
  • (feature) Adds setter methods for custom action/server names
  • (feature) Adds methods to execute action goals based on a component name
  • (feature) Adds execute method service client to monitor and makes all service calls return results
  • (fix) Fixes error in component fallback decorator
  • (feature) Makes tool description a mapping thats stored as a json string
  • (feature) Adds optional tool description to fallback decorators as well
  • (feature) Adds action description to component action decorator
  • (feature) Adds description property to Action
  • (docs) Moves all docs to developer style
  • (docs) Fixes base url and sitemap
  • (chore) Splits docs action to build and deploy
  • (chore) Changes CI to official github pages deployment
  • Contributors: ahr, mkabtoul

0.5.0 (2026-02-14)

File truncated at 100 lines see the full file

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

Package symbol

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
rolling

Package Summary

Version 0.6.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-04-19
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![ROS2](https://img.shields.io/badge/ROS2-Humble%2B-green)](https://docs.ros.org/en/humble/index.html) [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](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.

EmbodiedAgents UI Example GIF

  • 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.

Navigation System UI Example GIF

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.

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

Changelog for package automatika_ros_sugar

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

0.6.0 (2026-04-05)

  • (docs) Updates docs for the publishing pre-processor consistency and action decorators with description
  • (fix) Moves feedback update period to UI node config
  • (fix) Uses wait_until_first_feedback in action client send_request
  • (fix) Minor fix in onclick button behavior
  • (feature) Adds persistent connection handling for map topics in UI
  • (fix) Updates Twist converter to use a single argument
  • (fix) Fixes base action client goal acceptance check
  • (feature) Extends the launcher to use robot, frames, inputs and outputs settings implemented in child packages
  • (fix) Adds fix for uvloop ssl protocol bug by passing it asynio event loop
  • (fix) Adds fixes for python3.8 compatibility
  • (fix) Fixes null header values in HTMX websocket messages that crashes FastHTML
  • (fix) Fixes running external processors on output
  • (fix) Fix on_fail action validation in Launcher
  • (chore) Fixes feedback messages logging in Task UI
  • (feature) Adds helper method to format ros messages for logging
  • (chore) Improves UI light theme colors
  • (fix) Fixes feedback cleanup and scroll to bottom
  • (fix) Fixes action client cleanup in UI node after task completed
  • (fix) Fixes UI Task feedback ws sending in callback
  • (fix) Fixes UI page reload on form start error
  • (fix) Adds audio manager to UI only if an audio element is added
  • (fix) Kills the feedback timer after a task is cancelled
  • (fix) Changes certificate missing logging in ui node to warning
  • (feature) Adds method to inspect component and to get available ros entrypoints
  • (feature) Adds summarize method to component base config
  • (fix) Tracks each component package and executable names in a dictionary by the Launcher
  • (feature) Adds array_shape validator to base validators
  • (fix) Fixes elements setup order in launcher
  • (fix) Makes ui main action input return an error if called on a component not an action server
  • (chore) Adds check for additional internal events in Monitor launch_action
  • (fix) Moves initializing empty internal events/actions paris to helper method
  • (fix) Fixes pure internal events init in Monitor
  • (fix) Adds more expressive response in execute_method service
  • (feature) Adds registration of pure internal events in Monitor
  • (refactor) Moves parameter update code to a helper method to be used by childern components
  • (fix) Removes node spin fro service send_request
  • (fix) Fixes calling execute method client in monitor
  • (feature) Adds setter methods for custom action/server names
  • (feature) Adds methods to execute action goals based on a component name
  • (feature) Adds execute method service client to monitor and makes all service calls return results
  • (fix) Fixes error in component fallback decorator
  • (feature) Makes tool description a mapping thats stored as a json string
  • (feature) Adds optional tool description to fallback decorators as well
  • (feature) Adds action description to component action decorator
  • (feature) Adds description property to Action
  • (docs) Moves all docs to developer style
  • (docs) Fixes base url and sitemap
  • (chore) Splits docs action to build and deploy
  • (chore) Changes CI to official github pages deployment
  • Contributors: ahr, mkabtoul

0.5.0 (2026-02-14)

File truncated at 100 lines see the full file

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Version 0.6.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-04-19
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![ROS2](https://img.shields.io/badge/ROS2-Humble%2B-green)](https://docs.ros.org/en/humble/index.html) [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](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.

EmbodiedAgents UI Example GIF

  • 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.

Navigation System UI Example GIF

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.

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

Changelog for package automatika_ros_sugar

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

0.6.0 (2026-04-05)

  • (docs) Updates docs for the publishing pre-processor consistency and action decorators with description
  • (fix) Moves feedback update period to UI node config
  • (fix) Uses wait_until_first_feedback in action client send_request
  • (fix) Minor fix in onclick button behavior
  • (feature) Adds persistent connection handling for map topics in UI
  • (fix) Updates Twist converter to use a single argument
  • (fix) Fixes base action client goal acceptance check
  • (feature) Extends the launcher to use robot, frames, inputs and outputs settings implemented in child packages
  • (fix) Adds fix for uvloop ssl protocol bug by passing it asynio event loop
  • (fix) Adds fixes for python3.8 compatibility
  • (fix) Fixes null header values in HTMX websocket messages that crashes FastHTML
  • (fix) Fixes running external processors on output
  • (fix) Fix on_fail action validation in Launcher
  • (chore) Fixes feedback messages logging in Task UI
  • (feature) Adds helper method to format ros messages for logging
  • (chore) Improves UI light theme colors
  • (fix) Fixes feedback cleanup and scroll to bottom
  • (fix) Fixes action client cleanup in UI node after task completed
  • (fix) Fixes UI Task feedback ws sending in callback
  • (fix) Fixes UI page reload on form start error
  • (fix) Adds audio manager to UI only if an audio element is added
  • (fix) Kills the feedback timer after a task is cancelled
  • (fix) Changes certificate missing logging in ui node to warning
  • (feature) Adds method to inspect component and to get available ros entrypoints
  • (feature) Adds summarize method to component base config
  • (fix) Tracks each component package and executable names in a dictionary by the Launcher
  • (feature) Adds array_shape validator to base validators
  • (fix) Fixes elements setup order in launcher
  • (fix) Makes ui main action input return an error if called on a component not an action server
  • (chore) Adds check for additional internal events in Monitor launch_action
  • (fix) Moves initializing empty internal events/actions paris to helper method
  • (fix) Fixes pure internal events init in Monitor
  • (fix) Adds more expressive response in execute_method service
  • (feature) Adds registration of pure internal events in Monitor
  • (refactor) Moves parameter update code to a helper method to be used by childern components
  • (fix) Removes node spin fro service send_request
  • (fix) Fixes calling execute method client in monitor
  • (feature) Adds setter methods for custom action/server names
  • (feature) Adds methods to execute action goals based on a component name
  • (feature) Adds execute method service client to monitor and makes all service calls return results
  • (fix) Fixes error in component fallback decorator
  • (feature) Makes tool description a mapping thats stored as a json string
  • (feature) Adds optional tool description to fallback decorators as well
  • (feature) Adds action description to component action decorator
  • (feature) Adds description property to Action
  • (docs) Moves all docs to developer style
  • (docs) Fixes base url and sitemap
  • (chore) Splits docs action to build and deploy
  • (chore) Changes CI to official github pages deployment
  • Contributors: ahr, mkabtoul

0.5.0 (2026-02-14)

File truncated at 100 lines see the full file

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Version 0.6.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-04-19
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![ROS2](https://img.shields.io/badge/ROS2-Humble%2B-green)](https://docs.ros.org/en/humble/index.html) [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](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.

EmbodiedAgents UI Example GIF

  • 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.

Navigation System UI Example GIF

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.

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

Changelog for package automatika_ros_sugar

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

0.6.0 (2026-04-05)

  • (docs) Updates docs for the publishing pre-processor consistency and action decorators with description
  • (fix) Moves feedback update period to UI node config
  • (fix) Uses wait_until_first_feedback in action client send_request
  • (fix) Minor fix in onclick button behavior
  • (feature) Adds persistent connection handling for map topics in UI
  • (fix) Updates Twist converter to use a single argument
  • (fix) Fixes base action client goal acceptance check
  • (feature) Extends the launcher to use robot, frames, inputs and outputs settings implemented in child packages
  • (fix) Adds fix for uvloop ssl protocol bug by passing it asynio event loop
  • (fix) Adds fixes for python3.8 compatibility
  • (fix) Fixes null header values in HTMX websocket messages that crashes FastHTML
  • (fix) Fixes running external processors on output
  • (fix) Fix on_fail action validation in Launcher
  • (chore) Fixes feedback messages logging in Task UI
  • (feature) Adds helper method to format ros messages for logging
  • (chore) Improves UI light theme colors
  • (fix) Fixes feedback cleanup and scroll to bottom
  • (fix) Fixes action client cleanup in UI node after task completed
  • (fix) Fixes UI Task feedback ws sending in callback
  • (fix) Fixes UI page reload on form start error
  • (fix) Adds audio manager to UI only if an audio element is added
  • (fix) Kills the feedback timer after a task is cancelled
  • (fix) Changes certificate missing logging in ui node to warning
  • (feature) Adds method to inspect component and to get available ros entrypoints
  • (feature) Adds summarize method to component base config
  • (fix) Tracks each component package and executable names in a dictionary by the Launcher
  • (feature) Adds array_shape validator to base validators
  • (fix) Fixes elements setup order in launcher
  • (fix) Makes ui main action input return an error if called on a component not an action server
  • (chore) Adds check for additional internal events in Monitor launch_action
  • (fix) Moves initializing empty internal events/actions paris to helper method
  • (fix) Fixes pure internal events init in Monitor
  • (fix) Adds more expressive response in execute_method service
  • (feature) Adds registration of pure internal events in Monitor
  • (refactor) Moves parameter update code to a helper method to be used by childern components
  • (fix) Removes node spin fro service send_request
  • (fix) Fixes calling execute method client in monitor
  • (feature) Adds setter methods for custom action/server names
  • (feature) Adds methods to execute action goals based on a component name
  • (feature) Adds execute method service client to monitor and makes all service calls return results
  • (fix) Fixes error in component fallback decorator
  • (feature) Makes tool description a mapping thats stored as a json string
  • (feature) Adds optional tool description to fallback decorators as well
  • (feature) Adds action description to component action decorator
  • (feature) Adds description property to Action
  • (docs) Moves all docs to developer style
  • (docs) Fixes base url and sitemap
  • (chore) Splits docs action to build and deploy
  • (chore) Changes CI to official github pages deployment
  • Contributors: ahr, mkabtoul

0.5.0 (2026-02-14)

File truncated at 100 lines see the full file

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Version 0.6.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-04-19
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![ROS2](https://img.shields.io/badge/ROS2-Humble%2B-green)](https://docs.ros.org/en/humble/index.html) [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](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.

EmbodiedAgents UI Example GIF

  • 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.

Navigation System UI Example GIF

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.

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

Changelog for package automatika_ros_sugar

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

0.6.0 (2026-04-05)

  • (docs) Updates docs for the publishing pre-processor consistency and action decorators with description
  • (fix) Moves feedback update period to UI node config
  • (fix) Uses wait_until_first_feedback in action client send_request
  • (fix) Minor fix in onclick button behavior
  • (feature) Adds persistent connection handling for map topics in UI
  • (fix) Updates Twist converter to use a single argument
  • (fix) Fixes base action client goal acceptance check
  • (feature) Extends the launcher to use robot, frames, inputs and outputs settings implemented in child packages
  • (fix) Adds fix for uvloop ssl protocol bug by passing it asynio event loop
  • (fix) Adds fixes for python3.8 compatibility
  • (fix) Fixes null header values in HTMX websocket messages that crashes FastHTML
  • (fix) Fixes running external processors on output
  • (fix) Fix on_fail action validation in Launcher
  • (chore) Fixes feedback messages logging in Task UI
  • (feature) Adds helper method to format ros messages for logging
  • (chore) Improves UI light theme colors
  • (fix) Fixes feedback cleanup and scroll to bottom
  • (fix) Fixes action client cleanup in UI node after task completed
  • (fix) Fixes UI Task feedback ws sending in callback
  • (fix) Fixes UI page reload on form start error
  • (fix) Adds audio manager to UI only if an audio element is added
  • (fix) Kills the feedback timer after a task is cancelled
  • (fix) Changes certificate missing logging in ui node to warning
  • (feature) Adds method to inspect component and to get available ros entrypoints
  • (feature) Adds summarize method to component base config
  • (fix) Tracks each component package and executable names in a dictionary by the Launcher
  • (feature) Adds array_shape validator to base validators
  • (fix) Fixes elements setup order in launcher
  • (fix) Makes ui main action input return an error if called on a component not an action server
  • (chore) Adds check for additional internal events in Monitor launch_action
  • (fix) Moves initializing empty internal events/actions paris to helper method
  • (fix) Fixes pure internal events init in Monitor
  • (fix) Adds more expressive response in execute_method service
  • (feature) Adds registration of pure internal events in Monitor
  • (refactor) Moves parameter update code to a helper method to be used by childern components
  • (fix) Removes node spin fro service send_request
  • (fix) Fixes calling execute method client in monitor
  • (feature) Adds setter methods for custom action/server names
  • (feature) Adds methods to execute action goals based on a component name
  • (feature) Adds execute method service client to monitor and makes all service calls return results
  • (fix) Fixes error in component fallback decorator
  • (feature) Makes tool description a mapping thats stored as a json string
  • (feature) Adds optional tool description to fallback decorators as well
  • (feature) Adds action description to component action decorator
  • (feature) Adds description property to Action
  • (docs) Moves all docs to developer style
  • (docs) Fixes base url and sitemap
  • (chore) Splits docs action to build and deploy
  • (chore) Changes CI to official github pages deployment
  • Contributors: ahr, mkabtoul

0.5.0 (2026-02-14)

File truncated at 100 lines see the full file

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Version 0.6.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-04-19
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![ROS2](https://img.shields.io/badge/ROS2-Humble%2B-green)](https://docs.ros.org/en/humble/index.html) [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](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.

EmbodiedAgents UI Example GIF

  • 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.

Navigation System UI Example GIF

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.

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

Changelog for package automatika_ros_sugar

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

0.6.0 (2026-04-05)

  • (docs) Updates docs for the publishing pre-processor consistency and action decorators with description
  • (fix) Moves feedback update period to UI node config
  • (fix) Uses wait_until_first_feedback in action client send_request
  • (fix) Minor fix in onclick button behavior
  • (feature) Adds persistent connection handling for map topics in UI
  • (fix) Updates Twist converter to use a single argument
  • (fix) Fixes base action client goal acceptance check
  • (feature) Extends the launcher to use robot, frames, inputs and outputs settings implemented in child packages
  • (fix) Adds fix for uvloop ssl protocol bug by passing it asynio event loop
  • (fix) Adds fixes for python3.8 compatibility
  • (fix) Fixes null header values in HTMX websocket messages that crashes FastHTML
  • (fix) Fixes running external processors on output
  • (fix) Fix on_fail action validation in Launcher
  • (chore) Fixes feedback messages logging in Task UI
  • (feature) Adds helper method to format ros messages for logging
  • (chore) Improves UI light theme colors
  • (fix) Fixes feedback cleanup and scroll to bottom
  • (fix) Fixes action client cleanup in UI node after task completed
  • (fix) Fixes UI Task feedback ws sending in callback
  • (fix) Fixes UI page reload on form start error
  • (fix) Adds audio manager to UI only if an audio element is added
  • (fix) Kills the feedback timer after a task is cancelled
  • (fix) Changes certificate missing logging in ui node to warning
  • (feature) Adds method to inspect component and to get available ros entrypoints
  • (feature) Adds summarize method to component base config
  • (fix) Tracks each component package and executable names in a dictionary by the Launcher
  • (feature) Adds array_shape validator to base validators
  • (fix) Fixes elements setup order in launcher
  • (fix) Makes ui main action input return an error if called on a component not an action server
  • (chore) Adds check for additional internal events in Monitor launch_action
  • (fix) Moves initializing empty internal events/actions paris to helper method
  • (fix) Fixes pure internal events init in Monitor
  • (fix) Adds more expressive response in execute_method service
  • (feature) Adds registration of pure internal events in Monitor
  • (refactor) Moves parameter update code to a helper method to be used by childern components
  • (fix) Removes node spin fro service send_request
  • (fix) Fixes calling execute method client in monitor
  • (feature) Adds setter methods for custom action/server names
  • (feature) Adds methods to execute action goals based on a component name
  • (feature) Adds execute method service client to monitor and makes all service calls return results
  • (fix) Fixes error in component fallback decorator
  • (feature) Makes tool description a mapping thats stored as a json string
  • (feature) Adds optional tool description to fallback decorators as well
  • (feature) Adds action description to component action decorator
  • (feature) Adds description property to Action
  • (docs) Moves all docs to developer style
  • (docs) Fixes base url and sitemap
  • (chore) Splits docs action to build and deploy
  • (chore) Changes CI to official github pages deployment
  • Contributors: ahr, mkabtoul

0.5.0 (2026-02-14)

File truncated at 100 lines see the full file

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Version 0.6.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-04-19
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![ROS2](https://img.shields.io/badge/ROS2-Humble%2B-green)](https://docs.ros.org/en/humble/index.html) [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](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.

EmbodiedAgents UI Example GIF

  • 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.

Navigation System UI Example GIF

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.

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

Changelog for package automatika_ros_sugar

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

0.6.0 (2026-04-05)

  • (docs) Updates docs for the publishing pre-processor consistency and action decorators with description
  • (fix) Moves feedback update period to UI node config
  • (fix) Uses wait_until_first_feedback in action client send_request
  • (fix) Minor fix in onclick button behavior
  • (feature) Adds persistent connection handling for map topics in UI
  • (fix) Updates Twist converter to use a single argument
  • (fix) Fixes base action client goal acceptance check
  • (feature) Extends the launcher to use robot, frames, inputs and outputs settings implemented in child packages
  • (fix) Adds fix for uvloop ssl protocol bug by passing it asynio event loop
  • (fix) Adds fixes for python3.8 compatibility
  • (fix) Fixes null header values in HTMX websocket messages that crashes FastHTML
  • (fix) Fixes running external processors on output
  • (fix) Fix on_fail action validation in Launcher
  • (chore) Fixes feedback messages logging in Task UI
  • (feature) Adds helper method to format ros messages for logging
  • (chore) Improves UI light theme colors
  • (fix) Fixes feedback cleanup and scroll to bottom
  • (fix) Fixes action client cleanup in UI node after task completed
  • (fix) Fixes UI Task feedback ws sending in callback
  • (fix) Fixes UI page reload on form start error
  • (fix) Adds audio manager to UI only if an audio element is added
  • (fix) Kills the feedback timer after a task is cancelled
  • (fix) Changes certificate missing logging in ui node to warning
  • (feature) Adds method to inspect component and to get available ros entrypoints
  • (feature) Adds summarize method to component base config
  • (fix) Tracks each component package and executable names in a dictionary by the Launcher
  • (feature) Adds array_shape validator to base validators
  • (fix) Fixes elements setup order in launcher
  • (fix) Makes ui main action input return an error if called on a component not an action server
  • (chore) Adds check for additional internal events in Monitor launch_action
  • (fix) Moves initializing empty internal events/actions paris to helper method
  • (fix) Fixes pure internal events init in Monitor
  • (fix) Adds more expressive response in execute_method service
  • (feature) Adds registration of pure internal events in Monitor
  • (refactor) Moves parameter update code to a helper method to be used by childern components
  • (fix) Removes node spin fro service send_request
  • (fix) Fixes calling execute method client in monitor
  • (feature) Adds setter methods for custom action/server names
  • (feature) Adds methods to execute action goals based on a component name
  • (feature) Adds execute method service client to monitor and makes all service calls return results
  • (fix) Fixes error in component fallback decorator
  • (feature) Makes tool description a mapping thats stored as a json string
  • (feature) Adds optional tool description to fallback decorators as well
  • (feature) Adds action description to component action decorator
  • (feature) Adds description property to Action
  • (docs) Moves all docs to developer style
  • (docs) Fixes base url and sitemap
  • (chore) Splits docs action to build and deploy
  • (chore) Changes CI to official github pages deployment
  • Contributors: ahr, mkabtoul

0.5.0 (2026-02-14)

File truncated at 100 lines see the full file

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Version 0.6.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-04-19
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![ROS2](https://img.shields.io/badge/ROS2-Humble%2B-green)](https://docs.ros.org/en/humble/index.html) [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](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.

EmbodiedAgents UI Example GIF

  • 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.

Navigation System UI Example GIF

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.

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

Changelog for package automatika_ros_sugar

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

0.6.0 (2026-04-05)

  • (docs) Updates docs for the publishing pre-processor consistency and action decorators with description
  • (fix) Moves feedback update period to UI node config
  • (fix) Uses wait_until_first_feedback in action client send_request
  • (fix) Minor fix in onclick button behavior
  • (feature) Adds persistent connection handling for map topics in UI
  • (fix) Updates Twist converter to use a single argument
  • (fix) Fixes base action client goal acceptance check
  • (feature) Extends the launcher to use robot, frames, inputs and outputs settings implemented in child packages
  • (fix) Adds fix for uvloop ssl protocol bug by passing it asynio event loop
  • (fix) Adds fixes for python3.8 compatibility
  • (fix) Fixes null header values in HTMX websocket messages that crashes FastHTML
  • (fix) Fixes running external processors on output
  • (fix) Fix on_fail action validation in Launcher
  • (chore) Fixes feedback messages logging in Task UI
  • (feature) Adds helper method to format ros messages for logging
  • (chore) Improves UI light theme colors
  • (fix) Fixes feedback cleanup and scroll to bottom
  • (fix) Fixes action client cleanup in UI node after task completed
  • (fix) Fixes UI Task feedback ws sending in callback
  • (fix) Fixes UI page reload on form start error
  • (fix) Adds audio manager to UI only if an audio element is added
  • (fix) Kills the feedback timer after a task is cancelled
  • (fix) Changes certificate missing logging in ui node to warning
  • (feature) Adds method to inspect component and to get available ros entrypoints
  • (feature) Adds summarize method to component base config
  • (fix) Tracks each component package and executable names in a dictionary by the Launcher
  • (feature) Adds array_shape validator to base validators
  • (fix) Fixes elements setup order in launcher
  • (fix) Makes ui main action input return an error if called on a component not an action server
  • (chore) Adds check for additional internal events in Monitor launch_action
  • (fix) Moves initializing empty internal events/actions paris to helper method
  • (fix) Fixes pure internal events init in Monitor
  • (fix) Adds more expressive response in execute_method service
  • (feature) Adds registration of pure internal events in Monitor
  • (refactor) Moves parameter update code to a helper method to be used by childern components
  • (fix) Removes node spin fro service send_request
  • (fix) Fixes calling execute method client in monitor
  • (feature) Adds setter methods for custom action/server names
  • (feature) Adds methods to execute action goals based on a component name
  • (feature) Adds execute method service client to monitor and makes all service calls return results
  • (fix) Fixes error in component fallback decorator
  • (feature) Makes tool description a mapping thats stored as a json string
  • (feature) Adds optional tool description to fallback decorators as well
  • (feature) Adds action description to component action decorator
  • (feature) Adds description property to Action
  • (docs) Moves all docs to developer style
  • (docs) Fixes base url and sitemap
  • (chore) Splits docs action to build and deploy
  • (chore) Changes CI to official github pages deployment
  • Contributors: ahr, mkabtoul

0.5.0 (2026-02-14)

File truncated at 100 lines see the full file

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Version 0.6.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-04-19
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![ROS2](https://img.shields.io/badge/ROS2-Humble%2B-green)](https://docs.ros.org/en/humble/index.html) [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](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.

EmbodiedAgents UI Example GIF

  • 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.

Navigation System UI Example GIF

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.

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

Changelog for package automatika_ros_sugar

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

0.6.0 (2026-04-05)

  • (docs) Updates docs for the publishing pre-processor consistency and action decorators with description
  • (fix) Moves feedback update period to UI node config
  • (fix) Uses wait_until_first_feedback in action client send_request
  • (fix) Minor fix in onclick button behavior
  • (feature) Adds persistent connection handling for map topics in UI
  • (fix) Updates Twist converter to use a single argument
  • (fix) Fixes base action client goal acceptance check
  • (feature) Extends the launcher to use robot, frames, inputs and outputs settings implemented in child packages
  • (fix) Adds fix for uvloop ssl protocol bug by passing it asynio event loop
  • (fix) Adds fixes for python3.8 compatibility
  • (fix) Fixes null header values in HTMX websocket messages that crashes FastHTML
  • (fix) Fixes running external processors on output
  • (fix) Fix on_fail action validation in Launcher
  • (chore) Fixes feedback messages logging in Task UI
  • (feature) Adds helper method to format ros messages for logging
  • (chore) Improves UI light theme colors
  • (fix) Fixes feedback cleanup and scroll to bottom
  • (fix) Fixes action client cleanup in UI node after task completed
  • (fix) Fixes UI Task feedback ws sending in callback
  • (fix) Fixes UI page reload on form start error
  • (fix) Adds audio manager to UI only if an audio element is added
  • (fix) Kills the feedback timer after a task is cancelled
  • (fix) Changes certificate missing logging in ui node to warning
  • (feature) Adds method to inspect component and to get available ros entrypoints
  • (feature) Adds summarize method to component base config
  • (fix) Tracks each component package and executable names in a dictionary by the Launcher
  • (feature) Adds array_shape validator to base validators
  • (fix) Fixes elements setup order in launcher
  • (fix) Makes ui main action input return an error if called on a component not an action server
  • (chore) Adds check for additional internal events in Monitor launch_action
  • (fix) Moves initializing empty internal events/actions paris to helper method
  • (fix) Fixes pure internal events init in Monitor
  • (fix) Adds more expressive response in execute_method service
  • (feature) Adds registration of pure internal events in Monitor
  • (refactor) Moves parameter update code to a helper method to be used by childern components
  • (fix) Removes node spin fro service send_request
  • (fix) Fixes calling execute method client in monitor
  • (feature) Adds setter methods for custom action/server names
  • (feature) Adds methods to execute action goals based on a component name
  • (feature) Adds execute method service client to monitor and makes all service calls return results
  • (fix) Fixes error in component fallback decorator
  • (feature) Makes tool description a mapping thats stored as a json string
  • (feature) Adds optional tool description to fallback decorators as well
  • (feature) Adds action description to component action decorator
  • (feature) Adds description property to Action
  • (docs) Moves all docs to developer style
  • (docs) Fixes base url and sitemap
  • (chore) Splits docs action to build and deploy
  • (chore) Changes CI to official github pages deployment
  • Contributors: ahr, mkabtoul

0.5.0 (2026-02-14)

File truncated at 100 lines see the full file

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Version 0.6.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-04-19
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![ROS2](https://img.shields.io/badge/ROS2-Humble%2B-green)](https://docs.ros.org/en/humble/index.html) [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](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.

EmbodiedAgents UI Example GIF

  • 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.

Navigation System UI Example GIF

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.

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

Changelog for package automatika_ros_sugar

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

0.6.0 (2026-04-05)

  • (docs) Updates docs for the publishing pre-processor consistency and action decorators with description
  • (fix) Moves feedback update period to UI node config
  • (fix) Uses wait_until_first_feedback in action client send_request
  • (fix) Minor fix in onclick button behavior
  • (feature) Adds persistent connection handling for map topics in UI
  • (fix) Updates Twist converter to use a single argument
  • (fix) Fixes base action client goal acceptance check
  • (feature) Extends the launcher to use robot, frames, inputs and outputs settings implemented in child packages
  • (fix) Adds fix for uvloop ssl protocol bug by passing it asynio event loop
  • (fix) Adds fixes for python3.8 compatibility
  • (fix) Fixes null header values in HTMX websocket messages that crashes FastHTML
  • (fix) Fixes running external processors on output
  • (fix) Fix on_fail action validation in Launcher
  • (chore) Fixes feedback messages logging in Task UI
  • (feature) Adds helper method to format ros messages for logging
  • (chore) Improves UI light theme colors
  • (fix) Fixes feedback cleanup and scroll to bottom
  • (fix) Fixes action client cleanup in UI node after task completed
  • (fix) Fixes UI Task feedback ws sending in callback
  • (fix) Fixes UI page reload on form start error
  • (fix) Adds audio manager to UI only if an audio element is added
  • (fix) Kills the feedback timer after a task is cancelled
  • (fix) Changes certificate missing logging in ui node to warning
  • (feature) Adds method to inspect component and to get available ros entrypoints
  • (feature) Adds summarize method to component base config
  • (fix) Tracks each component package and executable names in a dictionary by the Launcher
  • (feature) Adds array_shape validator to base validators
  • (fix) Fixes elements setup order in launcher
  • (fix) Makes ui main action input return an error if called on a component not an action server
  • (chore) Adds check for additional internal events in Monitor launch_action
  • (fix) Moves initializing empty internal events/actions paris to helper method
  • (fix) Fixes pure internal events init in Monitor
  • (fix) Adds more expressive response in execute_method service
  • (feature) Adds registration of pure internal events in Monitor
  • (refactor) Moves parameter update code to a helper method to be used by childern components
  • (fix) Removes node spin fro service send_request
  • (fix) Fixes calling execute method client in monitor
  • (feature) Adds setter methods for custom action/server names
  • (feature) Adds methods to execute action goals based on a component name
  • (feature) Adds execute method service client to monitor and makes all service calls return results
  • (fix) Fixes error in component fallback decorator
  • (feature) Makes tool description a mapping thats stored as a json string
  • (feature) Adds optional tool description to fallback decorators as well
  • (feature) Adds action description to component action decorator
  • (feature) Adds description property to Action
  • (docs) Moves all docs to developer style
  • (docs) Fixes base url and sitemap
  • (chore) Splits docs action to build and deploy
  • (chore) Changes CI to official github pages deployment
  • Contributors: ahr, mkabtoul

0.5.0 (2026-02-14)

File truncated at 100 lines see the full file

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Version 0.6.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-04-19
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![ROS2](https://img.shields.io/badge/ROS2-Humble%2B-green)](https://docs.ros.org/en/humble/index.html) [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](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.

EmbodiedAgents UI Example GIF

  • 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.

Navigation System UI Example GIF

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.

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

Changelog for package automatika_ros_sugar

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

0.6.0 (2026-04-05)

  • (docs) Updates docs for the publishing pre-processor consistency and action decorators with description
  • (fix) Moves feedback update period to UI node config
  • (fix) Uses wait_until_first_feedback in action client send_request
  • (fix) Minor fix in onclick button behavior
  • (feature) Adds persistent connection handling for map topics in UI
  • (fix) Updates Twist converter to use a single argument
  • (fix) Fixes base action client goal acceptance check
  • (feature) Extends the launcher to use robot, frames, inputs and outputs settings implemented in child packages
  • (fix) Adds fix for uvloop ssl protocol bug by passing it asynio event loop
  • (fix) Adds fixes for python3.8 compatibility
  • (fix) Fixes null header values in HTMX websocket messages that crashes FastHTML
  • (fix) Fixes running external processors on output
  • (fix) Fix on_fail action validation in Launcher
  • (chore) Fixes feedback messages logging in Task UI
  • (feature) Adds helper method to format ros messages for logging
  • (chore) Improves UI light theme colors
  • (fix) Fixes feedback cleanup and scroll to bottom
  • (fix) Fixes action client cleanup in UI node after task completed
  • (fix) Fixes UI Task feedback ws sending in callback
  • (fix) Fixes UI page reload on form start error
  • (fix) Adds audio manager to UI only if an audio element is added
  • (fix) Kills the feedback timer after a task is cancelled
  • (fix) Changes certificate missing logging in ui node to warning
  • (feature) Adds method to inspect component and to get available ros entrypoints
  • (feature) Adds summarize method to component base config
  • (fix) Tracks each component package and executable names in a dictionary by the Launcher
  • (feature) Adds array_shape validator to base validators
  • (fix) Fixes elements setup order in launcher
  • (fix) Makes ui main action input return an error if called on a component not an action server
  • (chore) Adds check for additional internal events in Monitor launch_action
  • (fix) Moves initializing empty internal events/actions paris to helper method
  • (fix) Fixes pure internal events init in Monitor
  • (fix) Adds more expressive response in execute_method service
  • (feature) Adds registration of pure internal events in Monitor
  • (refactor) Moves parameter update code to a helper method to be used by childern components
  • (fix) Removes node spin fro service send_request
  • (fix) Fixes calling execute method client in monitor
  • (feature) Adds setter methods for custom action/server names
  • (feature) Adds methods to execute action goals based on a component name
  • (feature) Adds execute method service client to monitor and makes all service calls return results
  • (fix) Fixes error in component fallback decorator
  • (feature) Makes tool description a mapping thats stored as a json string
  • (feature) Adds optional tool description to fallback decorators as well
  • (feature) Adds action description to component action decorator
  • (feature) Adds description property to Action
  • (docs) Moves all docs to developer style
  • (docs) Fixes base url and sitemap
  • (chore) Splits docs action to build and deploy
  • (chore) Changes CI to official github pages deployment
  • Contributors: ahr, mkabtoul

0.5.0 (2026-02-14)

File truncated at 100 lines see the full file

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Version 0.6.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-04-19
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![ROS2](https://img.shields.io/badge/ROS2-Humble%2B-green)](https://docs.ros.org/en/humble/index.html) [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](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.

EmbodiedAgents UI Example GIF

  • 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.

Navigation System UI Example GIF

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.

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

Changelog for package automatika_ros_sugar

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

0.6.0 (2026-04-05)

  • (docs) Updates docs for the publishing pre-processor consistency and action decorators with description
  • (fix) Moves feedback update period to UI node config
  • (fix) Uses wait_until_first_feedback in action client send_request
  • (fix) Minor fix in onclick button behavior
  • (feature) Adds persistent connection handling for map topics in UI
  • (fix) Updates Twist converter to use a single argument
  • (fix) Fixes base action client goal acceptance check
  • (feature) Extends the launcher to use robot, frames, inputs and outputs settings implemented in child packages
  • (fix) Adds fix for uvloop ssl protocol bug by passing it asynio event loop
  • (fix) Adds fixes for python3.8 compatibility
  • (fix) Fixes null header values in HTMX websocket messages that crashes FastHTML
  • (fix) Fixes running external processors on output
  • (fix) Fix on_fail action validation in Launcher
  • (chore) Fixes feedback messages logging in Task UI
  • (feature) Adds helper method to format ros messages for logging
  • (chore) Improves UI light theme colors
  • (fix) Fixes feedback cleanup and scroll to bottom
  • (fix) Fixes action client cleanup in UI node after task completed
  • (fix) Fixes UI Task feedback ws sending in callback
  • (fix) Fixes UI page reload on form start error
  • (fix) Adds audio manager to UI only if an audio element is added
  • (fix) Kills the feedback timer after a task is cancelled
  • (fix) Changes certificate missing logging in ui node to warning
  • (feature) Adds method to inspect component and to get available ros entrypoints
  • (feature) Adds summarize method to component base config
  • (fix) Tracks each component package and executable names in a dictionary by the Launcher
  • (feature) Adds array_shape validator to base validators
  • (fix) Fixes elements setup order in launcher
  • (fix) Makes ui main action input return an error if called on a component not an action server
  • (chore) Adds check for additional internal events in Monitor launch_action
  • (fix) Moves initializing empty internal events/actions paris to helper method
  • (fix) Fixes pure internal events init in Monitor
  • (fix) Adds more expressive response in execute_method service
  • (feature) Adds registration of pure internal events in Monitor
  • (refactor) Moves parameter update code to a helper method to be used by childern components
  • (fix) Removes node spin fro service send_request
  • (fix) Fixes calling execute method client in monitor
  • (feature) Adds setter methods for custom action/server names
  • (feature) Adds methods to execute action goals based on a component name
  • (feature) Adds execute method service client to monitor and makes all service calls return results
  • (fix) Fixes error in component fallback decorator
  • (feature) Makes tool description a mapping thats stored as a json string
  • (feature) Adds optional tool description to fallback decorators as well
  • (feature) Adds action description to component action decorator
  • (feature) Adds description property to Action
  • (docs) Moves all docs to developer style
  • (docs) Fixes base url and sitemap
  • (chore) Splits docs action to build and deploy
  • (chore) Changes CI to official github pages deployment
  • Contributors: ahr, mkabtoul

0.5.0 (2026-02-14)

File truncated at 100 lines see the full file

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Version 0.6.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-04-19
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![ROS2](https://img.shields.io/badge/ROS2-Humble%2B-green)](https://docs.ros.org/en/humble/index.html) [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](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.

EmbodiedAgents UI Example GIF

  • 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.

Navigation System UI Example GIF

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.

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

Changelog for package automatika_ros_sugar

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

0.6.0 (2026-04-05)

  • (docs) Updates docs for the publishing pre-processor consistency and action decorators with description
  • (fix) Moves feedback update period to UI node config
  • (fix) Uses wait_until_first_feedback in action client send_request
  • (fix) Minor fix in onclick button behavior
  • (feature) Adds persistent connection handling for map topics in UI
  • (fix) Updates Twist converter to use a single argument
  • (fix) Fixes base action client goal acceptance check
  • (feature) Extends the launcher to use robot, frames, inputs and outputs settings implemented in child packages
  • (fix) Adds fix for uvloop ssl protocol bug by passing it asynio event loop
  • (fix) Adds fixes for python3.8 compatibility
  • (fix) Fixes null header values in HTMX websocket messages that crashes FastHTML
  • (fix) Fixes running external processors on output
  • (fix) Fix on_fail action validation in Launcher
  • (chore) Fixes feedback messages logging in Task UI
  • (feature) Adds helper method to format ros messages for logging
  • (chore) Improves UI light theme colors
  • (fix) Fixes feedback cleanup and scroll to bottom
  • (fix) Fixes action client cleanup in UI node after task completed
  • (fix) Fixes UI Task feedback ws sending in callback
  • (fix) Fixes UI page reload on form start error
  • (fix) Adds audio manager to UI only if an audio element is added
  • (fix) Kills the feedback timer after a task is cancelled
  • (fix) Changes certificate missing logging in ui node to warning
  • (feature) Adds method to inspect component and to get available ros entrypoints
  • (feature) Adds summarize method to component base config
  • (fix) Tracks each component package and executable names in a dictionary by the Launcher
  • (feature) Adds array_shape validator to base validators
  • (fix) Fixes elements setup order in launcher
  • (fix) Makes ui main action input return an error if called on a component not an action server
  • (chore) Adds check for additional internal events in Monitor launch_action
  • (fix) Moves initializing empty internal events/actions paris to helper method
  • (fix) Fixes pure internal events init in Monitor
  • (fix) Adds more expressive response in execute_method service
  • (feature) Adds registration of pure internal events in Monitor
  • (refactor) Moves parameter update code to a helper method to be used by childern components
  • (fix) Removes node spin fro service send_request
  • (fix) Fixes calling execute method client in monitor
  • (feature) Adds setter methods for custom action/server names
  • (feature) Adds methods to execute action goals based on a component name
  • (feature) Adds execute method service client to monitor and makes all service calls return results
  • (fix) Fixes error in component fallback decorator
  • (feature) Makes tool description a mapping thats stored as a json string
  • (feature) Adds optional tool description to fallback decorators as well
  • (feature) Adds action description to component action decorator
  • (feature) Adds description property to Action
  • (docs) Moves all docs to developer style
  • (docs) Fixes base url and sitemap
  • (chore) Splits docs action to build and deploy
  • (chore) Changes CI to official github pages deployment
  • Contributors: ahr, mkabtoul

0.5.0 (2026-02-14)

File truncated at 100 lines see the full file

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Version 0.6.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-04-19
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![ROS2](https://img.shields.io/badge/ROS2-Humble%2B-green)](https://docs.ros.org/en/humble/index.html) [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](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.

EmbodiedAgents UI Example GIF

  • 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.

Navigation System UI Example GIF

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.

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

Changelog for package automatika_ros_sugar

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

0.6.0 (2026-04-05)

  • (docs) Updates docs for the publishing pre-processor consistency and action decorators with description
  • (fix) Moves feedback update period to UI node config
  • (fix) Uses wait_until_first_feedback in action client send_request
  • (fix) Minor fix in onclick button behavior
  • (feature) Adds persistent connection handling for map topics in UI
  • (fix) Updates Twist converter to use a single argument
  • (fix) Fixes base action client goal acceptance check
  • (feature) Extends the launcher to use robot, frames, inputs and outputs settings implemented in child packages
  • (fix) Adds fix for uvloop ssl protocol bug by passing it asynio event loop
  • (fix) Adds fixes for python3.8 compatibility
  • (fix) Fixes null header values in HTMX websocket messages that crashes FastHTML
  • (fix) Fixes running external processors on output
  • (fix) Fix on_fail action validation in Launcher
  • (chore) Fixes feedback messages logging in Task UI
  • (feature) Adds helper method to format ros messages for logging
  • (chore) Improves UI light theme colors
  • (fix) Fixes feedback cleanup and scroll to bottom
  • (fix) Fixes action client cleanup in UI node after task completed
  • (fix) Fixes UI Task feedback ws sending in callback
  • (fix) Fixes UI page reload on form start error
  • (fix) Adds audio manager to UI only if an audio element is added
  • (fix) Kills the feedback timer after a task is cancelled
  • (fix) Changes certificate missing logging in ui node to warning
  • (feature) Adds method to inspect component and to get available ros entrypoints
  • (feature) Adds summarize method to component base config
  • (fix) Tracks each component package and executable names in a dictionary by the Launcher
  • (feature) Adds array_shape validator to base validators
  • (fix) Fixes elements setup order in launcher
  • (fix) Makes ui main action input return an error if called on a component not an action server
  • (chore) Adds check for additional internal events in Monitor launch_action
  • (fix) Moves initializing empty internal events/actions paris to helper method
  • (fix) Fixes pure internal events init in Monitor
  • (fix) Adds more expressive response in execute_method service
  • (feature) Adds registration of pure internal events in Monitor
  • (refactor) Moves parameter update code to a helper method to be used by childern components
  • (fix) Removes node spin fro service send_request
  • (fix) Fixes calling execute method client in monitor
  • (feature) Adds setter methods for custom action/server names
  • (feature) Adds methods to execute action goals based on a component name
  • (feature) Adds execute method service client to monitor and makes all service calls return results
  • (fix) Fixes error in component fallback decorator
  • (feature) Makes tool description a mapping thats stored as a json string
  • (feature) Adds optional tool description to fallback decorators as well
  • (feature) Adds action description to component action decorator
  • (feature) Adds description property to Action
  • (docs) Moves all docs to developer style
  • (docs) Fixes base url and sitemap
  • (chore) Splits docs action to build and deploy
  • (chore) Changes CI to official github pages deployment
  • Contributors: ahr, mkabtoul

0.5.0 (2026-02-14)

File truncated at 100 lines see the full file

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Version 0.6.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-04-19
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![ROS2](https://img.shields.io/badge/ROS2-Humble%2B-green)](https://docs.ros.org/en/humble/index.html) [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](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.

EmbodiedAgents UI Example GIF

  • 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.

Navigation System UI Example GIF

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.

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

Changelog for package automatika_ros_sugar

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

0.6.0 (2026-04-05)

  • (docs) Updates docs for the publishing pre-processor consistency and action decorators with description
  • (fix) Moves feedback update period to UI node config
  • (fix) Uses wait_until_first_feedback in action client send_request
  • (fix) Minor fix in onclick button behavior
  • (feature) Adds persistent connection handling for map topics in UI
  • (fix) Updates Twist converter to use a single argument
  • (fix) Fixes base action client goal acceptance check
  • (feature) Extends the launcher to use robot, frames, inputs and outputs settings implemented in child packages
  • (fix) Adds fix for uvloop ssl protocol bug by passing it asynio event loop
  • (fix) Adds fixes for python3.8 compatibility
  • (fix) Fixes null header values in HTMX websocket messages that crashes FastHTML
  • (fix) Fixes running external processors on output
  • (fix) Fix on_fail action validation in Launcher
  • (chore) Fixes feedback messages logging in Task UI
  • (feature) Adds helper method to format ros messages for logging
  • (chore) Improves UI light theme colors
  • (fix) Fixes feedback cleanup and scroll to bottom
  • (fix) Fixes action client cleanup in UI node after task completed
  • (fix) Fixes UI Task feedback ws sending in callback
  • (fix) Fixes UI page reload on form start error
  • (fix) Adds audio manager to UI only if an audio element is added
  • (fix) Kills the feedback timer after a task is cancelled
  • (fix) Changes certificate missing logging in ui node to warning
  • (feature) Adds method to inspect component and to get available ros entrypoints
  • (feature) Adds summarize method to component base config
  • (fix) Tracks each component package and executable names in a dictionary by the Launcher
  • (feature) Adds array_shape validator to base validators
  • (fix) Fixes elements setup order in launcher
  • (fix) Makes ui main action input return an error if called on a component not an action server
  • (chore) Adds check for additional internal events in Monitor launch_action
  • (fix) Moves initializing empty internal events/actions paris to helper method
  • (fix) Fixes pure internal events init in Monitor
  • (fix) Adds more expressive response in execute_method service
  • (feature) Adds registration of pure internal events in Monitor
  • (refactor) Moves parameter update code to a helper method to be used by childern components
  • (fix) Removes node spin fro service send_request
  • (fix) Fixes calling execute method client in monitor
  • (feature) Adds setter methods for custom action/server names
  • (feature) Adds methods to execute action goals based on a component name
  • (feature) Adds execute method service client to monitor and makes all service calls return results
  • (fix) Fixes error in component fallback decorator
  • (feature) Makes tool description a mapping thats stored as a json string
  • (feature) Adds optional tool description to fallback decorators as well
  • (feature) Adds action description to component action decorator
  • (feature) Adds description property to Action
  • (docs) Moves all docs to developer style
  • (docs) Fixes base url and sitemap
  • (chore) Splits docs action to build and deploy
  • (chore) Changes CI to official github pages deployment
  • Contributors: ahr, mkabtoul

0.5.0 (2026-02-14)

File truncated at 100 lines see the full file

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Version 0.6.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-04-19
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![ROS2](https://img.shields.io/badge/ROS2-Humble%2B-green)](https://docs.ros.org/en/humble/index.html) [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](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.

EmbodiedAgents UI Example GIF

  • 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.

Navigation System UI Example GIF

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.

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

Changelog for package automatika_ros_sugar

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

0.6.0 (2026-04-05)

  • (docs) Updates docs for the publishing pre-processor consistency and action decorators with description
  • (fix) Moves feedback update period to UI node config
  • (fix) Uses wait_until_first_feedback in action client send_request
  • (fix) Minor fix in onclick button behavior
  • (feature) Adds persistent connection handling for map topics in UI
  • (fix) Updates Twist converter to use a single argument
  • (fix) Fixes base action client goal acceptance check
  • (feature) Extends the launcher to use robot, frames, inputs and outputs settings implemented in child packages
  • (fix) Adds fix for uvloop ssl protocol bug by passing it asynio event loop
  • (fix) Adds fixes for python3.8 compatibility
  • (fix) Fixes null header values in HTMX websocket messages that crashes FastHTML
  • (fix) Fixes running external processors on output
  • (fix) Fix on_fail action validation in Launcher
  • (chore) Fixes feedback messages logging in Task UI
  • (feature) Adds helper method to format ros messages for logging
  • (chore) Improves UI light theme colors
  • (fix) Fixes feedback cleanup and scroll to bottom
  • (fix) Fixes action client cleanup in UI node after task completed
  • (fix) Fixes UI Task feedback ws sending in callback
  • (fix) Fixes UI page reload on form start error
  • (fix) Adds audio manager to UI only if an audio element is added
  • (fix) Kills the feedback timer after a task is cancelled
  • (fix) Changes certificate missing logging in ui node to warning
  • (feature) Adds method to inspect component and to get available ros entrypoints
  • (feature) Adds summarize method to component base config
  • (fix) Tracks each component package and executable names in a dictionary by the Launcher
  • (feature) Adds array_shape validator to base validators
  • (fix) Fixes elements setup order in launcher
  • (fix) Makes ui main action input return an error if called on a component not an action server
  • (chore) Adds check for additional internal events in Monitor launch_action
  • (fix) Moves initializing empty internal events/actions paris to helper method
  • (fix) Fixes pure internal events init in Monitor
  • (fix) Adds more expressive response in execute_method service
  • (feature) Adds registration of pure internal events in Monitor
  • (refactor) Moves parameter update code to a helper method to be used by childern components
  • (fix) Removes node spin fro service send_request
  • (fix) Fixes calling execute method client in monitor
  • (feature) Adds setter methods for custom action/server names
  • (feature) Adds methods to execute action goals based on a component name
  • (feature) Adds execute method service client to monitor and makes all service calls return results
  • (fix) Fixes error in component fallback decorator
  • (feature) Makes tool description a mapping thats stored as a json string
  • (feature) Adds optional tool description to fallback decorators as well
  • (feature) Adds action description to component action decorator
  • (feature) Adds description property to Action
  • (docs) Moves all docs to developer style
  • (docs) Fixes base url and sitemap
  • (chore) Splits docs action to build and deploy
  • (chore) Changes CI to official github pages deployment
  • Contributors: ahr, mkabtoul

0.5.0 (2026-02-14)

File truncated at 100 lines see the full file

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Version 0.6.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-04-19
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo
Part of the [EMOS](https://github.com/automatika-robotics/emos) ecosystem [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![ROS2](https://img.shields.io/badge/ROS2-Humble%2B-green)](https://docs.ros.org/en/humble/index.html) [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](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.

EmbodiedAgents UI Example GIF

  • 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.

Navigation System UI Example GIF

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.

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

Changelog for package automatika_ros_sugar

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

0.6.0 (2026-04-05)

  • (docs) Updates docs for the publishing pre-processor consistency and action decorators with description
  • (fix) Moves feedback update period to UI node config
  • (fix) Uses wait_until_first_feedback in action client send_request
  • (fix) Minor fix in onclick button behavior
  • (feature) Adds persistent connection handling for map topics in UI
  • (fix) Updates Twist converter to use a single argument
  • (fix) Fixes base action client goal acceptance check
  • (feature) Extends the launcher to use robot, frames, inputs and outputs settings implemented in child packages
  • (fix) Adds fix for uvloop ssl protocol bug by passing it asynio event loop
  • (fix) Adds fixes for python3.8 compatibility
  • (fix) Fixes null header values in HTMX websocket messages that crashes FastHTML
  • (fix) Fixes running external processors on output
  • (fix) Fix on_fail action validation in Launcher
  • (chore) Fixes feedback messages logging in Task UI
  • (feature) Adds helper method to format ros messages for logging
  • (chore) Improves UI light theme colors
  • (fix) Fixes feedback cleanup and scroll to bottom
  • (fix) Fixes action client cleanup in UI node after task completed
  • (fix) Fixes UI Task feedback ws sending in callback
  • (fix) Fixes UI page reload on form start error
  • (fix) Adds audio manager to UI only if an audio element is added
  • (fix) Kills the feedback timer after a task is cancelled
  • (fix) Changes certificate missing logging in ui node to warning
  • (feature) Adds method to inspect component and to get available ros entrypoints
  • (feature) Adds summarize method to component base config
  • (fix) Tracks each component package and executable names in a dictionary by the Launcher
  • (feature) Adds array_shape validator to base validators
  • (fix) Fixes elements setup order in launcher
  • (fix) Makes ui main action input return an error if called on a component not an action server
  • (chore) Adds check for additional internal events in Monitor launch_action
  • (fix) Moves initializing empty internal events/actions paris to helper method
  • (fix) Fixes pure internal events init in Monitor
  • (fix) Adds more expressive response in execute_method service
  • (feature) Adds registration of pure internal events in Monitor
  • (refactor) Moves parameter update code to a helper method to be used by childern components
  • (fix) Removes node spin fro service send_request
  • (fix) Fixes calling execute method client in monitor
  • (feature) Adds setter methods for custom action/server names
  • (feature) Adds methods to execute action goals based on a component name
  • (feature) Adds execute method service client to monitor and makes all service calls return results
  • (fix) Fixes error in component fallback decorator
  • (feature) Makes tool description a mapping thats stored as a json string
  • (feature) Adds optional tool description to fallback decorators as well
  • (feature) Adds action description to component action decorator
  • (feature) Adds description property to Action
  • (docs) Moves all docs to developer style
  • (docs) Fixes base url and sitemap
  • (chore) Splits docs action to build and deploy
  • (chore) Changes CI to official github pages deployment
  • Contributors: ahr, mkabtoul

0.5.0 (2026-02-14)

File truncated at 100 lines see the full file

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange