![]() |
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
Version | 0.3.2 |
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 | 2025-10-21 |
Dev Status | DEVELOPED |
Released | RELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors

🇨🇳 ç®€ä½“ä¸æ–‡ | 🇯🇵 日本語 |
The Sweetest Way to Build ROS2 Systems
Sugarcoat is a meta-framework that injects a whole lot of syntactic sugar into building complex, event-driven multinode systems in ROS2, all through an intuitive Python API.
Key Features
Feature | Description |
---|---|
Event-Driven Core | Built-in primitives for Events and Actions enables dynamic runtime configuration and control over your system’s Components. |
Built-in Resilience | Fallbacks and Fault Tolerance are core design concepts, ensuring your systems are robust and reliable. |
Intuitive Python API | Design your entire system—nodes, events, and actions—using clean, readable Python code. |
Dynamic Web UI (NEW!) | Automatically generate a fully dynamic, extensible web interface for monitoring and configuring your system. |
Launch Replacement | A more pythonic alternative to the ROS2 Launch API, providing greater flexibility and runtime control for real-world applications. |
Packages Built with Sugarcoat
- Kompass: A framework for building robust and comprehensive event-driven navigation stacks using an easy-to-use and intuitive Python API.
- EmbodiedAgents: A fully-loaded framework for creating interactive physical agents that can understand, remember, and act upon contextual information from their environment.
Get Started
- Learn more about the design concepts in Sugarcoat 📚
- Learn how to create your own ROS2 package using Sugarcoat 🚀
(NEW!) Introducing Dynamic Web UI for Sugarcoat Recipes
The new 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.
This feature instantly transforms your complex, multinode ROS2 system into a monitorable and configurable web application.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q\&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Vision Follower Recipe A complex system using components from both Kompass and EmbodiedAgents to control the robot motion and follow a visual target. The UI automatically renders image data, detections, and robot action commands, demonstrating its ability to handle multimedia and complex component interactions.
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.
How Sugarcoat Works
The core of Sugarcoat revolves around a few concepts:
- Component: The main execution unit (a ROS2 lifecycle node abstraction) configured with Inputs/Outputs and Fallback behaviors. Each component reports its Health Status. Learn More about Components
-
Events & Actions: Mechanisms to handle and reconfigure components dynamically at runtime. Learn More about Events Learn More about Actions - Launcher: Takes your defined Components, Events, and Actions, and executes the system using multi-threaded or multi-process execution. It works with an internal Monitor to manage component lifecycles and track events. Learn More about the Launcher
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.3.2 (2025-09-03)
- (docs) Updates events docs with new classes
- (feature) Adds ros time automatically to stamped messages in publisher
- (fix) Fixes error in publishing audio msgs as byte arrays
- (fix) Fixes Pose publisher converter
- (fix) Fixes event handle once and delay options
- (fix) Fixes condition for OnChange event trigger
- (feature) Adds events for contains any/all plus change in value
- (fix) Fixes error in geomerty transformation util
- Contributors: ahr, mkabtoul
0.3.1 (2025-06-28)
- (refactor) Corrects type hint in callbacks
- (refactor) Adds type hints to validators
- (refactor) Minor improvements and typo correction
- (refactor) Resolves todo in component actions for active flag and adds default logger for module
- (chore) Updates service creation script with better error handling
- (docs) Updates installation instructions
- (refactor) Removes numpy-quaternion from dependencies and implements rotations using numpy
- (docs) Updates logo icon and adds 'config from file' page to docs
- (fix) Adds wait for node activation after restart and fixes optional arguments parsing in Component
- (docs) Updates events docs
- (docs) Adds international readmes
- (chore) Removes pip based test dependencies for ROS build farm
- (docs) Updates readme
- Contributors: ahr, mkabtoul
0.3.0 (2025-06-18)
- (chore) Updates installation instructions and CI
- (fix) Removes NoneType from types for compatibility with python < 3.10
- (fix) Add missing pyyaml dependency
- (feature) Adds config parsing from toml, json and yaml and removes Omegaconf dependency
- (fix) Add missing action decorator to methods
- (docs) Updates img names
- (docs) Updates readme
- (chore) Adds a sweeter name for ROS Sugar .. Sugarcoat
- (docs) Minor edits
- (docs) Adds documentation for creating systemd services with scripts
- (docs) Fixes size of logo
- (docs) Fixes warnings in docs
- (docs) Minor fix
- (docs) Updates supported types docs
- (fix) Fixes minor typo
- (fix) Fixes logging level parsing
- (feature) Adds node logging level and rclpy logging level to component config
- (fix) Adds BGR2RGB tranformation for yuv422_yuy2 encoding
- (docs) Removes unused extension
- (docs) Adds docs for components services and pkg advantages
- Merge branch 'feature/system_management' of github.com:automatika-robotics/ros-sugar into feature/system_management
- (fix) Fixes transformation quaternion parsing
- (feature) Adds utility method for processing all ROS image encodings
- (feature) Adds transformation/rotation propertires to TFListener
- (fix) Fixes lifecycle transitioin callback in component
- (chore) Adds msgpack-numpy and attrs as deb package dependencies
- (fix) Handles lifecycle actions start/stop/restart from the launcher
- (fix) Adds action goal lock to handle aborting ongoing goals and executing new incoming goals
- Contributors: ahr, mkabtoul
0.2.9 (2025-02-18)
- (docs) Updates supported types docs and adds docstrings
- (feature) Adds a script to make any python script a systemd service
- (fix) Minor fix to check for action server creation before destruction
- (fix) Adds algorithm config from yaml if available
- (fix) Removes setproctitle as a hard dependency
- (fix) Checks for subscription in got_inputs method
- (fix) Fixes type hints for python3.8 compatibility
- Contributors: ahr, mkabtoul
0.2.8 (2025-01-28)
- (fix) Removes testing to keep build stable until dependencies are merged in rosdistro
- Contributors: ahr
0.2.7 (2025-01-28)
- (fix) Fixes ChildComponent class in tests
- (fix) Minor fix in component execution_step
- (feature) Adds pytests to package.xml and CMakeLists
- (feature) Adds tests for Actios and ComponentRunType
- (fix) Fixes health_status publishing for non timed components
- (feature) Adds pytest for all event classes and fixes existing errors
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
automatika_embodied_agents | |
kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
![]() |
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
Version | 0.3.2 |
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 | 2025-10-21 |
Dev Status | DEVELOPED |
Released | RELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors

🇨🇳 ç®€ä½“ä¸æ–‡ | 🇯🇵 日本語 |
The Sweetest Way to Build ROS2 Systems
Sugarcoat is a meta-framework that injects a whole lot of syntactic sugar into building complex, event-driven multinode systems in ROS2, all through an intuitive Python API.
Key Features
Feature | Description |
---|---|
Event-Driven Core | Built-in primitives for Events and Actions enables dynamic runtime configuration and control over your system’s Components. |
Built-in Resilience | Fallbacks and Fault Tolerance are core design concepts, ensuring your systems are robust and reliable. |
Intuitive Python API | Design your entire system—nodes, events, and actions—using clean, readable Python code. |
Dynamic Web UI (NEW!) | Automatically generate a fully dynamic, extensible web interface for monitoring and configuring your system. |
Launch Replacement | A more pythonic alternative to the ROS2 Launch API, providing greater flexibility and runtime control for real-world applications. |
Packages Built with Sugarcoat
- Kompass: A framework for building robust and comprehensive event-driven navigation stacks using an easy-to-use and intuitive Python API.
- EmbodiedAgents: A fully-loaded framework for creating interactive physical agents that can understand, remember, and act upon contextual information from their environment.
Get Started
- Learn more about the design concepts in Sugarcoat 📚
- Learn how to create your own ROS2 package using Sugarcoat 🚀
(NEW!) Introducing Dynamic Web UI for Sugarcoat Recipes
The new 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.
This feature instantly transforms your complex, multinode ROS2 system into a monitorable and configurable web application.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q\&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Vision Follower Recipe A complex system using components from both Kompass and EmbodiedAgents to control the robot motion and follow a visual target. The UI automatically renders image data, detections, and robot action commands, demonstrating its ability to handle multimedia and complex component interactions.
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.
How Sugarcoat Works
The core of Sugarcoat revolves around a few concepts:
- Component: The main execution unit (a ROS2 lifecycle node abstraction) configured with Inputs/Outputs and Fallback behaviors. Each component reports its Health Status. Learn More about Components
-
Events & Actions: Mechanisms to handle and reconfigure components dynamically at runtime. Learn More about Events Learn More about Actions - Launcher: Takes your defined Components, Events, and Actions, and executes the system using multi-threaded or multi-process execution. It works with an internal Monitor to manage component lifecycles and track events. Learn More about the Launcher
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.3.2 (2025-09-03)
- (docs) Updates events docs with new classes
- (feature) Adds ros time automatically to stamped messages in publisher
- (fix) Fixes error in publishing audio msgs as byte arrays
- (fix) Fixes Pose publisher converter
- (fix) Fixes event handle once and delay options
- (fix) Fixes condition for OnChange event trigger
- (feature) Adds events for contains any/all plus change in value
- (fix) Fixes error in geomerty transformation util
- Contributors: ahr, mkabtoul
0.3.1 (2025-06-28)
- (refactor) Corrects type hint in callbacks
- (refactor) Adds type hints to validators
- (refactor) Minor improvements and typo correction
- (refactor) Resolves todo in component actions for active flag and adds default logger for module
- (chore) Updates service creation script with better error handling
- (docs) Updates installation instructions
- (refactor) Removes numpy-quaternion from dependencies and implements rotations using numpy
- (docs) Updates logo icon and adds 'config from file' page to docs
- (fix) Adds wait for node activation after restart and fixes optional arguments parsing in Component
- (docs) Updates events docs
- (docs) Adds international readmes
- (chore) Removes pip based test dependencies for ROS build farm
- (docs) Updates readme
- Contributors: ahr, mkabtoul
0.3.0 (2025-06-18)
- (chore) Updates installation instructions and CI
- (fix) Removes NoneType from types for compatibility with python < 3.10
- (fix) Add missing pyyaml dependency
- (feature) Adds config parsing from toml, json and yaml and removes Omegaconf dependency
- (fix) Add missing action decorator to methods
- (docs) Updates img names
- (docs) Updates readme
- (chore) Adds a sweeter name for ROS Sugar .. Sugarcoat
- (docs) Minor edits
- (docs) Adds documentation for creating systemd services with scripts
- (docs) Fixes size of logo
- (docs) Fixes warnings in docs
- (docs) Minor fix
- (docs) Updates supported types docs
- (fix) Fixes minor typo
- (fix) Fixes logging level parsing
- (feature) Adds node logging level and rclpy logging level to component config
- (fix) Adds BGR2RGB tranformation for yuv422_yuy2 encoding
- (docs) Removes unused extension
- (docs) Adds docs for components services and pkg advantages
- Merge branch 'feature/system_management' of github.com:automatika-robotics/ros-sugar into feature/system_management
- (fix) Fixes transformation quaternion parsing
- (feature) Adds utility method for processing all ROS image encodings
- (feature) Adds transformation/rotation propertires to TFListener
- (fix) Fixes lifecycle transitioin callback in component
- (chore) Adds msgpack-numpy and attrs as deb package dependencies
- (fix) Handles lifecycle actions start/stop/restart from the launcher
- (fix) Adds action goal lock to handle aborting ongoing goals and executing new incoming goals
- Contributors: ahr, mkabtoul
0.2.9 (2025-02-18)
- (docs) Updates supported types docs and adds docstrings
- (feature) Adds a script to make any python script a systemd service
- (fix) Minor fix to check for action server creation before destruction
- (fix) Adds algorithm config from yaml if available
- (fix) Removes setproctitle as a hard dependency
- (fix) Checks for subscription in got_inputs method
- (fix) Fixes type hints for python3.8 compatibility
- Contributors: ahr, mkabtoul
0.2.8 (2025-01-28)
- (fix) Removes testing to keep build stable until dependencies are merged in rosdistro
- Contributors: ahr
0.2.7 (2025-01-28)
- (fix) Fixes ChildComponent class in tests
- (fix) Minor fix in component execution_step
- (feature) Adds pytests to package.xml and CMakeLists
- (feature) Adds tests for Actios and ComponentRunType
- (fix) Fixes health_status publishing for non timed components
- (feature) Adds pytest for all event classes and fixes existing errors
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
automatika_embodied_agents | |
kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
![]() |
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
Version | 0.3.2 |
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 | 2025-10-21 |
Dev Status | DEVELOPED |
Released | RELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors

🇨🇳 ç®€ä½“ä¸æ–‡ | 🇯🇵 日本語 |
The Sweetest Way to Build ROS2 Systems
Sugarcoat is a meta-framework that injects a whole lot of syntactic sugar into building complex, event-driven multinode systems in ROS2, all through an intuitive Python API.
Key Features
Feature | Description |
---|---|
Event-Driven Core | Built-in primitives for Events and Actions enables dynamic runtime configuration and control over your system’s Components. |
Built-in Resilience | Fallbacks and Fault Tolerance are core design concepts, ensuring your systems are robust and reliable. |
Intuitive Python API | Design your entire system—nodes, events, and actions—using clean, readable Python code. |
Dynamic Web UI (NEW!) | Automatically generate a fully dynamic, extensible web interface for monitoring and configuring your system. |
Launch Replacement | A more pythonic alternative to the ROS2 Launch API, providing greater flexibility and runtime control for real-world applications. |
Packages Built with Sugarcoat
- Kompass: A framework for building robust and comprehensive event-driven navigation stacks using an easy-to-use and intuitive Python API.
- EmbodiedAgents: A fully-loaded framework for creating interactive physical agents that can understand, remember, and act upon contextual information from their environment.
Get Started
- Learn more about the design concepts in Sugarcoat 📚
- Learn how to create your own ROS2 package using Sugarcoat 🚀
(NEW!) Introducing Dynamic Web UI for Sugarcoat Recipes
The new 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.
This feature instantly transforms your complex, multinode ROS2 system into a monitorable and configurable web application.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q\&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Vision Follower Recipe A complex system using components from both Kompass and EmbodiedAgents to control the robot motion and follow a visual target. The UI automatically renders image data, detections, and robot action commands, demonstrating its ability to handle multimedia and complex component interactions.
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.
How Sugarcoat Works
The core of Sugarcoat revolves around a few concepts:
- Component: The main execution unit (a ROS2 lifecycle node abstraction) configured with Inputs/Outputs and Fallback behaviors. Each component reports its Health Status. Learn More about Components
-
Events & Actions: Mechanisms to handle and reconfigure components dynamically at runtime. Learn More about Events Learn More about Actions - Launcher: Takes your defined Components, Events, and Actions, and executes the system using multi-threaded or multi-process execution. It works with an internal Monitor to manage component lifecycles and track events. Learn More about the Launcher
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.3.2 (2025-09-03)
- (docs) Updates events docs with new classes
- (feature) Adds ros time automatically to stamped messages in publisher
- (fix) Fixes error in publishing audio msgs as byte arrays
- (fix) Fixes Pose publisher converter
- (fix) Fixes event handle once and delay options
- (fix) Fixes condition for OnChange event trigger
- (feature) Adds events for contains any/all plus change in value
- (fix) Fixes error in geomerty transformation util
- Contributors: ahr, mkabtoul
0.3.1 (2025-06-28)
- (refactor) Corrects type hint in callbacks
- (refactor) Adds type hints to validators
- (refactor) Minor improvements and typo correction
- (refactor) Resolves todo in component actions for active flag and adds default logger for module
- (chore) Updates service creation script with better error handling
- (docs) Updates installation instructions
- (refactor) Removes numpy-quaternion from dependencies and implements rotations using numpy
- (docs) Updates logo icon and adds 'config from file' page to docs
- (fix) Adds wait for node activation after restart and fixes optional arguments parsing in Component
- (docs) Updates events docs
- (docs) Adds international readmes
- (chore) Removes pip based test dependencies for ROS build farm
- (docs) Updates readme
- Contributors: ahr, mkabtoul
0.3.0 (2025-06-18)
- (chore) Updates installation instructions and CI
- (fix) Removes NoneType from types for compatibility with python < 3.10
- (fix) Add missing pyyaml dependency
- (feature) Adds config parsing from toml, json and yaml and removes Omegaconf dependency
- (fix) Add missing action decorator to methods
- (docs) Updates img names
- (docs) Updates readme
- (chore) Adds a sweeter name for ROS Sugar .. Sugarcoat
- (docs) Minor edits
- (docs) Adds documentation for creating systemd services with scripts
- (docs) Fixes size of logo
- (docs) Fixes warnings in docs
- (docs) Minor fix
- (docs) Updates supported types docs
- (fix) Fixes minor typo
- (fix) Fixes logging level parsing
- (feature) Adds node logging level and rclpy logging level to component config
- (fix) Adds BGR2RGB tranformation for yuv422_yuy2 encoding
- (docs) Removes unused extension
- (docs) Adds docs for components services and pkg advantages
- Merge branch 'feature/system_management' of github.com:automatika-robotics/ros-sugar into feature/system_management
- (fix) Fixes transformation quaternion parsing
- (feature) Adds utility method for processing all ROS image encodings
- (feature) Adds transformation/rotation propertires to TFListener
- (fix) Fixes lifecycle transitioin callback in component
- (chore) Adds msgpack-numpy and attrs as deb package dependencies
- (fix) Handles lifecycle actions start/stop/restart from the launcher
- (fix) Adds action goal lock to handle aborting ongoing goals and executing new incoming goals
- Contributors: ahr, mkabtoul
0.2.9 (2025-02-18)
- (docs) Updates supported types docs and adds docstrings
- (feature) Adds a script to make any python script a systemd service
- (fix) Minor fix to check for action server creation before destruction
- (fix) Adds algorithm config from yaml if available
- (fix) Removes setproctitle as a hard dependency
- (fix) Checks for subscription in got_inputs method
- (fix) Fixes type hints for python3.8 compatibility
- Contributors: ahr, mkabtoul
0.2.8 (2025-01-28)
- (fix) Removes testing to keep build stable until dependencies are merged in rosdistro
- Contributors: ahr
0.2.7 (2025-01-28)
- (fix) Fixes ChildComponent class in tests
- (fix) Minor fix in component execution_step
- (feature) Adds pytests to package.xml and CMakeLists
- (feature) Adds tests for Actios and ComponentRunType
- (fix) Fixes health_status publishing for non timed components
- (feature) Adds pytest for all event classes and fixes existing errors
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
automatika_embodied_agents | |
kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
![]() |
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
Version | 0.3.2 |
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 | 2025-10-21 |
Dev Status | DEVELOPED |
Released | RELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors

🇨🇳 ç®€ä½“ä¸æ–‡ | 🇯🇵 日本語 |
The Sweetest Way to Build ROS2 Systems
Sugarcoat is a meta-framework that injects a whole lot of syntactic sugar into building complex, event-driven multinode systems in ROS2, all through an intuitive Python API.
Key Features
Feature | Description |
---|---|
Event-Driven Core | Built-in primitives for Events and Actions enables dynamic runtime configuration and control over your system’s Components. |
Built-in Resilience | Fallbacks and Fault Tolerance are core design concepts, ensuring your systems are robust and reliable. |
Intuitive Python API | Design your entire system—nodes, events, and actions—using clean, readable Python code. |
Dynamic Web UI (NEW!) | Automatically generate a fully dynamic, extensible web interface for monitoring and configuring your system. |
Launch Replacement | A more pythonic alternative to the ROS2 Launch API, providing greater flexibility and runtime control for real-world applications. |
Packages Built with Sugarcoat
- Kompass: A framework for building robust and comprehensive event-driven navigation stacks using an easy-to-use and intuitive Python API.
- EmbodiedAgents: A fully-loaded framework for creating interactive physical agents that can understand, remember, and act upon contextual information from their environment.
Get Started
- Learn more about the design concepts in Sugarcoat 📚
- Learn how to create your own ROS2 package using Sugarcoat 🚀
(NEW!) Introducing Dynamic Web UI for Sugarcoat Recipes
The new 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.
This feature instantly transforms your complex, multinode ROS2 system into a monitorable and configurable web application.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q\&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Vision Follower Recipe A complex system using components from both Kompass and EmbodiedAgents to control the robot motion and follow a visual target. The UI automatically renders image data, detections, and robot action commands, demonstrating its ability to handle multimedia and complex component interactions.
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.
How Sugarcoat Works
The core of Sugarcoat revolves around a few concepts:
- Component: The main execution unit (a ROS2 lifecycle node abstraction) configured with Inputs/Outputs and Fallback behaviors. Each component reports its Health Status. Learn More about Components
-
Events & Actions: Mechanisms to handle and reconfigure components dynamically at runtime. Learn More about Events Learn More about Actions - Launcher: Takes your defined Components, Events, and Actions, and executes the system using multi-threaded or multi-process execution. It works with an internal Monitor to manage component lifecycles and track events. Learn More about the Launcher
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.3.2 (2025-09-03)
- (docs) Updates events docs with new classes
- (feature) Adds ros time automatically to stamped messages in publisher
- (fix) Fixes error in publishing audio msgs as byte arrays
- (fix) Fixes Pose publisher converter
- (fix) Fixes event handle once and delay options
- (fix) Fixes condition for OnChange event trigger
- (feature) Adds events for contains any/all plus change in value
- (fix) Fixes error in geomerty transformation util
- Contributors: ahr, mkabtoul
0.3.1 (2025-06-28)
- (refactor) Corrects type hint in callbacks
- (refactor) Adds type hints to validators
- (refactor) Minor improvements and typo correction
- (refactor) Resolves todo in component actions for active flag and adds default logger for module
- (chore) Updates service creation script with better error handling
- (docs) Updates installation instructions
- (refactor) Removes numpy-quaternion from dependencies and implements rotations using numpy
- (docs) Updates logo icon and adds 'config from file' page to docs
- (fix) Adds wait for node activation after restart and fixes optional arguments parsing in Component
- (docs) Updates events docs
- (docs) Adds international readmes
- (chore) Removes pip based test dependencies for ROS build farm
- (docs) Updates readme
- Contributors: ahr, mkabtoul
0.3.0 (2025-06-18)
- (chore) Updates installation instructions and CI
- (fix) Removes NoneType from types for compatibility with python < 3.10
- (fix) Add missing pyyaml dependency
- (feature) Adds config parsing from toml, json and yaml and removes Omegaconf dependency
- (fix) Add missing action decorator to methods
- (docs) Updates img names
- (docs) Updates readme
- (chore) Adds a sweeter name for ROS Sugar .. Sugarcoat
- (docs) Minor edits
- (docs) Adds documentation for creating systemd services with scripts
- (docs) Fixes size of logo
- (docs) Fixes warnings in docs
- (docs) Minor fix
- (docs) Updates supported types docs
- (fix) Fixes minor typo
- (fix) Fixes logging level parsing
- (feature) Adds node logging level and rclpy logging level to component config
- (fix) Adds BGR2RGB tranformation for yuv422_yuy2 encoding
- (docs) Removes unused extension
- (docs) Adds docs for components services and pkg advantages
- Merge branch 'feature/system_management' of github.com:automatika-robotics/ros-sugar into feature/system_management
- (fix) Fixes transformation quaternion parsing
- (feature) Adds utility method for processing all ROS image encodings
- (feature) Adds transformation/rotation propertires to TFListener
- (fix) Fixes lifecycle transitioin callback in component
- (chore) Adds msgpack-numpy and attrs as deb package dependencies
- (fix) Handles lifecycle actions start/stop/restart from the launcher
- (fix) Adds action goal lock to handle aborting ongoing goals and executing new incoming goals
- Contributors: ahr, mkabtoul
0.2.9 (2025-02-18)
- (docs) Updates supported types docs and adds docstrings
- (feature) Adds a script to make any python script a systemd service
- (fix) Minor fix to check for action server creation before destruction
- (fix) Adds algorithm config from yaml if available
- (fix) Removes setproctitle as a hard dependency
- (fix) Checks for subscription in got_inputs method
- (fix) Fixes type hints for python3.8 compatibility
- Contributors: ahr, mkabtoul
0.2.8 (2025-01-28)
- (fix) Removes testing to keep build stable until dependencies are merged in rosdistro
- Contributors: ahr
0.2.7 (2025-01-28)
- (fix) Fixes ChildComponent class in tests
- (fix) Minor fix in component execution_step
- (feature) Adds pytests to package.xml and CMakeLists
- (feature) Adds tests for Actios and ComponentRunType
- (fix) Fixes health_status publishing for non timed components
- (feature) Adds pytest for all event classes and fixes existing errors
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
automatika_embodied_agents | |
kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
![]() |
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
Version | 0.3.2 |
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 | 2025-10-21 |
Dev Status | DEVELOPED |
Released | RELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors

🇨🇳 ç®€ä½“ä¸æ–‡ | 🇯🇵 日本語 |
The Sweetest Way to Build ROS2 Systems
Sugarcoat is a meta-framework that injects a whole lot of syntactic sugar into building complex, event-driven multinode systems in ROS2, all through an intuitive Python API.
Key Features
Feature | Description |
---|---|
Event-Driven Core | Built-in primitives for Events and Actions enables dynamic runtime configuration and control over your system’s Components. |
Built-in Resilience | Fallbacks and Fault Tolerance are core design concepts, ensuring your systems are robust and reliable. |
Intuitive Python API | Design your entire system—nodes, events, and actions—using clean, readable Python code. |
Dynamic Web UI (NEW!) | Automatically generate a fully dynamic, extensible web interface for monitoring and configuring your system. |
Launch Replacement | A more pythonic alternative to the ROS2 Launch API, providing greater flexibility and runtime control for real-world applications. |
Packages Built with Sugarcoat
- Kompass: A framework for building robust and comprehensive event-driven navigation stacks using an easy-to-use and intuitive Python API.
- EmbodiedAgents: A fully-loaded framework for creating interactive physical agents that can understand, remember, and act upon contextual information from their environment.
Get Started
- Learn more about the design concepts in Sugarcoat 📚
- Learn how to create your own ROS2 package using Sugarcoat 🚀
(NEW!) Introducing Dynamic Web UI for Sugarcoat Recipes
The new 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.
This feature instantly transforms your complex, multinode ROS2 system into a monitorable and configurable web application.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q\&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Vision Follower Recipe A complex system using components from both Kompass and EmbodiedAgents to control the robot motion and follow a visual target. The UI automatically renders image data, detections, and robot action commands, demonstrating its ability to handle multimedia and complex component interactions.
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.
How Sugarcoat Works
The core of Sugarcoat revolves around a few concepts:
- Component: The main execution unit (a ROS2 lifecycle node abstraction) configured with Inputs/Outputs and Fallback behaviors. Each component reports its Health Status. Learn More about Components
-
Events & Actions: Mechanisms to handle and reconfigure components dynamically at runtime. Learn More about Events Learn More about Actions - Launcher: Takes your defined Components, Events, and Actions, and executes the system using multi-threaded or multi-process execution. It works with an internal Monitor to manage component lifecycles and track events. Learn More about the Launcher
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.3.2 (2025-09-03)
- (docs) Updates events docs with new classes
- (feature) Adds ros time automatically to stamped messages in publisher
- (fix) Fixes error in publishing audio msgs as byte arrays
- (fix) Fixes Pose publisher converter
- (fix) Fixes event handle once and delay options
- (fix) Fixes condition for OnChange event trigger
- (feature) Adds events for contains any/all plus change in value
- (fix) Fixes error in geomerty transformation util
- Contributors: ahr, mkabtoul
0.3.1 (2025-06-28)
- (refactor) Corrects type hint in callbacks
- (refactor) Adds type hints to validators
- (refactor) Minor improvements and typo correction
- (refactor) Resolves todo in component actions for active flag and adds default logger for module
- (chore) Updates service creation script with better error handling
- (docs) Updates installation instructions
- (refactor) Removes numpy-quaternion from dependencies and implements rotations using numpy
- (docs) Updates logo icon and adds 'config from file' page to docs
- (fix) Adds wait for node activation after restart and fixes optional arguments parsing in Component
- (docs) Updates events docs
- (docs) Adds international readmes
- (chore) Removes pip based test dependencies for ROS build farm
- (docs) Updates readme
- Contributors: ahr, mkabtoul
0.3.0 (2025-06-18)
- (chore) Updates installation instructions and CI
- (fix) Removes NoneType from types for compatibility with python < 3.10
- (fix) Add missing pyyaml dependency
- (feature) Adds config parsing from toml, json and yaml and removes Omegaconf dependency
- (fix) Add missing action decorator to methods
- (docs) Updates img names
- (docs) Updates readme
- (chore) Adds a sweeter name for ROS Sugar .. Sugarcoat
- (docs) Minor edits
- (docs) Adds documentation for creating systemd services with scripts
- (docs) Fixes size of logo
- (docs) Fixes warnings in docs
- (docs) Minor fix
- (docs) Updates supported types docs
- (fix) Fixes minor typo
- (fix) Fixes logging level parsing
- (feature) Adds node logging level and rclpy logging level to component config
- (fix) Adds BGR2RGB tranformation for yuv422_yuy2 encoding
- (docs) Removes unused extension
- (docs) Adds docs for components services and pkg advantages
- Merge branch 'feature/system_management' of github.com:automatika-robotics/ros-sugar into feature/system_management
- (fix) Fixes transformation quaternion parsing
- (feature) Adds utility method for processing all ROS image encodings
- (feature) Adds transformation/rotation propertires to TFListener
- (fix) Fixes lifecycle transitioin callback in component
- (chore) Adds msgpack-numpy and attrs as deb package dependencies
- (fix) Handles lifecycle actions start/stop/restart from the launcher
- (fix) Adds action goal lock to handle aborting ongoing goals and executing new incoming goals
- Contributors: ahr, mkabtoul
0.2.9 (2025-02-18)
- (docs) Updates supported types docs and adds docstrings
- (feature) Adds a script to make any python script a systemd service
- (fix) Minor fix to check for action server creation before destruction
- (fix) Adds algorithm config from yaml if available
- (fix) Removes setproctitle as a hard dependency
- (fix) Checks for subscription in got_inputs method
- (fix) Fixes type hints for python3.8 compatibility
- Contributors: ahr, mkabtoul
0.2.8 (2025-01-28)
- (fix) Removes testing to keep build stable until dependencies are merged in rosdistro
- Contributors: ahr
0.2.7 (2025-01-28)
- (fix) Fixes ChildComponent class in tests
- (fix) Minor fix in component execution_step
- (feature) Adds pytests to package.xml and CMakeLists
- (feature) Adds tests for Actios and ComponentRunType
- (fix) Fixes health_status publishing for non timed components
- (feature) Adds pytest for all event classes and fixes existing errors
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
automatika_embodied_agents | |
kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
![]() |
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
Version | 0.3.2 |
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 | 2025-10-21 |
Dev Status | DEVELOPED |
Released | RELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors

🇨🇳 ç®€ä½“ä¸æ–‡ | 🇯🇵 日本語 |
The Sweetest Way to Build ROS2 Systems
Sugarcoat is a meta-framework that injects a whole lot of syntactic sugar into building complex, event-driven multinode systems in ROS2, all through an intuitive Python API.
Key Features
Feature | Description |
---|---|
Event-Driven Core | Built-in primitives for Events and Actions enables dynamic runtime configuration and control over your system’s Components. |
Built-in Resilience | Fallbacks and Fault Tolerance are core design concepts, ensuring your systems are robust and reliable. |
Intuitive Python API | Design your entire system—nodes, events, and actions—using clean, readable Python code. |
Dynamic Web UI (NEW!) | Automatically generate a fully dynamic, extensible web interface for monitoring and configuring your system. |
Launch Replacement | A more pythonic alternative to the ROS2 Launch API, providing greater flexibility and runtime control for real-world applications. |
Packages Built with Sugarcoat
- Kompass: A framework for building robust and comprehensive event-driven navigation stacks using an easy-to-use and intuitive Python API.
- EmbodiedAgents: A fully-loaded framework for creating interactive physical agents that can understand, remember, and act upon contextual information from their environment.
Get Started
- Learn more about the design concepts in Sugarcoat 📚
- Learn how to create your own ROS2 package using Sugarcoat 🚀
(NEW!) Introducing Dynamic Web UI for Sugarcoat Recipes
The new 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.
This feature instantly transforms your complex, multinode ROS2 system into a monitorable and configurable web application.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q\&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Vision Follower Recipe A complex system using components from both Kompass and EmbodiedAgents to control the robot motion and follow a visual target. The UI automatically renders image data, detections, and robot action commands, demonstrating its ability to handle multimedia and complex component interactions.
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.
How Sugarcoat Works
The core of Sugarcoat revolves around a few concepts:
- Component: The main execution unit (a ROS2 lifecycle node abstraction) configured with Inputs/Outputs and Fallback behaviors. Each component reports its Health Status. Learn More about Components
-
Events & Actions: Mechanisms to handle and reconfigure components dynamically at runtime. Learn More about Events Learn More about Actions - Launcher: Takes your defined Components, Events, and Actions, and executes the system using multi-threaded or multi-process execution. It works with an internal Monitor to manage component lifecycles and track events. Learn More about the Launcher
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.3.2 (2025-09-03)
- (docs) Updates events docs with new classes
- (feature) Adds ros time automatically to stamped messages in publisher
- (fix) Fixes error in publishing audio msgs as byte arrays
- (fix) Fixes Pose publisher converter
- (fix) Fixes event handle once and delay options
- (fix) Fixes condition for OnChange event trigger
- (feature) Adds events for contains any/all plus change in value
- (fix) Fixes error in geomerty transformation util
- Contributors: ahr, mkabtoul
0.3.1 (2025-06-28)
- (refactor) Corrects type hint in callbacks
- (refactor) Adds type hints to validators
- (refactor) Minor improvements and typo correction
- (refactor) Resolves todo in component actions for active flag and adds default logger for module
- (chore) Updates service creation script with better error handling
- (docs) Updates installation instructions
- (refactor) Removes numpy-quaternion from dependencies and implements rotations using numpy
- (docs) Updates logo icon and adds 'config from file' page to docs
- (fix) Adds wait for node activation after restart and fixes optional arguments parsing in Component
- (docs) Updates events docs
- (docs) Adds international readmes
- (chore) Removes pip based test dependencies for ROS build farm
- (docs) Updates readme
- Contributors: ahr, mkabtoul
0.3.0 (2025-06-18)
- (chore) Updates installation instructions and CI
- (fix) Removes NoneType from types for compatibility with python < 3.10
- (fix) Add missing pyyaml dependency
- (feature) Adds config parsing from toml, json and yaml and removes Omegaconf dependency
- (fix) Add missing action decorator to methods
- (docs) Updates img names
- (docs) Updates readme
- (chore) Adds a sweeter name for ROS Sugar .. Sugarcoat
- (docs) Minor edits
- (docs) Adds documentation for creating systemd services with scripts
- (docs) Fixes size of logo
- (docs) Fixes warnings in docs
- (docs) Minor fix
- (docs) Updates supported types docs
- (fix) Fixes minor typo
- (fix) Fixes logging level parsing
- (feature) Adds node logging level and rclpy logging level to component config
- (fix) Adds BGR2RGB tranformation for yuv422_yuy2 encoding
- (docs) Removes unused extension
- (docs) Adds docs for components services and pkg advantages
- Merge branch 'feature/system_management' of github.com:automatika-robotics/ros-sugar into feature/system_management
- (fix) Fixes transformation quaternion parsing
- (feature) Adds utility method for processing all ROS image encodings
- (feature) Adds transformation/rotation propertires to TFListener
- (fix) Fixes lifecycle transitioin callback in component
- (chore) Adds msgpack-numpy and attrs as deb package dependencies
- (fix) Handles lifecycle actions start/stop/restart from the launcher
- (fix) Adds action goal lock to handle aborting ongoing goals and executing new incoming goals
- Contributors: ahr, mkabtoul
0.2.9 (2025-02-18)
- (docs) Updates supported types docs and adds docstrings
- (feature) Adds a script to make any python script a systemd service
- (fix) Minor fix to check for action server creation before destruction
- (fix) Adds algorithm config from yaml if available
- (fix) Removes setproctitle as a hard dependency
- (fix) Checks for subscription in got_inputs method
- (fix) Fixes type hints for python3.8 compatibility
- Contributors: ahr, mkabtoul
0.2.8 (2025-01-28)
- (fix) Removes testing to keep build stable until dependencies are merged in rosdistro
- Contributors: ahr
0.2.7 (2025-01-28)
- (fix) Fixes ChildComponent class in tests
- (fix) Minor fix in component execution_step
- (feature) Adds pytests to package.xml and CMakeLists
- (feature) Adds tests for Actios and ComponentRunType
- (fix) Fixes health_status publishing for non timed components
- (feature) Adds pytest for all event classes and fixes existing errors
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
automatika_embodied_agents | |
kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
![]() |
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
Version | 0.3.2 |
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 | 2025-10-21 |
Dev Status | DEVELOPED |
Released | RELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors

🇨🇳 ç®€ä½“ä¸æ–‡ | 🇯🇵 日本語 |
The Sweetest Way to Build ROS2 Systems
Sugarcoat is a meta-framework that injects a whole lot of syntactic sugar into building complex, event-driven multinode systems in ROS2, all through an intuitive Python API.
Key Features
Feature | Description |
---|---|
Event-Driven Core | Built-in primitives for Events and Actions enables dynamic runtime configuration and control over your system’s Components. |
Built-in Resilience | Fallbacks and Fault Tolerance are core design concepts, ensuring your systems are robust and reliable. |
Intuitive Python API | Design your entire system—nodes, events, and actions—using clean, readable Python code. |
Dynamic Web UI (NEW!) | Automatically generate a fully dynamic, extensible web interface for monitoring and configuring your system. |
Launch Replacement | A more pythonic alternative to the ROS2 Launch API, providing greater flexibility and runtime control for real-world applications. |
Packages Built with Sugarcoat
- Kompass: A framework for building robust and comprehensive event-driven navigation stacks using an easy-to-use and intuitive Python API.
- EmbodiedAgents: A fully-loaded framework for creating interactive physical agents that can understand, remember, and act upon contextual information from their environment.
Get Started
- Learn more about the design concepts in Sugarcoat 📚
- Learn how to create your own ROS2 package using Sugarcoat 🚀
(NEW!) Introducing Dynamic Web UI for Sugarcoat Recipes
The new 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.
This feature instantly transforms your complex, multinode ROS2 system into a monitorable and configurable web application.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q\&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Vision Follower Recipe A complex system using components from both Kompass and EmbodiedAgents to control the robot motion and follow a visual target. The UI automatically renders image data, detections, and robot action commands, demonstrating its ability to handle multimedia and complex component interactions.
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.
How Sugarcoat Works
The core of Sugarcoat revolves around a few concepts:
- Component: The main execution unit (a ROS2 lifecycle node abstraction) configured with Inputs/Outputs and Fallback behaviors. Each component reports its Health Status. Learn More about Components
-
Events & Actions: Mechanisms to handle and reconfigure components dynamically at runtime. Learn More about Events Learn More about Actions - Launcher: Takes your defined Components, Events, and Actions, and executes the system using multi-threaded or multi-process execution. It works with an internal Monitor to manage component lifecycles and track events. Learn More about the Launcher
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.3.2 (2025-09-03)
- (docs) Updates events docs with new classes
- (feature) Adds ros time automatically to stamped messages in publisher
- (fix) Fixes error in publishing audio msgs as byte arrays
- (fix) Fixes Pose publisher converter
- (fix) Fixes event handle once and delay options
- (fix) Fixes condition for OnChange event trigger
- (feature) Adds events for contains any/all plus change in value
- (fix) Fixes error in geomerty transformation util
- Contributors: ahr, mkabtoul
0.3.1 (2025-06-28)
- (refactor) Corrects type hint in callbacks
- (refactor) Adds type hints to validators
- (refactor) Minor improvements and typo correction
- (refactor) Resolves todo in component actions for active flag and adds default logger for module
- (chore) Updates service creation script with better error handling
- (docs) Updates installation instructions
- (refactor) Removes numpy-quaternion from dependencies and implements rotations using numpy
- (docs) Updates logo icon and adds 'config from file' page to docs
- (fix) Adds wait for node activation after restart and fixes optional arguments parsing in Component
- (docs) Updates events docs
- (docs) Adds international readmes
- (chore) Removes pip based test dependencies for ROS build farm
- (docs) Updates readme
- Contributors: ahr, mkabtoul
0.3.0 (2025-06-18)
- (chore) Updates installation instructions and CI
- (fix) Removes NoneType from types for compatibility with python < 3.10
- (fix) Add missing pyyaml dependency
- (feature) Adds config parsing from toml, json and yaml and removes Omegaconf dependency
- (fix) Add missing action decorator to methods
- (docs) Updates img names
- (docs) Updates readme
- (chore) Adds a sweeter name for ROS Sugar .. Sugarcoat
- (docs) Minor edits
- (docs) Adds documentation for creating systemd services with scripts
- (docs) Fixes size of logo
- (docs) Fixes warnings in docs
- (docs) Minor fix
- (docs) Updates supported types docs
- (fix) Fixes minor typo
- (fix) Fixes logging level parsing
- (feature) Adds node logging level and rclpy logging level to component config
- (fix) Adds BGR2RGB tranformation for yuv422_yuy2 encoding
- (docs) Removes unused extension
- (docs) Adds docs for components services and pkg advantages
- Merge branch 'feature/system_management' of github.com:automatika-robotics/ros-sugar into feature/system_management
- (fix) Fixes transformation quaternion parsing
- (feature) Adds utility method for processing all ROS image encodings
- (feature) Adds transformation/rotation propertires to TFListener
- (fix) Fixes lifecycle transitioin callback in component
- (chore) Adds msgpack-numpy and attrs as deb package dependencies
- (fix) Handles lifecycle actions start/stop/restart from the launcher
- (fix) Adds action goal lock to handle aborting ongoing goals and executing new incoming goals
- Contributors: ahr, mkabtoul
0.2.9 (2025-02-18)
- (docs) Updates supported types docs and adds docstrings
- (feature) Adds a script to make any python script a systemd service
- (fix) Minor fix to check for action server creation before destruction
- (fix) Adds algorithm config from yaml if available
- (fix) Removes setproctitle as a hard dependency
- (fix) Checks for subscription in got_inputs method
- (fix) Fixes type hints for python3.8 compatibility
- Contributors: ahr, mkabtoul
0.2.8 (2025-01-28)
- (fix) Removes testing to keep build stable until dependencies are merged in rosdistro
- Contributors: ahr
0.2.7 (2025-01-28)
- (fix) Fixes ChildComponent class in tests
- (fix) Minor fix in component execution_step
- (feature) Adds pytests to package.xml and CMakeLists
- (feature) Adds tests for Actios and ComponentRunType
- (fix) Fixes health_status publishing for non timed components
- (feature) Adds pytest for all event classes and fixes existing errors
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
automatika_embodied_agents | |
kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
![]() |
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
Version | 0.3.2 |
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 | 2025-10-21 |
Dev Status | DEVELOPED |
Released | RELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors

🇨🇳 ç®€ä½“ä¸æ–‡ | 🇯🇵 日本語 |
The Sweetest Way to Build ROS2 Systems
Sugarcoat is a meta-framework that injects a whole lot of syntactic sugar into building complex, event-driven multinode systems in ROS2, all through an intuitive Python API.
Key Features
Feature | Description |
---|---|
Event-Driven Core | Built-in primitives for Events and Actions enables dynamic runtime configuration and control over your system’s Components. |
Built-in Resilience | Fallbacks and Fault Tolerance are core design concepts, ensuring your systems are robust and reliable. |
Intuitive Python API | Design your entire system—nodes, events, and actions—using clean, readable Python code. |
Dynamic Web UI (NEW!) | Automatically generate a fully dynamic, extensible web interface for monitoring and configuring your system. |
Launch Replacement | A more pythonic alternative to the ROS2 Launch API, providing greater flexibility and runtime control for real-world applications. |
Packages Built with Sugarcoat
- Kompass: A framework for building robust and comprehensive event-driven navigation stacks using an easy-to-use and intuitive Python API.
- EmbodiedAgents: A fully-loaded framework for creating interactive physical agents that can understand, remember, and act upon contextual information from their environment.
Get Started
- Learn more about the design concepts in Sugarcoat 📚
- Learn how to create your own ROS2 package using Sugarcoat 🚀
(NEW!) Introducing Dynamic Web UI for Sugarcoat Recipes
The new 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.
This feature instantly transforms your complex, multinode ROS2 system into a monitorable and configurable web application.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q\&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Vision Follower Recipe A complex system using components from both Kompass and EmbodiedAgents to control the robot motion and follow a visual target. The UI automatically renders image data, detections, and robot action commands, demonstrating its ability to handle multimedia and complex component interactions.
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.
How Sugarcoat Works
The core of Sugarcoat revolves around a few concepts:
- Component: The main execution unit (a ROS2 lifecycle node abstraction) configured with Inputs/Outputs and Fallback behaviors. Each component reports its Health Status. Learn More about Components
-
Events & Actions: Mechanisms to handle and reconfigure components dynamically at runtime. Learn More about Events Learn More about Actions - Launcher: Takes your defined Components, Events, and Actions, and executes the system using multi-threaded or multi-process execution. It works with an internal Monitor to manage component lifecycles and track events. Learn More about the Launcher
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.3.2 (2025-09-03)
- (docs) Updates events docs with new classes
- (feature) Adds ros time automatically to stamped messages in publisher
- (fix) Fixes error in publishing audio msgs as byte arrays
- (fix) Fixes Pose publisher converter
- (fix) Fixes event handle once and delay options
- (fix) Fixes condition for OnChange event trigger
- (feature) Adds events for contains any/all plus change in value
- (fix) Fixes error in geomerty transformation util
- Contributors: ahr, mkabtoul
0.3.1 (2025-06-28)
- (refactor) Corrects type hint in callbacks
- (refactor) Adds type hints to validators
- (refactor) Minor improvements and typo correction
- (refactor) Resolves todo in component actions for active flag and adds default logger for module
- (chore) Updates service creation script with better error handling
- (docs) Updates installation instructions
- (refactor) Removes numpy-quaternion from dependencies and implements rotations using numpy
- (docs) Updates logo icon and adds 'config from file' page to docs
- (fix) Adds wait for node activation after restart and fixes optional arguments parsing in Component
- (docs) Updates events docs
- (docs) Adds international readmes
- (chore) Removes pip based test dependencies for ROS build farm
- (docs) Updates readme
- Contributors: ahr, mkabtoul
0.3.0 (2025-06-18)
- (chore) Updates installation instructions and CI
- (fix) Removes NoneType from types for compatibility with python < 3.10
- (fix) Add missing pyyaml dependency
- (feature) Adds config parsing from toml, json and yaml and removes Omegaconf dependency
- (fix) Add missing action decorator to methods
- (docs) Updates img names
- (docs) Updates readme
- (chore) Adds a sweeter name for ROS Sugar .. Sugarcoat
- (docs) Minor edits
- (docs) Adds documentation for creating systemd services with scripts
- (docs) Fixes size of logo
- (docs) Fixes warnings in docs
- (docs) Minor fix
- (docs) Updates supported types docs
- (fix) Fixes minor typo
- (fix) Fixes logging level parsing
- (feature) Adds node logging level and rclpy logging level to component config
- (fix) Adds BGR2RGB tranformation for yuv422_yuy2 encoding
- (docs) Removes unused extension
- (docs) Adds docs for components services and pkg advantages
- Merge branch 'feature/system_management' of github.com:automatika-robotics/ros-sugar into feature/system_management
- (fix) Fixes transformation quaternion parsing
- (feature) Adds utility method for processing all ROS image encodings
- (feature) Adds transformation/rotation propertires to TFListener
- (fix) Fixes lifecycle transitioin callback in component
- (chore) Adds msgpack-numpy and attrs as deb package dependencies
- (fix) Handles lifecycle actions start/stop/restart from the launcher
- (fix) Adds action goal lock to handle aborting ongoing goals and executing new incoming goals
- Contributors: ahr, mkabtoul
0.2.9 (2025-02-18)
- (docs) Updates supported types docs and adds docstrings
- (feature) Adds a script to make any python script a systemd service
- (fix) Minor fix to check for action server creation before destruction
- (fix) Adds algorithm config from yaml if available
- (fix) Removes setproctitle as a hard dependency
- (fix) Checks for subscription in got_inputs method
- (fix) Fixes type hints for python3.8 compatibility
- Contributors: ahr, mkabtoul
0.2.8 (2025-01-28)
- (fix) Removes testing to keep build stable until dependencies are merged in rosdistro
- Contributors: ahr
0.2.7 (2025-01-28)
- (fix) Fixes ChildComponent class in tests
- (fix) Minor fix in component execution_step
- (feature) Adds pytests to package.xml and CMakeLists
- (feature) Adds tests for Actios and ComponentRunType
- (fix) Fixes health_status publishing for non timed components
- (feature) Adds pytest for all event classes and fixes existing errors
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
automatika_embodied_agents | |
kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
![]() |
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
Version | 0.3.2 |
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 | 2025-10-21 |
Dev Status | DEVELOPED |
Released | RELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors

🇨🇳 ç®€ä½“ä¸æ–‡ | 🇯🇵 日本語 |
The Sweetest Way to Build ROS2 Systems
Sugarcoat is a meta-framework that injects a whole lot of syntactic sugar into building complex, event-driven multinode systems in ROS2, all through an intuitive Python API.
Key Features
Feature | Description |
---|---|
Event-Driven Core | Built-in primitives for Events and Actions enables dynamic runtime configuration and control over your system’s Components. |
Built-in Resilience | Fallbacks and Fault Tolerance are core design concepts, ensuring your systems are robust and reliable. |
Intuitive Python API | Design your entire system—nodes, events, and actions—using clean, readable Python code. |
Dynamic Web UI (NEW!) | Automatically generate a fully dynamic, extensible web interface for monitoring and configuring your system. |
Launch Replacement | A more pythonic alternative to the ROS2 Launch API, providing greater flexibility and runtime control for real-world applications. |
Packages Built with Sugarcoat
- Kompass: A framework for building robust and comprehensive event-driven navigation stacks using an easy-to-use and intuitive Python API.
- EmbodiedAgents: A fully-loaded framework for creating interactive physical agents that can understand, remember, and act upon contextual information from their environment.
Get Started
- Learn more about the design concepts in Sugarcoat 📚
- Learn how to create your own ROS2 package using Sugarcoat 🚀
(NEW!) Introducing Dynamic Web UI for Sugarcoat Recipes
The new 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.
This feature instantly transforms your complex, multinode ROS2 system into a monitorable and configurable web application.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q\&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Vision Follower Recipe A complex system using components from both Kompass and EmbodiedAgents to control the robot motion and follow a visual target. The UI automatically renders image data, detections, and robot action commands, demonstrating its ability to handle multimedia and complex component interactions.
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.
How Sugarcoat Works
The core of Sugarcoat revolves around a few concepts:
- Component: The main execution unit (a ROS2 lifecycle node abstraction) configured with Inputs/Outputs and Fallback behaviors. Each component reports its Health Status. Learn More about Components
-
Events & Actions: Mechanisms to handle and reconfigure components dynamically at runtime. Learn More about Events Learn More about Actions - Launcher: Takes your defined Components, Events, and Actions, and executes the system using multi-threaded or multi-process execution. It works with an internal Monitor to manage component lifecycles and track events. Learn More about the Launcher
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.3.2 (2025-09-03)
- (docs) Updates events docs with new classes
- (feature) Adds ros time automatically to stamped messages in publisher
- (fix) Fixes error in publishing audio msgs as byte arrays
- (fix) Fixes Pose publisher converter
- (fix) Fixes event handle once and delay options
- (fix) Fixes condition for OnChange event trigger
- (feature) Adds events for contains any/all plus change in value
- (fix) Fixes error in geomerty transformation util
- Contributors: ahr, mkabtoul
0.3.1 (2025-06-28)
- (refactor) Corrects type hint in callbacks
- (refactor) Adds type hints to validators
- (refactor) Minor improvements and typo correction
- (refactor) Resolves todo in component actions for active flag and adds default logger for module
- (chore) Updates service creation script with better error handling
- (docs) Updates installation instructions
- (refactor) Removes numpy-quaternion from dependencies and implements rotations using numpy
- (docs) Updates logo icon and adds 'config from file' page to docs
- (fix) Adds wait for node activation after restart and fixes optional arguments parsing in Component
- (docs) Updates events docs
- (docs) Adds international readmes
- (chore) Removes pip based test dependencies for ROS build farm
- (docs) Updates readme
- Contributors: ahr, mkabtoul
0.3.0 (2025-06-18)
- (chore) Updates installation instructions and CI
- (fix) Removes NoneType from types for compatibility with python < 3.10
- (fix) Add missing pyyaml dependency
- (feature) Adds config parsing from toml, json and yaml and removes Omegaconf dependency
- (fix) Add missing action decorator to methods
- (docs) Updates img names
- (docs) Updates readme
- (chore) Adds a sweeter name for ROS Sugar .. Sugarcoat
- (docs) Minor edits
- (docs) Adds documentation for creating systemd services with scripts
- (docs) Fixes size of logo
- (docs) Fixes warnings in docs
- (docs) Minor fix
- (docs) Updates supported types docs
- (fix) Fixes minor typo
- (fix) Fixes logging level parsing
- (feature) Adds node logging level and rclpy logging level to component config
- (fix) Adds BGR2RGB tranformation for yuv422_yuy2 encoding
- (docs) Removes unused extension
- (docs) Adds docs for components services and pkg advantages
- Merge branch 'feature/system_management' of github.com:automatika-robotics/ros-sugar into feature/system_management
- (fix) Fixes transformation quaternion parsing
- (feature) Adds utility method for processing all ROS image encodings
- (feature) Adds transformation/rotation propertires to TFListener
- (fix) Fixes lifecycle transitioin callback in component
- (chore) Adds msgpack-numpy and attrs as deb package dependencies
- (fix) Handles lifecycle actions start/stop/restart from the launcher
- (fix) Adds action goal lock to handle aborting ongoing goals and executing new incoming goals
- Contributors: ahr, mkabtoul
0.2.9 (2025-02-18)
- (docs) Updates supported types docs and adds docstrings
- (feature) Adds a script to make any python script a systemd service
- (fix) Minor fix to check for action server creation before destruction
- (fix) Adds algorithm config from yaml if available
- (fix) Removes setproctitle as a hard dependency
- (fix) Checks for subscription in got_inputs method
- (fix) Fixes type hints for python3.8 compatibility
- Contributors: ahr, mkabtoul
0.2.8 (2025-01-28)
- (fix) Removes testing to keep build stable until dependencies are merged in rosdistro
- Contributors: ahr
0.2.7 (2025-01-28)
- (fix) Fixes ChildComponent class in tests
- (fix) Minor fix in component execution_step
- (feature) Adds pytests to package.xml and CMakeLists
- (feature) Adds tests for Actios and ComponentRunType
- (fix) Fixes health_status publishing for non timed components
- (feature) Adds pytest for all event classes and fixes existing errors
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
automatika_embodied_agents | |
kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
![]() |
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
Version | 0.3.2 |
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 | 2025-10-21 |
Dev Status | DEVELOPED |
Released | RELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors

🇨🇳 ç®€ä½“ä¸æ–‡ | 🇯🇵 日本語 |
The Sweetest Way to Build ROS2 Systems
Sugarcoat is a meta-framework that injects a whole lot of syntactic sugar into building complex, event-driven multinode systems in ROS2, all through an intuitive Python API.
Key Features
Feature | Description |
---|---|
Event-Driven Core | Built-in primitives for Events and Actions enables dynamic runtime configuration and control over your system’s Components. |
Built-in Resilience | Fallbacks and Fault Tolerance are core design concepts, ensuring your systems are robust and reliable. |
Intuitive Python API | Design your entire system—nodes, events, and actions—using clean, readable Python code. |
Dynamic Web UI (NEW!) | Automatically generate a fully dynamic, extensible web interface for monitoring and configuring your system. |
Launch Replacement | A more pythonic alternative to the ROS2 Launch API, providing greater flexibility and runtime control for real-world applications. |
Packages Built with Sugarcoat
- Kompass: A framework for building robust and comprehensive event-driven navigation stacks using an easy-to-use and intuitive Python API.
- EmbodiedAgents: A fully-loaded framework for creating interactive physical agents that can understand, remember, and act upon contextual information from their environment.
Get Started
- Learn more about the design concepts in Sugarcoat 📚
- Learn how to create your own ROS2 package using Sugarcoat 🚀
(NEW!) Introducing Dynamic Web UI for Sugarcoat Recipes
The new 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.
This feature instantly transforms your complex, multinode ROS2 system into a monitorable and configurable web application.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q\&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Vision Follower Recipe A complex system using components from both Kompass and EmbodiedAgents to control the robot motion and follow a visual target. The UI automatically renders image data, detections, and robot action commands, demonstrating its ability to handle multimedia and complex component interactions.
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.
How Sugarcoat Works
The core of Sugarcoat revolves around a few concepts:
- Component: The main execution unit (a ROS2 lifecycle node abstraction) configured with Inputs/Outputs and Fallback behaviors. Each component reports its Health Status. Learn More about Components
-
Events & Actions: Mechanisms to handle and reconfigure components dynamically at runtime. Learn More about Events Learn More about Actions - Launcher: Takes your defined Components, Events, and Actions, and executes the system using multi-threaded or multi-process execution. It works with an internal Monitor to manage component lifecycles and track events. Learn More about the Launcher
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.3.2 (2025-09-03)
- (docs) Updates events docs with new classes
- (feature) Adds ros time automatically to stamped messages in publisher
- (fix) Fixes error in publishing audio msgs as byte arrays
- (fix) Fixes Pose publisher converter
- (fix) Fixes event handle once and delay options
- (fix) Fixes condition for OnChange event trigger
- (feature) Adds events for contains any/all plus change in value
- (fix) Fixes error in geomerty transformation util
- Contributors: ahr, mkabtoul
0.3.1 (2025-06-28)
- (refactor) Corrects type hint in callbacks
- (refactor) Adds type hints to validators
- (refactor) Minor improvements and typo correction
- (refactor) Resolves todo in component actions for active flag and adds default logger for module
- (chore) Updates service creation script with better error handling
- (docs) Updates installation instructions
- (refactor) Removes numpy-quaternion from dependencies and implements rotations using numpy
- (docs) Updates logo icon and adds 'config from file' page to docs
- (fix) Adds wait for node activation after restart and fixes optional arguments parsing in Component
- (docs) Updates events docs
- (docs) Adds international readmes
- (chore) Removes pip based test dependencies for ROS build farm
- (docs) Updates readme
- Contributors: ahr, mkabtoul
0.3.0 (2025-06-18)
- (chore) Updates installation instructions and CI
- (fix) Removes NoneType from types for compatibility with python < 3.10
- (fix) Add missing pyyaml dependency
- (feature) Adds config parsing from toml, json and yaml and removes Omegaconf dependency
- (fix) Add missing action decorator to methods
- (docs) Updates img names
- (docs) Updates readme
- (chore) Adds a sweeter name for ROS Sugar .. Sugarcoat
- (docs) Minor edits
- (docs) Adds documentation for creating systemd services with scripts
- (docs) Fixes size of logo
- (docs) Fixes warnings in docs
- (docs) Minor fix
- (docs) Updates supported types docs
- (fix) Fixes minor typo
- (fix) Fixes logging level parsing
- (feature) Adds node logging level and rclpy logging level to component config
- (fix) Adds BGR2RGB tranformation for yuv422_yuy2 encoding
- (docs) Removes unused extension
- (docs) Adds docs for components services and pkg advantages
- Merge branch 'feature/system_management' of github.com:automatika-robotics/ros-sugar into feature/system_management
- (fix) Fixes transformation quaternion parsing
- (feature) Adds utility method for processing all ROS image encodings
- (feature) Adds transformation/rotation propertires to TFListener
- (fix) Fixes lifecycle transitioin callback in component
- (chore) Adds msgpack-numpy and attrs as deb package dependencies
- (fix) Handles lifecycle actions start/stop/restart from the launcher
- (fix) Adds action goal lock to handle aborting ongoing goals and executing new incoming goals
- Contributors: ahr, mkabtoul
0.2.9 (2025-02-18)
- (docs) Updates supported types docs and adds docstrings
- (feature) Adds a script to make any python script a systemd service
- (fix) Minor fix to check for action server creation before destruction
- (fix) Adds algorithm config from yaml if available
- (fix) Removes setproctitle as a hard dependency
- (fix) Checks for subscription in got_inputs method
- (fix) Fixes type hints for python3.8 compatibility
- Contributors: ahr, mkabtoul
0.2.8 (2025-01-28)
- (fix) Removes testing to keep build stable until dependencies are merged in rosdistro
- Contributors: ahr
0.2.7 (2025-01-28)
- (fix) Fixes ChildComponent class in tests
- (fix) Minor fix in component execution_step
- (feature) Adds pytests to package.xml and CMakeLists
- (feature) Adds tests for Actios and ComponentRunType
- (fix) Fixes health_status publishing for non timed components
- (feature) Adds pytest for all event classes and fixes existing errors
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
automatika_embodied_agents | |
kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
![]() |
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
Version | 0.3.2 |
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 | 2025-10-21 |
Dev Status | DEVELOPED |
Released | RELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors

🇨🇳 ç®€ä½“ä¸æ–‡ | 🇯🇵 日本語 |
The Sweetest Way to Build ROS2 Systems
Sugarcoat is a meta-framework that injects a whole lot of syntactic sugar into building complex, event-driven multinode systems in ROS2, all through an intuitive Python API.
Key Features
Feature | Description |
---|---|
Event-Driven Core | Built-in primitives for Events and Actions enables dynamic runtime configuration and control over your system’s Components. |
Built-in Resilience | Fallbacks and Fault Tolerance are core design concepts, ensuring your systems are robust and reliable. |
Intuitive Python API | Design your entire system—nodes, events, and actions—using clean, readable Python code. |
Dynamic Web UI (NEW!) | Automatically generate a fully dynamic, extensible web interface for monitoring and configuring your system. |
Launch Replacement | A more pythonic alternative to the ROS2 Launch API, providing greater flexibility and runtime control for real-world applications. |
Packages Built with Sugarcoat
- Kompass: A framework for building robust and comprehensive event-driven navigation stacks using an easy-to-use and intuitive Python API.
- EmbodiedAgents: A fully-loaded framework for creating interactive physical agents that can understand, remember, and act upon contextual information from their environment.
Get Started
- Learn more about the design concepts in Sugarcoat 📚
- Learn how to create your own ROS2 package using Sugarcoat 🚀
(NEW!) Introducing Dynamic Web UI for Sugarcoat Recipes
The new 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.
This feature instantly transforms your complex, multinode ROS2 system into a monitorable and configurable web application.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q\&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Vision Follower Recipe A complex system using components from both Kompass and EmbodiedAgents to control the robot motion and follow a visual target. The UI automatically renders image data, detections, and robot action commands, demonstrating its ability to handle multimedia and complex component interactions.
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.
How Sugarcoat Works
The core of Sugarcoat revolves around a few concepts:
- Component: The main execution unit (a ROS2 lifecycle node abstraction) configured with Inputs/Outputs and Fallback behaviors. Each component reports its Health Status. Learn More about Components
-
Events & Actions: Mechanisms to handle and reconfigure components dynamically at runtime. Learn More about Events Learn More about Actions - Launcher: Takes your defined Components, Events, and Actions, and executes the system using multi-threaded or multi-process execution. It works with an internal Monitor to manage component lifecycles and track events. Learn More about the Launcher
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.3.2 (2025-09-03)
- (docs) Updates events docs with new classes
- (feature) Adds ros time automatically to stamped messages in publisher
- (fix) Fixes error in publishing audio msgs as byte arrays
- (fix) Fixes Pose publisher converter
- (fix) Fixes event handle once and delay options
- (fix) Fixes condition for OnChange event trigger
- (feature) Adds events for contains any/all plus change in value
- (fix) Fixes error in geomerty transformation util
- Contributors: ahr, mkabtoul
0.3.1 (2025-06-28)
- (refactor) Corrects type hint in callbacks
- (refactor) Adds type hints to validators
- (refactor) Minor improvements and typo correction
- (refactor) Resolves todo in component actions for active flag and adds default logger for module
- (chore) Updates service creation script with better error handling
- (docs) Updates installation instructions
- (refactor) Removes numpy-quaternion from dependencies and implements rotations using numpy
- (docs) Updates logo icon and adds 'config from file' page to docs
- (fix) Adds wait for node activation after restart and fixes optional arguments parsing in Component
- (docs) Updates events docs
- (docs) Adds international readmes
- (chore) Removes pip based test dependencies for ROS build farm
- (docs) Updates readme
- Contributors: ahr, mkabtoul
0.3.0 (2025-06-18)
- (chore) Updates installation instructions and CI
- (fix) Removes NoneType from types for compatibility with python < 3.10
- (fix) Add missing pyyaml dependency
- (feature) Adds config parsing from toml, json and yaml and removes Omegaconf dependency
- (fix) Add missing action decorator to methods
- (docs) Updates img names
- (docs) Updates readme
- (chore) Adds a sweeter name for ROS Sugar .. Sugarcoat
- (docs) Minor edits
- (docs) Adds documentation for creating systemd services with scripts
- (docs) Fixes size of logo
- (docs) Fixes warnings in docs
- (docs) Minor fix
- (docs) Updates supported types docs
- (fix) Fixes minor typo
- (fix) Fixes logging level parsing
- (feature) Adds node logging level and rclpy logging level to component config
- (fix) Adds BGR2RGB tranformation for yuv422_yuy2 encoding
- (docs) Removes unused extension
- (docs) Adds docs for components services and pkg advantages
- Merge branch 'feature/system_management' of github.com:automatika-robotics/ros-sugar into feature/system_management
- (fix) Fixes transformation quaternion parsing
- (feature) Adds utility method for processing all ROS image encodings
- (feature) Adds transformation/rotation propertires to TFListener
- (fix) Fixes lifecycle transitioin callback in component
- (chore) Adds msgpack-numpy and attrs as deb package dependencies
- (fix) Handles lifecycle actions start/stop/restart from the launcher
- (fix) Adds action goal lock to handle aborting ongoing goals and executing new incoming goals
- Contributors: ahr, mkabtoul
0.2.9 (2025-02-18)
- (docs) Updates supported types docs and adds docstrings
- (feature) Adds a script to make any python script a systemd service
- (fix) Minor fix to check for action server creation before destruction
- (fix) Adds algorithm config from yaml if available
- (fix) Removes setproctitle as a hard dependency
- (fix) Checks for subscription in got_inputs method
- (fix) Fixes type hints for python3.8 compatibility
- Contributors: ahr, mkabtoul
0.2.8 (2025-01-28)
- (fix) Removes testing to keep build stable until dependencies are merged in rosdistro
- Contributors: ahr
0.2.7 (2025-01-28)
- (fix) Fixes ChildComponent class in tests
- (fix) Minor fix in component execution_step
- (feature) Adds pytests to package.xml and CMakeLists
- (feature) Adds tests for Actios and ComponentRunType
- (fix) Fixes health_status publishing for non timed components
- (feature) Adds pytest for all event classes and fixes existing errors
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
automatika_embodied_agents | |
kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
![]() |
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
Version | 0.3.2 |
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 | 2025-10-21 |
Dev Status | DEVELOPED |
Released | RELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors

🇨🇳 ç®€ä½“ä¸æ–‡ | 🇯🇵 日本語 |
The Sweetest Way to Build ROS2 Systems
Sugarcoat is a meta-framework that injects a whole lot of syntactic sugar into building complex, event-driven multinode systems in ROS2, all through an intuitive Python API.
Key Features
Feature | Description |
---|---|
Event-Driven Core | Built-in primitives for Events and Actions enables dynamic runtime configuration and control over your system’s Components. |
Built-in Resilience | Fallbacks and Fault Tolerance are core design concepts, ensuring your systems are robust and reliable. |
Intuitive Python API | Design your entire system—nodes, events, and actions—using clean, readable Python code. |
Dynamic Web UI (NEW!) | Automatically generate a fully dynamic, extensible web interface for monitoring and configuring your system. |
Launch Replacement | A more pythonic alternative to the ROS2 Launch API, providing greater flexibility and runtime control for real-world applications. |
Packages Built with Sugarcoat
- Kompass: A framework for building robust and comprehensive event-driven navigation stacks using an easy-to-use and intuitive Python API.
- EmbodiedAgents: A fully-loaded framework for creating interactive physical agents that can understand, remember, and act upon contextual information from their environment.
Get Started
- Learn more about the design concepts in Sugarcoat 📚
- Learn how to create your own ROS2 package using Sugarcoat 🚀
(NEW!) Introducing Dynamic Web UI for Sugarcoat Recipes
The new 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.
This feature instantly transforms your complex, multinode ROS2 system into a monitorable and configurable web application.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q\&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Vision Follower Recipe A complex system using components from both Kompass and EmbodiedAgents to control the robot motion and follow a visual target. The UI automatically renders image data, detections, and robot action commands, demonstrating its ability to handle multimedia and complex component interactions.
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.
How Sugarcoat Works
The core of Sugarcoat revolves around a few concepts:
- Component: The main execution unit (a ROS2 lifecycle node abstraction) configured with Inputs/Outputs and Fallback behaviors. Each component reports its Health Status. Learn More about Components
-
Events & Actions: Mechanisms to handle and reconfigure components dynamically at runtime. Learn More about Events Learn More about Actions - Launcher: Takes your defined Components, Events, and Actions, and executes the system using multi-threaded or multi-process execution. It works with an internal Monitor to manage component lifecycles and track events. Learn More about the Launcher
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.3.2 (2025-09-03)
- (docs) Updates events docs with new classes
- (feature) Adds ros time automatically to stamped messages in publisher
- (fix) Fixes error in publishing audio msgs as byte arrays
- (fix) Fixes Pose publisher converter
- (fix) Fixes event handle once and delay options
- (fix) Fixes condition for OnChange event trigger
- (feature) Adds events for contains any/all plus change in value
- (fix) Fixes error in geomerty transformation util
- Contributors: ahr, mkabtoul
0.3.1 (2025-06-28)
- (refactor) Corrects type hint in callbacks
- (refactor) Adds type hints to validators
- (refactor) Minor improvements and typo correction
- (refactor) Resolves todo in component actions for active flag and adds default logger for module
- (chore) Updates service creation script with better error handling
- (docs) Updates installation instructions
- (refactor) Removes numpy-quaternion from dependencies and implements rotations using numpy
- (docs) Updates logo icon and adds 'config from file' page to docs
- (fix) Adds wait for node activation after restart and fixes optional arguments parsing in Component
- (docs) Updates events docs
- (docs) Adds international readmes
- (chore) Removes pip based test dependencies for ROS build farm
- (docs) Updates readme
- Contributors: ahr, mkabtoul
0.3.0 (2025-06-18)
- (chore) Updates installation instructions and CI
- (fix) Removes NoneType from types for compatibility with python < 3.10
- (fix) Add missing pyyaml dependency
- (feature) Adds config parsing from toml, json and yaml and removes Omegaconf dependency
- (fix) Add missing action decorator to methods
- (docs) Updates img names
- (docs) Updates readme
- (chore) Adds a sweeter name for ROS Sugar .. Sugarcoat
- (docs) Minor edits
- (docs) Adds documentation for creating systemd services with scripts
- (docs) Fixes size of logo
- (docs) Fixes warnings in docs
- (docs) Minor fix
- (docs) Updates supported types docs
- (fix) Fixes minor typo
- (fix) Fixes logging level parsing
- (feature) Adds node logging level and rclpy logging level to component config
- (fix) Adds BGR2RGB tranformation for yuv422_yuy2 encoding
- (docs) Removes unused extension
- (docs) Adds docs for components services and pkg advantages
- Merge branch 'feature/system_management' of github.com:automatika-robotics/ros-sugar into feature/system_management
- (fix) Fixes transformation quaternion parsing
- (feature) Adds utility method for processing all ROS image encodings
- (feature) Adds transformation/rotation propertires to TFListener
- (fix) Fixes lifecycle transitioin callback in component
- (chore) Adds msgpack-numpy and attrs as deb package dependencies
- (fix) Handles lifecycle actions start/stop/restart from the launcher
- (fix) Adds action goal lock to handle aborting ongoing goals and executing new incoming goals
- Contributors: ahr, mkabtoul
0.2.9 (2025-02-18)
- (docs) Updates supported types docs and adds docstrings
- (feature) Adds a script to make any python script a systemd service
- (fix) Minor fix to check for action server creation before destruction
- (fix) Adds algorithm config from yaml if available
- (fix) Removes setproctitle as a hard dependency
- (fix) Checks for subscription in got_inputs method
- (fix) Fixes type hints for python3.8 compatibility
- Contributors: ahr, mkabtoul
0.2.8 (2025-01-28)
- (fix) Removes testing to keep build stable until dependencies are merged in rosdistro
- Contributors: ahr
0.2.7 (2025-01-28)
- (fix) Fixes ChildComponent class in tests
- (fix) Minor fix in component execution_step
- (feature) Adds pytests to package.xml and CMakeLists
- (feature) Adds tests for Actios and ComponentRunType
- (fix) Fixes health_status publishing for non timed components
- (feature) Adds pytest for all event classes and fixes existing errors
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
automatika_embodied_agents | |
kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
![]() |
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
Version | 0.3.2 |
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 | 2025-10-21 |
Dev Status | DEVELOPED |
Released | RELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors

🇨🇳 ç®€ä½“ä¸æ–‡ | 🇯🇵 日本語 |
The Sweetest Way to Build ROS2 Systems
Sugarcoat is a meta-framework that injects a whole lot of syntactic sugar into building complex, event-driven multinode systems in ROS2, all through an intuitive Python API.
Key Features
Feature | Description |
---|---|
Event-Driven Core | Built-in primitives for Events and Actions enables dynamic runtime configuration and control over your system’s Components. |
Built-in Resilience | Fallbacks and Fault Tolerance are core design concepts, ensuring your systems are robust and reliable. |
Intuitive Python API | Design your entire system—nodes, events, and actions—using clean, readable Python code. |
Dynamic Web UI (NEW!) | Automatically generate a fully dynamic, extensible web interface for monitoring and configuring your system. |
Launch Replacement | A more pythonic alternative to the ROS2 Launch API, providing greater flexibility and runtime control for real-world applications. |
Packages Built with Sugarcoat
- Kompass: A framework for building robust and comprehensive event-driven navigation stacks using an easy-to-use and intuitive Python API.
- EmbodiedAgents: A fully-loaded framework for creating interactive physical agents that can understand, remember, and act upon contextual information from their environment.
Get Started
- Learn more about the design concepts in Sugarcoat 📚
- Learn how to create your own ROS2 package using Sugarcoat 🚀
(NEW!) Introducing Dynamic Web UI for Sugarcoat Recipes
The new 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.
This feature instantly transforms your complex, multinode ROS2 system into a monitorable and configurable web application.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q\&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Vision Follower Recipe A complex system using components from both Kompass and EmbodiedAgents to control the robot motion and follow a visual target. The UI automatically renders image data, detections, and robot action commands, demonstrating its ability to handle multimedia and complex component interactions.
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.
How Sugarcoat Works
The core of Sugarcoat revolves around a few concepts:
- Component: The main execution unit (a ROS2 lifecycle node abstraction) configured with Inputs/Outputs and Fallback behaviors. Each component reports its Health Status. Learn More about Components
-
Events & Actions: Mechanisms to handle and reconfigure components dynamically at runtime. Learn More about Events Learn More about Actions - Launcher: Takes your defined Components, Events, and Actions, and executes the system using multi-threaded or multi-process execution. It works with an internal Monitor to manage component lifecycles and track events. Learn More about the Launcher
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.3.2 (2025-09-03)
- (docs) Updates events docs with new classes
- (feature) Adds ros time automatically to stamped messages in publisher
- (fix) Fixes error in publishing audio msgs as byte arrays
- (fix) Fixes Pose publisher converter
- (fix) Fixes event handle once and delay options
- (fix) Fixes condition for OnChange event trigger
- (feature) Adds events for contains any/all plus change in value
- (fix) Fixes error in geomerty transformation util
- Contributors: ahr, mkabtoul
0.3.1 (2025-06-28)
- (refactor) Corrects type hint in callbacks
- (refactor) Adds type hints to validators
- (refactor) Minor improvements and typo correction
- (refactor) Resolves todo in component actions for active flag and adds default logger for module
- (chore) Updates service creation script with better error handling
- (docs) Updates installation instructions
- (refactor) Removes numpy-quaternion from dependencies and implements rotations using numpy
- (docs) Updates logo icon and adds 'config from file' page to docs
- (fix) Adds wait for node activation after restart and fixes optional arguments parsing in Component
- (docs) Updates events docs
- (docs) Adds international readmes
- (chore) Removes pip based test dependencies for ROS build farm
- (docs) Updates readme
- Contributors: ahr, mkabtoul
0.3.0 (2025-06-18)
- (chore) Updates installation instructions and CI
- (fix) Removes NoneType from types for compatibility with python < 3.10
- (fix) Add missing pyyaml dependency
- (feature) Adds config parsing from toml, json and yaml and removes Omegaconf dependency
- (fix) Add missing action decorator to methods
- (docs) Updates img names
- (docs) Updates readme
- (chore) Adds a sweeter name for ROS Sugar .. Sugarcoat
- (docs) Minor edits
- (docs) Adds documentation for creating systemd services with scripts
- (docs) Fixes size of logo
- (docs) Fixes warnings in docs
- (docs) Minor fix
- (docs) Updates supported types docs
- (fix) Fixes minor typo
- (fix) Fixes logging level parsing
- (feature) Adds node logging level and rclpy logging level to component config
- (fix) Adds BGR2RGB tranformation for yuv422_yuy2 encoding
- (docs) Removes unused extension
- (docs) Adds docs for components services and pkg advantages
- Merge branch 'feature/system_management' of github.com:automatika-robotics/ros-sugar into feature/system_management
- (fix) Fixes transformation quaternion parsing
- (feature) Adds utility method for processing all ROS image encodings
- (feature) Adds transformation/rotation propertires to TFListener
- (fix) Fixes lifecycle transitioin callback in component
- (chore) Adds msgpack-numpy and attrs as deb package dependencies
- (fix) Handles lifecycle actions start/stop/restart from the launcher
- (fix) Adds action goal lock to handle aborting ongoing goals and executing new incoming goals
- Contributors: ahr, mkabtoul
0.2.9 (2025-02-18)
- (docs) Updates supported types docs and adds docstrings
- (feature) Adds a script to make any python script a systemd service
- (fix) Minor fix to check for action server creation before destruction
- (fix) Adds algorithm config from yaml if available
- (fix) Removes setproctitle as a hard dependency
- (fix) Checks for subscription in got_inputs method
- (fix) Fixes type hints for python3.8 compatibility
- Contributors: ahr, mkabtoul
0.2.8 (2025-01-28)
- (fix) Removes testing to keep build stable until dependencies are merged in rosdistro
- Contributors: ahr
0.2.7 (2025-01-28)
- (fix) Fixes ChildComponent class in tests
- (fix) Minor fix in component execution_step
- (feature) Adds pytests to package.xml and CMakeLists
- (feature) Adds tests for Actios and ComponentRunType
- (fix) Fixes health_status publishing for non timed components
- (feature) Adds pytest for all event classes and fixes existing errors
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
automatika_embodied_agents | |
kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
![]() |
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
Version | 0.3.2 |
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 | 2025-10-21 |
Dev Status | DEVELOPED |
Released | RELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors

🇨🇳 ç®€ä½“ä¸æ–‡ | 🇯🇵 日本語 |
The Sweetest Way to Build ROS2 Systems
Sugarcoat is a meta-framework that injects a whole lot of syntactic sugar into building complex, event-driven multinode systems in ROS2, all through an intuitive Python API.
Key Features
Feature | Description |
---|---|
Event-Driven Core | Built-in primitives for Events and Actions enables dynamic runtime configuration and control over your system’s Components. |
Built-in Resilience | Fallbacks and Fault Tolerance are core design concepts, ensuring your systems are robust and reliable. |
Intuitive Python API | Design your entire system—nodes, events, and actions—using clean, readable Python code. |
Dynamic Web UI (NEW!) | Automatically generate a fully dynamic, extensible web interface for monitoring and configuring your system. |
Launch Replacement | A more pythonic alternative to the ROS2 Launch API, providing greater flexibility and runtime control for real-world applications. |
Packages Built with Sugarcoat
- Kompass: A framework for building robust and comprehensive event-driven navigation stacks using an easy-to-use and intuitive Python API.
- EmbodiedAgents: A fully-loaded framework for creating interactive physical agents that can understand, remember, and act upon contextual information from their environment.
Get Started
- Learn more about the design concepts in Sugarcoat 📚
- Learn how to create your own ROS2 package using Sugarcoat 🚀
(NEW!) Introducing Dynamic Web UI for Sugarcoat Recipes
The new 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.
This feature instantly transforms your complex, multinode ROS2 system into a monitorable and configurable web application.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q\&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Vision Follower Recipe A complex system using components from both Kompass and EmbodiedAgents to control the robot motion and follow a visual target. The UI automatically renders image data, detections, and robot action commands, demonstrating its ability to handle multimedia and complex component interactions.
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.
How Sugarcoat Works
The core of Sugarcoat revolves around a few concepts:
- Component: The main execution unit (a ROS2 lifecycle node abstraction) configured with Inputs/Outputs and Fallback behaviors. Each component reports its Health Status. Learn More about Components
-
Events & Actions: Mechanisms to handle and reconfigure components dynamically at runtime. Learn More about Events Learn More about Actions - Launcher: Takes your defined Components, Events, and Actions, and executes the system using multi-threaded or multi-process execution. It works with an internal Monitor to manage component lifecycles and track events. Learn More about the Launcher
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.3.2 (2025-09-03)
- (docs) Updates events docs with new classes
- (feature) Adds ros time automatically to stamped messages in publisher
- (fix) Fixes error in publishing audio msgs as byte arrays
- (fix) Fixes Pose publisher converter
- (fix) Fixes event handle once and delay options
- (fix) Fixes condition for OnChange event trigger
- (feature) Adds events for contains any/all plus change in value
- (fix) Fixes error in geomerty transformation util
- Contributors: ahr, mkabtoul
0.3.1 (2025-06-28)
- (refactor) Corrects type hint in callbacks
- (refactor) Adds type hints to validators
- (refactor) Minor improvements and typo correction
- (refactor) Resolves todo in component actions for active flag and adds default logger for module
- (chore) Updates service creation script with better error handling
- (docs) Updates installation instructions
- (refactor) Removes numpy-quaternion from dependencies and implements rotations using numpy
- (docs) Updates logo icon and adds 'config from file' page to docs
- (fix) Adds wait for node activation after restart and fixes optional arguments parsing in Component
- (docs) Updates events docs
- (docs) Adds international readmes
- (chore) Removes pip based test dependencies for ROS build farm
- (docs) Updates readme
- Contributors: ahr, mkabtoul
0.3.0 (2025-06-18)
- (chore) Updates installation instructions and CI
- (fix) Removes NoneType from types for compatibility with python < 3.10
- (fix) Add missing pyyaml dependency
- (feature) Adds config parsing from toml, json and yaml and removes Omegaconf dependency
- (fix) Add missing action decorator to methods
- (docs) Updates img names
- (docs) Updates readme
- (chore) Adds a sweeter name for ROS Sugar .. Sugarcoat
- (docs) Minor edits
- (docs) Adds documentation for creating systemd services with scripts
- (docs) Fixes size of logo
- (docs) Fixes warnings in docs
- (docs) Minor fix
- (docs) Updates supported types docs
- (fix) Fixes minor typo
- (fix) Fixes logging level parsing
- (feature) Adds node logging level and rclpy logging level to component config
- (fix) Adds BGR2RGB tranformation for yuv422_yuy2 encoding
- (docs) Removes unused extension
- (docs) Adds docs for components services and pkg advantages
- Merge branch 'feature/system_management' of github.com:automatika-robotics/ros-sugar into feature/system_management
- (fix) Fixes transformation quaternion parsing
- (feature) Adds utility method for processing all ROS image encodings
- (feature) Adds transformation/rotation propertires to TFListener
- (fix) Fixes lifecycle transitioin callback in component
- (chore) Adds msgpack-numpy and attrs as deb package dependencies
- (fix) Handles lifecycle actions start/stop/restart from the launcher
- (fix) Adds action goal lock to handle aborting ongoing goals and executing new incoming goals
- Contributors: ahr, mkabtoul
0.2.9 (2025-02-18)
- (docs) Updates supported types docs and adds docstrings
- (feature) Adds a script to make any python script a systemd service
- (fix) Minor fix to check for action server creation before destruction
- (fix) Adds algorithm config from yaml if available
- (fix) Removes setproctitle as a hard dependency
- (fix) Checks for subscription in got_inputs method
- (fix) Fixes type hints for python3.8 compatibility
- Contributors: ahr, mkabtoul
0.2.8 (2025-01-28)
- (fix) Removes testing to keep build stable until dependencies are merged in rosdistro
- Contributors: ahr
0.2.7 (2025-01-28)
- (fix) Fixes ChildComponent class in tests
- (fix) Minor fix in component execution_step
- (feature) Adds pytests to package.xml and CMakeLists
- (feature) Adds tests for Actios and ComponentRunType
- (fix) Fixes health_status publishing for non timed components
- (feature) Adds pytest for all event classes and fixes existing errors
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
automatika_embodied_agents | |
kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
![]() |
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
Version | 0.3.2 |
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 | 2025-10-21 |
Dev Status | DEVELOPED |
Released | RELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors

🇨🇳 ç®€ä½“ä¸æ–‡ | 🇯🇵 日本語 |
The Sweetest Way to Build ROS2 Systems
Sugarcoat is a meta-framework that injects a whole lot of syntactic sugar into building complex, event-driven multinode systems in ROS2, all through an intuitive Python API.
Key Features
Feature | Description |
---|---|
Event-Driven Core | Built-in primitives for Events and Actions enables dynamic runtime configuration and control over your system’s Components. |
Built-in Resilience | Fallbacks and Fault Tolerance are core design concepts, ensuring your systems are robust and reliable. |
Intuitive Python API | Design your entire system—nodes, events, and actions—using clean, readable Python code. |
Dynamic Web UI (NEW!) | Automatically generate a fully dynamic, extensible web interface for monitoring and configuring your system. |
Launch Replacement | A more pythonic alternative to the ROS2 Launch API, providing greater flexibility and runtime control for real-world applications. |
Packages Built with Sugarcoat
- Kompass: A framework for building robust and comprehensive event-driven navigation stacks using an easy-to-use and intuitive Python API.
- EmbodiedAgents: A fully-loaded framework for creating interactive physical agents that can understand, remember, and act upon contextual information from their environment.
Get Started
- Learn more about the design concepts in Sugarcoat 📚
- Learn how to create your own ROS2 package using Sugarcoat 🚀
(NEW!) Introducing Dynamic Web UI for Sugarcoat Recipes
The new 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.
This feature instantly transforms your complex, multinode ROS2 system into a monitorable and configurable web application.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q\&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Vision Follower Recipe A complex system using components from both Kompass and EmbodiedAgents to control the robot motion and follow a visual target. The UI automatically renders image data, detections, and robot action commands, demonstrating its ability to handle multimedia and complex component interactions.
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.
How Sugarcoat Works
The core of Sugarcoat revolves around a few concepts:
- Component: The main execution unit (a ROS2 lifecycle node abstraction) configured with Inputs/Outputs and Fallback behaviors. Each component reports its Health Status. Learn More about Components
-
Events & Actions: Mechanisms to handle and reconfigure components dynamically at runtime. Learn More about Events Learn More about Actions - Launcher: Takes your defined Components, Events, and Actions, and executes the system using multi-threaded or multi-process execution. It works with an internal Monitor to manage component lifecycles and track events. Learn More about the Launcher
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.3.2 (2025-09-03)
- (docs) Updates events docs with new classes
- (feature) Adds ros time automatically to stamped messages in publisher
- (fix) Fixes error in publishing audio msgs as byte arrays
- (fix) Fixes Pose publisher converter
- (fix) Fixes event handle once and delay options
- (fix) Fixes condition for OnChange event trigger
- (feature) Adds events for contains any/all plus change in value
- (fix) Fixes error in geomerty transformation util
- Contributors: ahr, mkabtoul
0.3.1 (2025-06-28)
- (refactor) Corrects type hint in callbacks
- (refactor) Adds type hints to validators
- (refactor) Minor improvements and typo correction
- (refactor) Resolves todo in component actions for active flag and adds default logger for module
- (chore) Updates service creation script with better error handling
- (docs) Updates installation instructions
- (refactor) Removes numpy-quaternion from dependencies and implements rotations using numpy
- (docs) Updates logo icon and adds 'config from file' page to docs
- (fix) Adds wait for node activation after restart and fixes optional arguments parsing in Component
- (docs) Updates events docs
- (docs) Adds international readmes
- (chore) Removes pip based test dependencies for ROS build farm
- (docs) Updates readme
- Contributors: ahr, mkabtoul
0.3.0 (2025-06-18)
- (chore) Updates installation instructions and CI
- (fix) Removes NoneType from types for compatibility with python < 3.10
- (fix) Add missing pyyaml dependency
- (feature) Adds config parsing from toml, json and yaml and removes Omegaconf dependency
- (fix) Add missing action decorator to methods
- (docs) Updates img names
- (docs) Updates readme
- (chore) Adds a sweeter name for ROS Sugar .. Sugarcoat
- (docs) Minor edits
- (docs) Adds documentation for creating systemd services with scripts
- (docs) Fixes size of logo
- (docs) Fixes warnings in docs
- (docs) Minor fix
- (docs) Updates supported types docs
- (fix) Fixes minor typo
- (fix) Fixes logging level parsing
- (feature) Adds node logging level and rclpy logging level to component config
- (fix) Adds BGR2RGB tranformation for yuv422_yuy2 encoding
- (docs) Removes unused extension
- (docs) Adds docs for components services and pkg advantages
- Merge branch 'feature/system_management' of github.com:automatika-robotics/ros-sugar into feature/system_management
- (fix) Fixes transformation quaternion parsing
- (feature) Adds utility method for processing all ROS image encodings
- (feature) Adds transformation/rotation propertires to TFListener
- (fix) Fixes lifecycle transitioin callback in component
- (chore) Adds msgpack-numpy and attrs as deb package dependencies
- (fix) Handles lifecycle actions start/stop/restart from the launcher
- (fix) Adds action goal lock to handle aborting ongoing goals and executing new incoming goals
- Contributors: ahr, mkabtoul
0.2.9 (2025-02-18)
- (docs) Updates supported types docs and adds docstrings
- (feature) Adds a script to make any python script a systemd service
- (fix) Minor fix to check for action server creation before destruction
- (fix) Adds algorithm config from yaml if available
- (fix) Removes setproctitle as a hard dependency
- (fix) Checks for subscription in got_inputs method
- (fix) Fixes type hints for python3.8 compatibility
- Contributors: ahr, mkabtoul
0.2.8 (2025-01-28)
- (fix) Removes testing to keep build stable until dependencies are merged in rosdistro
- Contributors: ahr
0.2.7 (2025-01-28)
- (fix) Fixes ChildComponent class in tests
- (fix) Minor fix in component execution_step
- (feature) Adds pytests to package.xml and CMakeLists
- (feature) Adds tests for Actios and ComponentRunType
- (fix) Fixes health_status publishing for non timed components
- (feature) Adds pytest for all event classes and fixes existing errors
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
automatika_embodied_agents | |
kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
![]() |
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
Version | 0.3.2 |
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 | 2025-10-21 |
Dev Status | DEVELOPED |
Released | RELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors

🇨🇳 ç®€ä½“ä¸æ–‡ | 🇯🇵 日本語 |
The Sweetest Way to Build ROS2 Systems
Sugarcoat is a meta-framework that injects a whole lot of syntactic sugar into building complex, event-driven multinode systems in ROS2, all through an intuitive Python API.
Key Features
Feature | Description |
---|---|
Event-Driven Core | Built-in primitives for Events and Actions enables dynamic runtime configuration and control over your system’s Components. |
Built-in Resilience | Fallbacks and Fault Tolerance are core design concepts, ensuring your systems are robust and reliable. |
Intuitive Python API | Design your entire system—nodes, events, and actions—using clean, readable Python code. |
Dynamic Web UI (NEW!) | Automatically generate a fully dynamic, extensible web interface for monitoring and configuring your system. |
Launch Replacement | A more pythonic alternative to the ROS2 Launch API, providing greater flexibility and runtime control for real-world applications. |
Packages Built with Sugarcoat
- Kompass: A framework for building robust and comprehensive event-driven navigation stacks using an easy-to-use and intuitive Python API.
- EmbodiedAgents: A fully-loaded framework for creating interactive physical agents that can understand, remember, and act upon contextual information from their environment.
Get Started
- Learn more about the design concepts in Sugarcoat 📚
- Learn how to create your own ROS2 package using Sugarcoat 🚀
(NEW!) Introducing Dynamic Web UI for Sugarcoat Recipes
The new 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.
This feature instantly transforms your complex, multinode ROS2 system into a monitorable and configurable web application.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q\&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Vision Follower Recipe A complex system using components from both Kompass and EmbodiedAgents to control the robot motion and follow a visual target. The UI automatically renders image data, detections, and robot action commands, demonstrating its ability to handle multimedia and complex component interactions.
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.
How Sugarcoat Works
The core of Sugarcoat revolves around a few concepts:
- Component: The main execution unit (a ROS2 lifecycle node abstraction) configured with Inputs/Outputs and Fallback behaviors. Each component reports its Health Status. Learn More about Components
-
Events & Actions: Mechanisms to handle and reconfigure components dynamically at runtime. Learn More about Events Learn More about Actions - Launcher: Takes your defined Components, Events, and Actions, and executes the system using multi-threaded or multi-process execution. It works with an internal Monitor to manage component lifecycles and track events. Learn More about the Launcher
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.3.2 (2025-09-03)
- (docs) Updates events docs with new classes
- (feature) Adds ros time automatically to stamped messages in publisher
- (fix) Fixes error in publishing audio msgs as byte arrays
- (fix) Fixes Pose publisher converter
- (fix) Fixes event handle once and delay options
- (fix) Fixes condition for OnChange event trigger
- (feature) Adds events for contains any/all plus change in value
- (fix) Fixes error in geomerty transformation util
- Contributors: ahr, mkabtoul
0.3.1 (2025-06-28)
- (refactor) Corrects type hint in callbacks
- (refactor) Adds type hints to validators
- (refactor) Minor improvements and typo correction
- (refactor) Resolves todo in component actions for active flag and adds default logger for module
- (chore) Updates service creation script with better error handling
- (docs) Updates installation instructions
- (refactor) Removes numpy-quaternion from dependencies and implements rotations using numpy
- (docs) Updates logo icon and adds 'config from file' page to docs
- (fix) Adds wait for node activation after restart and fixes optional arguments parsing in Component
- (docs) Updates events docs
- (docs) Adds international readmes
- (chore) Removes pip based test dependencies for ROS build farm
- (docs) Updates readme
- Contributors: ahr, mkabtoul
0.3.0 (2025-06-18)
- (chore) Updates installation instructions and CI
- (fix) Removes NoneType from types for compatibility with python < 3.10
- (fix) Add missing pyyaml dependency
- (feature) Adds config parsing from toml, json and yaml and removes Omegaconf dependency
- (fix) Add missing action decorator to methods
- (docs) Updates img names
- (docs) Updates readme
- (chore) Adds a sweeter name for ROS Sugar .. Sugarcoat
- (docs) Minor edits
- (docs) Adds documentation for creating systemd services with scripts
- (docs) Fixes size of logo
- (docs) Fixes warnings in docs
- (docs) Minor fix
- (docs) Updates supported types docs
- (fix) Fixes minor typo
- (fix) Fixes logging level parsing
- (feature) Adds node logging level and rclpy logging level to component config
- (fix) Adds BGR2RGB tranformation for yuv422_yuy2 encoding
- (docs) Removes unused extension
- (docs) Adds docs for components services and pkg advantages
- Merge branch 'feature/system_management' of github.com:automatika-robotics/ros-sugar into feature/system_management
- (fix) Fixes transformation quaternion parsing
- (feature) Adds utility method for processing all ROS image encodings
- (feature) Adds transformation/rotation propertires to TFListener
- (fix) Fixes lifecycle transitioin callback in component
- (chore) Adds msgpack-numpy and attrs as deb package dependencies
- (fix) Handles lifecycle actions start/stop/restart from the launcher
- (fix) Adds action goal lock to handle aborting ongoing goals and executing new incoming goals
- Contributors: ahr, mkabtoul
0.2.9 (2025-02-18)
- (docs) Updates supported types docs and adds docstrings
- (feature) Adds a script to make any python script a systemd service
- (fix) Minor fix to check for action server creation before destruction
- (fix) Adds algorithm config from yaml if available
- (fix) Removes setproctitle as a hard dependency
- (fix) Checks for subscription in got_inputs method
- (fix) Fixes type hints for python3.8 compatibility
- Contributors: ahr, mkabtoul
0.2.8 (2025-01-28)
- (fix) Removes testing to keep build stable until dependencies are merged in rosdistro
- Contributors: ahr
0.2.7 (2025-01-28)
- (fix) Fixes ChildComponent class in tests
- (fix) Minor fix in component execution_step
- (feature) Adds pytests to package.xml and CMakeLists
- (feature) Adds tests for Actios and ComponentRunType
- (fix) Fixes health_status publishing for non timed components
- (feature) Adds pytest for all event classes and fixes existing errors
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
automatika_embodied_agents | |
kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
![]() |
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
Version | 0.3.2 |
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 | 2025-10-21 |
Dev Status | DEVELOPED |
Released | RELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors

🇨🇳 ç®€ä½“ä¸æ–‡ | 🇯🇵 日本語 |
The Sweetest Way to Build ROS2 Systems
Sugarcoat is a meta-framework that injects a whole lot of syntactic sugar into building complex, event-driven multinode systems in ROS2, all through an intuitive Python API.
Key Features
Feature | Description |
---|---|
Event-Driven Core | Built-in primitives for Events and Actions enables dynamic runtime configuration and control over your system’s Components. |
Built-in Resilience | Fallbacks and Fault Tolerance are core design concepts, ensuring your systems are robust and reliable. |
Intuitive Python API | Design your entire system—nodes, events, and actions—using clean, readable Python code. |
Dynamic Web UI (NEW!) | Automatically generate a fully dynamic, extensible web interface for monitoring and configuring your system. |
Launch Replacement | A more pythonic alternative to the ROS2 Launch API, providing greater flexibility and runtime control for real-world applications. |
Packages Built with Sugarcoat
- Kompass: A framework for building robust and comprehensive event-driven navigation stacks using an easy-to-use and intuitive Python API.
- EmbodiedAgents: A fully-loaded framework for creating interactive physical agents that can understand, remember, and act upon contextual information from their environment.
Get Started
- Learn more about the design concepts in Sugarcoat 📚
- Learn how to create your own ROS2 package using Sugarcoat 🚀
(NEW!) Introducing Dynamic Web UI for Sugarcoat Recipes
The new 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.
This feature instantly transforms your complex, multinode ROS2 system into a monitorable and configurable web application.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q\&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Vision Follower Recipe A complex system using components from both Kompass and EmbodiedAgents to control the robot motion and follow a visual target. The UI automatically renders image data, detections, and robot action commands, demonstrating its ability to handle multimedia and complex component interactions.
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.
How Sugarcoat Works
The core of Sugarcoat revolves around a few concepts:
- Component: The main execution unit (a ROS2 lifecycle node abstraction) configured with Inputs/Outputs and Fallback behaviors. Each component reports its Health Status. Learn More about Components
-
Events & Actions: Mechanisms to handle and reconfigure components dynamically at runtime. Learn More about Events Learn More about Actions - Launcher: Takes your defined Components, Events, and Actions, and executes the system using multi-threaded or multi-process execution. It works with an internal Monitor to manage component lifecycles and track events. Learn More about the Launcher
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.3.2 (2025-09-03)
- (docs) Updates events docs with new classes
- (feature) Adds ros time automatically to stamped messages in publisher
- (fix) Fixes error in publishing audio msgs as byte arrays
- (fix) Fixes Pose publisher converter
- (fix) Fixes event handle once and delay options
- (fix) Fixes condition for OnChange event trigger
- (feature) Adds events for contains any/all plus change in value
- (fix) Fixes error in geomerty transformation util
- Contributors: ahr, mkabtoul
0.3.1 (2025-06-28)
- (refactor) Corrects type hint in callbacks
- (refactor) Adds type hints to validators
- (refactor) Minor improvements and typo correction
- (refactor) Resolves todo in component actions for active flag and adds default logger for module
- (chore) Updates service creation script with better error handling
- (docs) Updates installation instructions
- (refactor) Removes numpy-quaternion from dependencies and implements rotations using numpy
- (docs) Updates logo icon and adds 'config from file' page to docs
- (fix) Adds wait for node activation after restart and fixes optional arguments parsing in Component
- (docs) Updates events docs
- (docs) Adds international readmes
- (chore) Removes pip based test dependencies for ROS build farm
- (docs) Updates readme
- Contributors: ahr, mkabtoul
0.3.0 (2025-06-18)
- (chore) Updates installation instructions and CI
- (fix) Removes NoneType from types for compatibility with python < 3.10
- (fix) Add missing pyyaml dependency
- (feature) Adds config parsing from toml, json and yaml and removes Omegaconf dependency
- (fix) Add missing action decorator to methods
- (docs) Updates img names
- (docs) Updates readme
- (chore) Adds a sweeter name for ROS Sugar .. Sugarcoat
- (docs) Minor edits
- (docs) Adds documentation for creating systemd services with scripts
- (docs) Fixes size of logo
- (docs) Fixes warnings in docs
- (docs) Minor fix
- (docs) Updates supported types docs
- (fix) Fixes minor typo
- (fix) Fixes logging level parsing
- (feature) Adds node logging level and rclpy logging level to component config
- (fix) Adds BGR2RGB tranformation for yuv422_yuy2 encoding
- (docs) Removes unused extension
- (docs) Adds docs for components services and pkg advantages
- Merge branch 'feature/system_management' of github.com:automatika-robotics/ros-sugar into feature/system_management
- (fix) Fixes transformation quaternion parsing
- (feature) Adds utility method for processing all ROS image encodings
- (feature) Adds transformation/rotation propertires to TFListener
- (fix) Fixes lifecycle transitioin callback in component
- (chore) Adds msgpack-numpy and attrs as deb package dependencies
- (fix) Handles lifecycle actions start/stop/restart from the launcher
- (fix) Adds action goal lock to handle aborting ongoing goals and executing new incoming goals
- Contributors: ahr, mkabtoul
0.2.9 (2025-02-18)
- (docs) Updates supported types docs and adds docstrings
- (feature) Adds a script to make any python script a systemd service
- (fix) Minor fix to check for action server creation before destruction
- (fix) Adds algorithm config from yaml if available
- (fix) Removes setproctitle as a hard dependency
- (fix) Checks for subscription in got_inputs method
- (fix) Fixes type hints for python3.8 compatibility
- Contributors: ahr, mkabtoul
0.2.8 (2025-01-28)
- (fix) Removes testing to keep build stable until dependencies are merged in rosdistro
- Contributors: ahr
0.2.7 (2025-01-28)
- (fix) Fixes ChildComponent class in tests
- (fix) Minor fix in component execution_step
- (feature) Adds pytests to package.xml and CMakeLists
- (feature) Adds tests for Actios and ComponentRunType
- (fix) Fixes health_status publishing for non timed components
- (feature) Adds pytest for all event classes and fixes existing errors
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
automatika_embodied_agents | |
kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
![]() |
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
Version | 0.3.2 |
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 | 2025-10-21 |
Dev Status | DEVELOPED |
Released | RELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors

🇨🇳 ç®€ä½“ä¸æ–‡ | 🇯🇵 日本語 |
The Sweetest Way to Build ROS2 Systems
Sugarcoat is a meta-framework that injects a whole lot of syntactic sugar into building complex, event-driven multinode systems in ROS2, all through an intuitive Python API.
Key Features
Feature | Description |
---|---|
Event-Driven Core | Built-in primitives for Events and Actions enables dynamic runtime configuration and control over your system’s Components. |
Built-in Resilience | Fallbacks and Fault Tolerance are core design concepts, ensuring your systems are robust and reliable. |
Intuitive Python API | Design your entire system—nodes, events, and actions—using clean, readable Python code. |
Dynamic Web UI (NEW!) | Automatically generate a fully dynamic, extensible web interface for monitoring and configuring your system. |
Launch Replacement | A more pythonic alternative to the ROS2 Launch API, providing greater flexibility and runtime control for real-world applications. |
Packages Built with Sugarcoat
- Kompass: A framework for building robust and comprehensive event-driven navigation stacks using an easy-to-use and intuitive Python API.
- EmbodiedAgents: A fully-loaded framework for creating interactive physical agents that can understand, remember, and act upon contextual information from their environment.
Get Started
- Learn more about the design concepts in Sugarcoat 📚
- Learn how to create your own ROS2 package using Sugarcoat 🚀
(NEW!) Introducing Dynamic Web UI for Sugarcoat Recipes
The new 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.
This feature instantly transforms your complex, multinode ROS2 system into a monitorable and configurable web application.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q\&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Vision Follower Recipe A complex system using components from both Kompass and EmbodiedAgents to control the robot motion and follow a visual target. The UI automatically renders image data, detections, and robot action commands, demonstrating its ability to handle multimedia and complex component interactions.
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.
How Sugarcoat Works
The core of Sugarcoat revolves around a few concepts:
- Component: The main execution unit (a ROS2 lifecycle node abstraction) configured with Inputs/Outputs and Fallback behaviors. Each component reports its Health Status. Learn More about Components
-
Events & Actions: Mechanisms to handle and reconfigure components dynamically at runtime. Learn More about Events Learn More about Actions - Launcher: Takes your defined Components, Events, and Actions, and executes the system using multi-threaded or multi-process execution. It works with an internal Monitor to manage component lifecycles and track events. Learn More about the Launcher
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.3.2 (2025-09-03)
- (docs) Updates events docs with new classes
- (feature) Adds ros time automatically to stamped messages in publisher
- (fix) Fixes error in publishing audio msgs as byte arrays
- (fix) Fixes Pose publisher converter
- (fix) Fixes event handle once and delay options
- (fix) Fixes condition for OnChange event trigger
- (feature) Adds events for contains any/all plus change in value
- (fix) Fixes error in geomerty transformation util
- Contributors: ahr, mkabtoul
0.3.1 (2025-06-28)
- (refactor) Corrects type hint in callbacks
- (refactor) Adds type hints to validators
- (refactor) Minor improvements and typo correction
- (refactor) Resolves todo in component actions for active flag and adds default logger for module
- (chore) Updates service creation script with better error handling
- (docs) Updates installation instructions
- (refactor) Removes numpy-quaternion from dependencies and implements rotations using numpy
- (docs) Updates logo icon and adds 'config from file' page to docs
- (fix) Adds wait for node activation after restart and fixes optional arguments parsing in Component
- (docs) Updates events docs
- (docs) Adds international readmes
- (chore) Removes pip based test dependencies for ROS build farm
- (docs) Updates readme
- Contributors: ahr, mkabtoul
0.3.0 (2025-06-18)
- (chore) Updates installation instructions and CI
- (fix) Removes NoneType from types for compatibility with python < 3.10
- (fix) Add missing pyyaml dependency
- (feature) Adds config parsing from toml, json and yaml and removes Omegaconf dependency
- (fix) Add missing action decorator to methods
- (docs) Updates img names
- (docs) Updates readme
- (chore) Adds a sweeter name for ROS Sugar .. Sugarcoat
- (docs) Minor edits
- (docs) Adds documentation for creating systemd services with scripts
- (docs) Fixes size of logo
- (docs) Fixes warnings in docs
- (docs) Minor fix
- (docs) Updates supported types docs
- (fix) Fixes minor typo
- (fix) Fixes logging level parsing
- (feature) Adds node logging level and rclpy logging level to component config
- (fix) Adds BGR2RGB tranformation for yuv422_yuy2 encoding
- (docs) Removes unused extension
- (docs) Adds docs for components services and pkg advantages
- Merge branch 'feature/system_management' of github.com:automatika-robotics/ros-sugar into feature/system_management
- (fix) Fixes transformation quaternion parsing
- (feature) Adds utility method for processing all ROS image encodings
- (feature) Adds transformation/rotation propertires to TFListener
- (fix) Fixes lifecycle transitioin callback in component
- (chore) Adds msgpack-numpy and attrs as deb package dependencies
- (fix) Handles lifecycle actions start/stop/restart from the launcher
- (fix) Adds action goal lock to handle aborting ongoing goals and executing new incoming goals
- Contributors: ahr, mkabtoul
0.2.9 (2025-02-18)
- (docs) Updates supported types docs and adds docstrings
- (feature) Adds a script to make any python script a systemd service
- (fix) Minor fix to check for action server creation before destruction
- (fix) Adds algorithm config from yaml if available
- (fix) Removes setproctitle as a hard dependency
- (fix) Checks for subscription in got_inputs method
- (fix) Fixes type hints for python3.8 compatibility
- Contributors: ahr, mkabtoul
0.2.8 (2025-01-28)
- (fix) Removes testing to keep build stable until dependencies are merged in rosdistro
- Contributors: ahr
0.2.7 (2025-01-28)
- (fix) Fixes ChildComponent class in tests
- (fix) Minor fix in component execution_step
- (feature) Adds pytests to package.xml and CMakeLists
- (feature) Adds tests for Actios and ComponentRunType
- (fix) Fixes health_status publishing for non timed components
- (feature) Adds pytest for all event classes and fixes existing errors
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
automatika_embodied_agents | |
kompass |
Launch files
Messages
Services
Plugins
Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange
![]() |
automatika_ros_sugar package from automatika_ros_sugar repoautomatika_ros_sugar |
ROS Distro
|
Package Summary
Version | 0.3.2 |
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 | 2025-10-21 |
Dev Status | DEVELOPED |
Released | RELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Automatika Robotics
Authors

🇨🇳 ç®€ä½“ä¸æ–‡ | 🇯🇵 日本語 |
The Sweetest Way to Build ROS2 Systems
Sugarcoat is a meta-framework that injects a whole lot of syntactic sugar into building complex, event-driven multinode systems in ROS2, all through an intuitive Python API.
Key Features
Feature | Description |
---|---|
Event-Driven Core | Built-in primitives for Events and Actions enables dynamic runtime configuration and control over your system’s Components. |
Built-in Resilience | Fallbacks and Fault Tolerance are core design concepts, ensuring your systems are robust and reliable. |
Intuitive Python API | Design your entire system—nodes, events, and actions—using clean, readable Python code. |
Dynamic Web UI (NEW!) | Automatically generate a fully dynamic, extensible web interface for monitoring and configuring your system. |
Launch Replacement | A more pythonic alternative to the ROS2 Launch API, providing greater flexibility and runtime control for real-world applications. |
Packages Built with Sugarcoat
- Kompass: A framework for building robust and comprehensive event-driven navigation stacks using an easy-to-use and intuitive Python API.
- EmbodiedAgents: A fully-loaded framework for creating interactive physical agents that can understand, remember, and act upon contextual information from their environment.
Get Started
- Learn more about the design concepts in Sugarcoat 📚
- Learn how to create your own ROS2 package using Sugarcoat 🚀
(NEW!) Introducing Dynamic Web UI for Sugarcoat Recipes
The new 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.
This feature instantly transforms your complex, multinode ROS2 system into a monitorable and configurable web application.
Automatic UI Generation in Action
See how the Web UI effortlessly generates interfaces for different types of Sugarcoat recipes:
- Example 1: General Q\&A MLLM Recipe A fully functional interface generated for an MLLM agent recipe from EmbodiedAgents, automatically providing controls for settings and real-time text I/O with the robot.
- Example 2: Vision Follower Recipe A complex system using components from both Kompass and EmbodiedAgents to control the robot motion and follow a visual target. The UI automatically renders image data, detections, and robot action commands, demonstrating its ability to handle multimedia and complex component interactions.
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.
How Sugarcoat Works
The core of Sugarcoat revolves around a few concepts:
- Component: The main execution unit (a ROS2 lifecycle node abstraction) configured with Inputs/Outputs and Fallback behaviors. Each component reports its Health Status. Learn More about Components
-
Events & Actions: Mechanisms to handle and reconfigure components dynamically at runtime. Learn More about Events Learn More about Actions - Launcher: Takes your defined Components, Events, and Actions, and executes the system using multi-threaded or multi-process execution. It works with an internal Monitor to manage component lifecycles and track events. Learn More about the Launcher
File truncated at 100 lines see the full file
Changelog for package automatika_ros_sugar
0.3.2 (2025-09-03)
- (docs) Updates events docs with new classes
- (feature) Adds ros time automatically to stamped messages in publisher
- (fix) Fixes error in publishing audio msgs as byte arrays
- (fix) Fixes Pose publisher converter
- (fix) Fixes event handle once and delay options
- (fix) Fixes condition for OnChange event trigger
- (feature) Adds events for contains any/all plus change in value
- (fix) Fixes error in geomerty transformation util
- Contributors: ahr, mkabtoul
0.3.1 (2025-06-28)
- (refactor) Corrects type hint in callbacks
- (refactor) Adds type hints to validators
- (refactor) Minor improvements and typo correction
- (refactor) Resolves todo in component actions for active flag and adds default logger for module
- (chore) Updates service creation script with better error handling
- (docs) Updates installation instructions
- (refactor) Removes numpy-quaternion from dependencies and implements rotations using numpy
- (docs) Updates logo icon and adds 'config from file' page to docs
- (fix) Adds wait for node activation after restart and fixes optional arguments parsing in Component
- (docs) Updates events docs
- (docs) Adds international readmes
- (chore) Removes pip based test dependencies for ROS build farm
- (docs) Updates readme
- Contributors: ahr, mkabtoul
0.3.0 (2025-06-18)
- (chore) Updates installation instructions and CI
- (fix) Removes NoneType from types for compatibility with python < 3.10
- (fix) Add missing pyyaml dependency
- (feature) Adds config parsing from toml, json and yaml and removes Omegaconf dependency
- (fix) Add missing action decorator to methods
- (docs) Updates img names
- (docs) Updates readme
- (chore) Adds a sweeter name for ROS Sugar .. Sugarcoat
- (docs) Minor edits
- (docs) Adds documentation for creating systemd services with scripts
- (docs) Fixes size of logo
- (docs) Fixes warnings in docs
- (docs) Minor fix
- (docs) Updates supported types docs
- (fix) Fixes minor typo
- (fix) Fixes logging level parsing
- (feature) Adds node logging level and rclpy logging level to component config
- (fix) Adds BGR2RGB tranformation for yuv422_yuy2 encoding
- (docs) Removes unused extension
- (docs) Adds docs for components services and pkg advantages
- Merge branch 'feature/system_management' of github.com:automatika-robotics/ros-sugar into feature/system_management
- (fix) Fixes transformation quaternion parsing
- (feature) Adds utility method for processing all ROS image encodings
- (feature) Adds transformation/rotation propertires to TFListener
- (fix) Fixes lifecycle transitioin callback in component
- (chore) Adds msgpack-numpy and attrs as deb package dependencies
- (fix) Handles lifecycle actions start/stop/restart from the launcher
- (fix) Adds action goal lock to handle aborting ongoing goals and executing new incoming goals
- Contributors: ahr, mkabtoul
0.2.9 (2025-02-18)
- (docs) Updates supported types docs and adds docstrings
- (feature) Adds a script to make any python script a systemd service
- (fix) Minor fix to check for action server creation before destruction
- (fix) Adds algorithm config from yaml if available
- (fix) Removes setproctitle as a hard dependency
- (fix) Checks for subscription in got_inputs method
- (fix) Fixes type hints for python3.8 compatibility
- Contributors: ahr, mkabtoul
0.2.8 (2025-01-28)
- (fix) Removes testing to keep build stable until dependencies are merged in rosdistro
- Contributors: ahr
0.2.7 (2025-01-28)
- (fix) Fixes ChildComponent class in tests
- (fix) Minor fix in component execution_step
- (feature) Adds pytests to package.xml and CMakeLists
- (feature) Adds tests for Actios and ComponentRunType
- (fix) Fixes health_status publishing for non timed components
- (feature) Adds pytest for all event classes and fixes existing errors
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
automatika_embodied_agents | |
kompass |