Package symbol

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.3.0
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-06-18
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo



Sugarcoat 🍬 is a meta-framework that provides a whole lot of syntactic sugar for creating event-driven multinode systems in ROS2, using an intuitive Python API.

Packages created using 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.

Overview

Sugarcoat is built for ROS2 developers who want to create event-driven systems with multiple nodes that are easy to use, have builtin fallbacks and fault tolerance, and can be configured started with an intuitive Python API. It provides primitives for writing ROS nodes, and events/actions which can start/stop/modify the nodes, in the spirit of event driven software. Sugarcoat is also a replacement for the ROS Launch API.

A Component is the main execution unit in Sugarcoat, each component is configured with Inputs/Outputs and Fallback behaviors. Additionally, each component updates its own Health Status. Components can be handled and reconfigured dynamically at runtime using Events and Actions. Events, Actions and Components are passed to the Launcher which runs the set of components as using multi-threaded or multi-process execution. The Launcher also uses an internal Monitor to keep track of the components and monitor events.

Base Component

Base Component

Multi-Process Execution

Multi-process execution

Installation

Install python dependencies using pip as follows:

pip install 'attrs>=23.2.0' numpy-quaternion

For ROS versions >= β€˜humble’, you can install Sugarcoat with your package manager. For example on Ubuntu:

sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar

Alternatively, grab your favorite deb package from the release page and install it as follows:

sudo dpkg -i ros-$ROS_DISTRO-automatica-ros-sugar_$version$DISTRO_$ARCHITECTURE.deb

Building from source

mkdir -p ros-sugar-ws/src
cd ros-sugar-ws/src
git clone https://github.com/automatika-robotics/sugarcoat && cd ..
pip install numpy opencv-python-headless 'attrs>=23.2.0' jinja2 msgpack msgpack-numpy numpy-quaternion setproctitle pyyaml toml
colcon build
source install/setup.bash

The code in this distribution is Copyright (c) 2024 Automatika Robotics unless explicitly indicated otherwise.

Sugarcoat is made available under the MIT license. Details can be found in the LICENSE file.

Contributions

Sugarcoat has been developed in collaboration between Automatika Robotics and Inria. Contributions from the community are most welcome.

CHANGELOG

Changelog for package automatika_ros_sugar

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
  • (feature) Adds support for std_msgs MultiArray messages
  • (fix) Fixes Event trigger value check and OnGreater event serialization
  • Contributors: Maria Kabtoul, mkabtoul

0.2.6 (2025-01-17)

  • (fix) Fixes type hint
  • (fix) Fixes getting available events
  • (feature) checks for components and events duplicate names
  • (fix) Changes type of monitor components to activate
  • (chore) Fixes OS versions in CI
  • (chore) Adds arms builds to debian packaging
  • (refactor) Changes the fuction to create events from jsons
  • (fix) Fixes events parsing using serialized events as dictionary keys
  • (docs) Adds verification tag
  • (docs) Adds external links to docs
  • (docs) Adds source link to docs
  • Contributors: ahr, mkabtoul

0.2.5 (2025-01-07)

  • (fix) Gets imports and default values based on installed distro
  • (fix) Fix launch and launch_ros imports based on ros distro
  • Contributors: ahr, mkabtoul

0.2.4 (2024-12-27)

  • (fix) Adds algorithm auto re-configuration from YAML file
  • (fix) Fixes callback got_msg property
  • (feature) Adds topics callbacks/conversions reparsing to component Supports running components from different packages in one script

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

Package symbol

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
jazzy

Package Summary

Tags No category tags.
Version 0.3.0
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-06-18
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo



Sugarcoat 🍬 is a meta-framework that provides a whole lot of syntactic sugar for creating event-driven multinode systems in ROS2, using an intuitive Python API.

Packages created using 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.

Overview

Sugarcoat is built for ROS2 developers who want to create event-driven systems with multiple nodes that are easy to use, have builtin fallbacks and fault tolerance, and can be configured started with an intuitive Python API. It provides primitives for writing ROS nodes, and events/actions which can start/stop/modify the nodes, in the spirit of event driven software. Sugarcoat is also a replacement for the ROS Launch API.

A Component is the main execution unit in Sugarcoat, each component is configured with Inputs/Outputs and Fallback behaviors. Additionally, each component updates its own Health Status. Components can be handled and reconfigured dynamically at runtime using Events and Actions. Events, Actions and Components are passed to the Launcher which runs the set of components as using multi-threaded or multi-process execution. The Launcher also uses an internal Monitor to keep track of the components and monitor events.

Base Component

Base Component

Multi-Process Execution

Multi-process execution

Installation

Install python dependencies using pip as follows:

pip install 'attrs>=23.2.0' numpy-quaternion

For ROS versions >= β€˜humble’, you can install Sugarcoat with your package manager. For example on Ubuntu:

sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar

Alternatively, grab your favorite deb package from the release page and install it as follows:

sudo dpkg -i ros-$ROS_DISTRO-automatica-ros-sugar_$version$DISTRO_$ARCHITECTURE.deb

Building from source

mkdir -p ros-sugar-ws/src
cd ros-sugar-ws/src
git clone https://github.com/automatika-robotics/sugarcoat && cd ..
pip install numpy opencv-python-headless 'attrs>=23.2.0' jinja2 msgpack msgpack-numpy numpy-quaternion setproctitle pyyaml toml
colcon build
source install/setup.bash

The code in this distribution is Copyright (c) 2024 Automatika Robotics unless explicitly indicated otherwise.

Sugarcoat is made available under the MIT license. Details can be found in the LICENSE file.

Contributions

Sugarcoat has been developed in collaboration between Automatika Robotics and Inria. Contributions from the community are most welcome.

CHANGELOG

Changelog for package automatika_ros_sugar

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
  • (feature) Adds support for std_msgs MultiArray messages
  • (fix) Fixes Event trigger value check and OnGreater event serialization
  • Contributors: Maria Kabtoul, mkabtoul

0.2.6 (2025-01-17)

  • (fix) Fixes type hint
  • (fix) Fixes getting available events
  • (feature) checks for components and events duplicate names
  • (fix) Changes type of monitor components to activate
  • (chore) Fixes OS versions in CI
  • (chore) Adds arms builds to debian packaging
  • (refactor) Changes the fuction to create events from jsons
  • (fix) Fixes events parsing using serialized events as dictionary keys
  • (docs) Adds verification tag
  • (docs) Adds external links to docs
  • (docs) Adds source link to docs
  • Contributors: ahr, mkabtoul

0.2.5 (2025-01-07)

  • (fix) Gets imports and default values based on installed distro
  • (fix) Fix launch and launch_ros imports based on ros distro
  • Contributors: ahr, mkabtoul

0.2.4 (2024-12-27)

  • (fix) Adds algorithm auto re-configuration from YAML file
  • (fix) Fixes callback got_msg property
  • (feature) Adds topics callbacks/conversions reparsing to component Supports running components from different packages in one script

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

Package symbol

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
kilted

Package Summary

Tags No category tags.
Version 0.3.0
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-06-18
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo



Sugarcoat 🍬 is a meta-framework that provides a whole lot of syntactic sugar for creating event-driven multinode systems in ROS2, using an intuitive Python API.

Packages created using 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.

Overview

Sugarcoat is built for ROS2 developers who want to create event-driven systems with multiple nodes that are easy to use, have builtin fallbacks and fault tolerance, and can be configured started with an intuitive Python API. It provides primitives for writing ROS nodes, and events/actions which can start/stop/modify the nodes, in the spirit of event driven software. Sugarcoat is also a replacement for the ROS Launch API.

A Component is the main execution unit in Sugarcoat, each component is configured with Inputs/Outputs and Fallback behaviors. Additionally, each component updates its own Health Status. Components can be handled and reconfigured dynamically at runtime using Events and Actions. Events, Actions and Components are passed to the Launcher which runs the set of components as using multi-threaded or multi-process execution. The Launcher also uses an internal Monitor to keep track of the components and monitor events.

Base Component

Base Component

Multi-Process Execution

Multi-process execution

Installation

Install python dependencies using pip as follows:

pip install 'attrs>=23.2.0' numpy-quaternion

For ROS versions >= β€˜humble’, you can install Sugarcoat with your package manager. For example on Ubuntu:

sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar

Alternatively, grab your favorite deb package from the release page and install it as follows:

sudo dpkg -i ros-$ROS_DISTRO-automatica-ros-sugar_$version$DISTRO_$ARCHITECTURE.deb

Building from source

mkdir -p ros-sugar-ws/src
cd ros-sugar-ws/src
git clone https://github.com/automatika-robotics/sugarcoat && cd ..
pip install numpy opencv-python-headless 'attrs>=23.2.0' jinja2 msgpack msgpack-numpy numpy-quaternion setproctitle pyyaml toml
colcon build
source install/setup.bash

The code in this distribution is Copyright (c) 2024 Automatika Robotics unless explicitly indicated otherwise.

Sugarcoat is made available under the MIT license. Details can be found in the LICENSE file.

Contributions

Sugarcoat has been developed in collaboration between Automatika Robotics and Inria. Contributions from the community are most welcome.

CHANGELOG

Changelog for package automatika_ros_sugar

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
  • (feature) Adds support for std_msgs MultiArray messages
  • (fix) Fixes Event trigger value check and OnGreater event serialization
  • Contributors: Maria Kabtoul, mkabtoul

0.2.6 (2025-01-17)

  • (fix) Fixes type hint
  • (fix) Fixes getting available events
  • (feature) checks for components and events duplicate names
  • (fix) Changes type of monitor components to activate
  • (chore) Fixes OS versions in CI
  • (chore) Adds arms builds to debian packaging
  • (refactor) Changes the fuction to create events from jsons
  • (fix) Fixes events parsing using serialized events as dictionary keys
  • (docs) Adds verification tag
  • (docs) Adds external links to docs
  • (docs) Adds source link to docs
  • Contributors: ahr, mkabtoul

0.2.5 (2025-01-07)

  • (fix) Gets imports and default values based on installed distro
  • (fix) Fix launch and launch_ros imports based on ros distro
  • Contributors: ahr, mkabtoul

0.2.4 (2024-12-27)

  • (fix) Adds algorithm auto re-configuration from YAML file
  • (fix) Fixes callback got_msg property
  • (feature) Adds topics callbacks/conversions reparsing to component Supports running components from different packages in one script

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

Package symbol

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
rolling

Package Summary

Tags No category tags.
Version 0.3.0
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-06-18
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo



Sugarcoat 🍬 is a meta-framework that provides a whole lot of syntactic sugar for creating event-driven multinode systems in ROS2, using an intuitive Python API.

Packages created using 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.

Overview

Sugarcoat is built for ROS2 developers who want to create event-driven systems with multiple nodes that are easy to use, have builtin fallbacks and fault tolerance, and can be configured started with an intuitive Python API. It provides primitives for writing ROS nodes, and events/actions which can start/stop/modify the nodes, in the spirit of event driven software. Sugarcoat is also a replacement for the ROS Launch API.

A Component is the main execution unit in Sugarcoat, each component is configured with Inputs/Outputs and Fallback behaviors. Additionally, each component updates its own Health Status. Components can be handled and reconfigured dynamically at runtime using Events and Actions. Events, Actions and Components are passed to the Launcher which runs the set of components as using multi-threaded or multi-process execution. The Launcher also uses an internal Monitor to keep track of the components and monitor events.

Base Component

Base Component

Multi-Process Execution

Multi-process execution

Installation

Install python dependencies using pip as follows:

pip install 'attrs>=23.2.0' numpy-quaternion

For ROS versions >= β€˜humble’, you can install Sugarcoat with your package manager. For example on Ubuntu:

sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar

Alternatively, grab your favorite deb package from the release page and install it as follows:

sudo dpkg -i ros-$ROS_DISTRO-automatica-ros-sugar_$version$DISTRO_$ARCHITECTURE.deb

Building from source

mkdir -p ros-sugar-ws/src
cd ros-sugar-ws/src
git clone https://github.com/automatika-robotics/sugarcoat && cd ..
pip install numpy opencv-python-headless 'attrs>=23.2.0' jinja2 msgpack msgpack-numpy numpy-quaternion setproctitle pyyaml toml
colcon build
source install/setup.bash

The code in this distribution is Copyright (c) 2024 Automatika Robotics unless explicitly indicated otherwise.

Sugarcoat is made available under the MIT license. Details can be found in the LICENSE file.

Contributions

Sugarcoat has been developed in collaboration between Automatika Robotics and Inria. Contributions from the community are most welcome.

CHANGELOG

Changelog for package automatika_ros_sugar

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
  • (feature) Adds support for std_msgs MultiArray messages
  • (fix) Fixes Event trigger value check and OnGreater event serialization
  • Contributors: Maria Kabtoul, mkabtoul

0.2.6 (2025-01-17)

  • (fix) Fixes type hint
  • (fix) Fixes getting available events
  • (feature) checks for components and events duplicate names
  • (fix) Changes type of monitor components to activate
  • (chore) Fixes OS versions in CI
  • (chore) Adds arms builds to debian packaging
  • (refactor) Changes the fuction to create events from jsons
  • (fix) Fixes events parsing using serialized events as dictionary keys
  • (docs) Adds verification tag
  • (docs) Adds external links to docs
  • (docs) Adds source link to docs
  • Contributors: ahr, mkabtoul

0.2.5 (2025-01-07)

  • (fix) Gets imports and default values based on installed distro
  • (fix) Fix launch and launch_ros imports based on ros distro
  • Contributors: ahr, mkabtoul

0.2.4 (2024-12-27)

  • (fix) Adds algorithm auto re-configuration from YAML file
  • (fix) Fixes callback got_msg property
  • (feature) Adds topics callbacks/conversions reparsing to component Supports running components from different packages in one script

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.3.0
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-06-18
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo



Sugarcoat 🍬 is a meta-framework that provides a whole lot of syntactic sugar for creating event-driven multinode systems in ROS2, using an intuitive Python API.

Packages created using 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.

Overview

Sugarcoat is built for ROS2 developers who want to create event-driven systems with multiple nodes that are easy to use, have builtin fallbacks and fault tolerance, and can be configured started with an intuitive Python API. It provides primitives for writing ROS nodes, and events/actions which can start/stop/modify the nodes, in the spirit of event driven software. Sugarcoat is also a replacement for the ROS Launch API.

A Component is the main execution unit in Sugarcoat, each component is configured with Inputs/Outputs and Fallback behaviors. Additionally, each component updates its own Health Status. Components can be handled and reconfigured dynamically at runtime using Events and Actions. Events, Actions and Components are passed to the Launcher which runs the set of components as using multi-threaded or multi-process execution. The Launcher also uses an internal Monitor to keep track of the components and monitor events.

Base Component

Base Component

Multi-Process Execution

Multi-process execution

Installation

Install python dependencies using pip as follows:

pip install 'attrs>=23.2.0' numpy-quaternion

For ROS versions >= β€˜humble’, you can install Sugarcoat with your package manager. For example on Ubuntu:

sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar

Alternatively, grab your favorite deb package from the release page and install it as follows:

sudo dpkg -i ros-$ROS_DISTRO-automatica-ros-sugar_$version$DISTRO_$ARCHITECTURE.deb

Building from source

mkdir -p ros-sugar-ws/src
cd ros-sugar-ws/src
git clone https://github.com/automatika-robotics/sugarcoat && cd ..
pip install numpy opencv-python-headless 'attrs>=23.2.0' jinja2 msgpack msgpack-numpy numpy-quaternion setproctitle pyyaml toml
colcon build
source install/setup.bash

The code in this distribution is Copyright (c) 2024 Automatika Robotics unless explicitly indicated otherwise.

Sugarcoat is made available under the MIT license. Details can be found in the LICENSE file.

Contributions

Sugarcoat has been developed in collaboration between Automatika Robotics and Inria. Contributions from the community are most welcome.

CHANGELOG

Changelog for package automatika_ros_sugar

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
  • (feature) Adds support for std_msgs MultiArray messages
  • (fix) Fixes Event trigger value check and OnGreater event serialization
  • Contributors: Maria Kabtoul, mkabtoul

0.2.6 (2025-01-17)

  • (fix) Fixes type hint
  • (fix) Fixes getting available events
  • (feature) checks for components and events duplicate names
  • (fix) Changes type of monitor components to activate
  • (chore) Fixes OS versions in CI
  • (chore) Adds arms builds to debian packaging
  • (refactor) Changes the fuction to create events from jsons
  • (fix) Fixes events parsing using serialized events as dictionary keys
  • (docs) Adds verification tag
  • (docs) Adds external links to docs
  • (docs) Adds source link to docs
  • Contributors: ahr, mkabtoul

0.2.5 (2025-01-07)

  • (fix) Gets imports and default values based on installed distro
  • (fix) Fix launch and launch_ros imports based on ros distro
  • Contributors: ahr, mkabtoul

0.2.4 (2024-12-27)

  • (fix) Adds algorithm auto re-configuration from YAML file
  • (fix) Fixes callback got_msg property
  • (feature) Adds topics callbacks/conversions reparsing to component Supports running components from different packages in one script

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.3.0
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-06-18
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo



Sugarcoat 🍬 is a meta-framework that provides a whole lot of syntactic sugar for creating event-driven multinode systems in ROS2, using an intuitive Python API.

Packages created using 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.

Overview

Sugarcoat is built for ROS2 developers who want to create event-driven systems with multiple nodes that are easy to use, have builtin fallbacks and fault tolerance, and can be configured started with an intuitive Python API. It provides primitives for writing ROS nodes, and events/actions which can start/stop/modify the nodes, in the spirit of event driven software. Sugarcoat is also a replacement for the ROS Launch API.

A Component is the main execution unit in Sugarcoat, each component is configured with Inputs/Outputs and Fallback behaviors. Additionally, each component updates its own Health Status. Components can be handled and reconfigured dynamically at runtime using Events and Actions. Events, Actions and Components are passed to the Launcher which runs the set of components as using multi-threaded or multi-process execution. The Launcher also uses an internal Monitor to keep track of the components and monitor events.

Base Component

Base Component

Multi-Process Execution

Multi-process execution

Installation

Install python dependencies using pip as follows:

pip install 'attrs>=23.2.0' numpy-quaternion

For ROS versions >= β€˜humble’, you can install Sugarcoat with your package manager. For example on Ubuntu:

sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar

Alternatively, grab your favorite deb package from the release page and install it as follows:

sudo dpkg -i ros-$ROS_DISTRO-automatica-ros-sugar_$version$DISTRO_$ARCHITECTURE.deb

Building from source

mkdir -p ros-sugar-ws/src
cd ros-sugar-ws/src
git clone https://github.com/automatika-robotics/sugarcoat && cd ..
pip install numpy opencv-python-headless 'attrs>=23.2.0' jinja2 msgpack msgpack-numpy numpy-quaternion setproctitle pyyaml toml
colcon build
source install/setup.bash

The code in this distribution is Copyright (c) 2024 Automatika Robotics unless explicitly indicated otherwise.

Sugarcoat is made available under the MIT license. Details can be found in the LICENSE file.

Contributions

Sugarcoat has been developed in collaboration between Automatika Robotics and Inria. Contributions from the community are most welcome.

CHANGELOG

Changelog for package automatika_ros_sugar

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
  • (feature) Adds support for std_msgs MultiArray messages
  • (fix) Fixes Event trigger value check and OnGreater event serialization
  • Contributors: Maria Kabtoul, mkabtoul

0.2.6 (2025-01-17)

  • (fix) Fixes type hint
  • (fix) Fixes getting available events
  • (feature) checks for components and events duplicate names
  • (fix) Changes type of monitor components to activate
  • (chore) Fixes OS versions in CI
  • (chore) Adds arms builds to debian packaging
  • (refactor) Changes the fuction to create events from jsons
  • (fix) Fixes events parsing using serialized events as dictionary keys
  • (docs) Adds verification tag
  • (docs) Adds external links to docs
  • (docs) Adds source link to docs
  • Contributors: ahr, mkabtoul

0.2.5 (2025-01-07)

  • (fix) Gets imports and default values based on installed distro
  • (fix) Fix launch and launch_ros imports based on ros distro
  • Contributors: ahr, mkabtoul

0.2.4 (2024-12-27)

  • (fix) Adds algorithm auto re-configuration from YAML file
  • (fix) Fixes callback got_msg property
  • (feature) Adds topics callbacks/conversions reparsing to component Supports running components from different packages in one script

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.3.0
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-06-18
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo



Sugarcoat 🍬 is a meta-framework that provides a whole lot of syntactic sugar for creating event-driven multinode systems in ROS2, using an intuitive Python API.

Packages created using 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.

Overview

Sugarcoat is built for ROS2 developers who want to create event-driven systems with multiple nodes that are easy to use, have builtin fallbacks and fault tolerance, and can be configured started with an intuitive Python API. It provides primitives for writing ROS nodes, and events/actions which can start/stop/modify the nodes, in the spirit of event driven software. Sugarcoat is also a replacement for the ROS Launch API.

A Component is the main execution unit in Sugarcoat, each component is configured with Inputs/Outputs and Fallback behaviors. Additionally, each component updates its own Health Status. Components can be handled and reconfigured dynamically at runtime using Events and Actions. Events, Actions and Components are passed to the Launcher which runs the set of components as using multi-threaded or multi-process execution. The Launcher also uses an internal Monitor to keep track of the components and monitor events.

Base Component

Base Component

Multi-Process Execution

Multi-process execution

Installation

Install python dependencies using pip as follows:

pip install 'attrs>=23.2.0' numpy-quaternion

For ROS versions >= β€˜humble’, you can install Sugarcoat with your package manager. For example on Ubuntu:

sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar

Alternatively, grab your favorite deb package from the release page and install it as follows:

sudo dpkg -i ros-$ROS_DISTRO-automatica-ros-sugar_$version$DISTRO_$ARCHITECTURE.deb

Building from source

mkdir -p ros-sugar-ws/src
cd ros-sugar-ws/src
git clone https://github.com/automatika-robotics/sugarcoat && cd ..
pip install numpy opencv-python-headless 'attrs>=23.2.0' jinja2 msgpack msgpack-numpy numpy-quaternion setproctitle pyyaml toml
colcon build
source install/setup.bash

The code in this distribution is Copyright (c) 2024 Automatika Robotics unless explicitly indicated otherwise.

Sugarcoat is made available under the MIT license. Details can be found in the LICENSE file.

Contributions

Sugarcoat has been developed in collaboration between Automatika Robotics and Inria. Contributions from the community are most welcome.

CHANGELOG

Changelog for package automatika_ros_sugar

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
  • (feature) Adds support for std_msgs MultiArray messages
  • (fix) Fixes Event trigger value check and OnGreater event serialization
  • Contributors: Maria Kabtoul, mkabtoul

0.2.6 (2025-01-17)

  • (fix) Fixes type hint
  • (fix) Fixes getting available events
  • (feature) checks for components and events duplicate names
  • (fix) Changes type of monitor components to activate
  • (chore) Fixes OS versions in CI
  • (chore) Adds arms builds to debian packaging
  • (refactor) Changes the fuction to create events from jsons
  • (fix) Fixes events parsing using serialized events as dictionary keys
  • (docs) Adds verification tag
  • (docs) Adds external links to docs
  • (docs) Adds source link to docs
  • Contributors: ahr, mkabtoul

0.2.5 (2025-01-07)

  • (fix) Gets imports and default values based on installed distro
  • (fix) Fix launch and launch_ros imports based on ros distro
  • Contributors: ahr, mkabtoul

0.2.4 (2024-12-27)

  • (fix) Adds algorithm auto re-configuration from YAML file
  • (fix) Fixes callback got_msg property
  • (feature) Adds topics callbacks/conversions reparsing to component Supports running components from different packages in one script

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.3.0
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-06-18
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo



Sugarcoat 🍬 is a meta-framework that provides a whole lot of syntactic sugar for creating event-driven multinode systems in ROS2, using an intuitive Python API.

Packages created using 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.

Overview

Sugarcoat is built for ROS2 developers who want to create event-driven systems with multiple nodes that are easy to use, have builtin fallbacks and fault tolerance, and can be configured started with an intuitive Python API. It provides primitives for writing ROS nodes, and events/actions which can start/stop/modify the nodes, in the spirit of event driven software. Sugarcoat is also a replacement for the ROS Launch API.

A Component is the main execution unit in Sugarcoat, each component is configured with Inputs/Outputs and Fallback behaviors. Additionally, each component updates its own Health Status. Components can be handled and reconfigured dynamically at runtime using Events and Actions. Events, Actions and Components are passed to the Launcher which runs the set of components as using multi-threaded or multi-process execution. The Launcher also uses an internal Monitor to keep track of the components and monitor events.

Base Component

Base Component

Multi-Process Execution

Multi-process execution

Installation

Install python dependencies using pip as follows:

pip install 'attrs>=23.2.0' numpy-quaternion

For ROS versions >= β€˜humble’, you can install Sugarcoat with your package manager. For example on Ubuntu:

sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar

Alternatively, grab your favorite deb package from the release page and install it as follows:

sudo dpkg -i ros-$ROS_DISTRO-automatica-ros-sugar_$version$DISTRO_$ARCHITECTURE.deb

Building from source

mkdir -p ros-sugar-ws/src
cd ros-sugar-ws/src
git clone https://github.com/automatika-robotics/sugarcoat && cd ..
pip install numpy opencv-python-headless 'attrs>=23.2.0' jinja2 msgpack msgpack-numpy numpy-quaternion setproctitle pyyaml toml
colcon build
source install/setup.bash

The code in this distribution is Copyright (c) 2024 Automatika Robotics unless explicitly indicated otherwise.

Sugarcoat is made available under the MIT license. Details can be found in the LICENSE file.

Contributions

Sugarcoat has been developed in collaboration between Automatika Robotics and Inria. Contributions from the community are most welcome.

CHANGELOG

Changelog for package automatika_ros_sugar

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
  • (feature) Adds support for std_msgs MultiArray messages
  • (fix) Fixes Event trigger value check and OnGreater event serialization
  • Contributors: Maria Kabtoul, mkabtoul

0.2.6 (2025-01-17)

  • (fix) Fixes type hint
  • (fix) Fixes getting available events
  • (feature) checks for components and events duplicate names
  • (fix) Changes type of monitor components to activate
  • (chore) Fixes OS versions in CI
  • (chore) Adds arms builds to debian packaging
  • (refactor) Changes the fuction to create events from jsons
  • (fix) Fixes events parsing using serialized events as dictionary keys
  • (docs) Adds verification tag
  • (docs) Adds external links to docs
  • (docs) Adds source link to docs
  • Contributors: ahr, mkabtoul

0.2.5 (2025-01-07)

  • (fix) Gets imports and default values based on installed distro
  • (fix) Fix launch and launch_ros imports based on ros distro
  • Contributors: ahr, mkabtoul

0.2.4 (2024-12-27)

  • (fix) Adds algorithm auto re-configuration from YAML file
  • (fix) Fixes callback got_msg property
  • (feature) Adds topics callbacks/conversions reparsing to component Supports running components from different packages in one script

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.3.0
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-06-18
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo



Sugarcoat 🍬 is a meta-framework that provides a whole lot of syntactic sugar for creating event-driven multinode systems in ROS2, using an intuitive Python API.

Packages created using 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.

Overview

Sugarcoat is built for ROS2 developers who want to create event-driven systems with multiple nodes that are easy to use, have builtin fallbacks and fault tolerance, and can be configured started with an intuitive Python API. It provides primitives for writing ROS nodes, and events/actions which can start/stop/modify the nodes, in the spirit of event driven software. Sugarcoat is also a replacement for the ROS Launch API.

A Component is the main execution unit in Sugarcoat, each component is configured with Inputs/Outputs and Fallback behaviors. Additionally, each component updates its own Health Status. Components can be handled and reconfigured dynamically at runtime using Events and Actions. Events, Actions and Components are passed to the Launcher which runs the set of components as using multi-threaded or multi-process execution. The Launcher also uses an internal Monitor to keep track of the components and monitor events.

Base Component

Base Component

Multi-Process Execution

Multi-process execution

Installation

Install python dependencies using pip as follows:

pip install 'attrs>=23.2.0' numpy-quaternion

For ROS versions >= β€˜humble’, you can install Sugarcoat with your package manager. For example on Ubuntu:

sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar

Alternatively, grab your favorite deb package from the release page and install it as follows:

sudo dpkg -i ros-$ROS_DISTRO-automatica-ros-sugar_$version$DISTRO_$ARCHITECTURE.deb

Building from source

mkdir -p ros-sugar-ws/src
cd ros-sugar-ws/src
git clone https://github.com/automatika-robotics/sugarcoat && cd ..
pip install numpy opencv-python-headless 'attrs>=23.2.0' jinja2 msgpack msgpack-numpy numpy-quaternion setproctitle pyyaml toml
colcon build
source install/setup.bash

The code in this distribution is Copyright (c) 2024 Automatika Robotics unless explicitly indicated otherwise.

Sugarcoat is made available under the MIT license. Details can be found in the LICENSE file.

Contributions

Sugarcoat has been developed in collaboration between Automatika Robotics and Inria. Contributions from the community are most welcome.

CHANGELOG

Changelog for package automatika_ros_sugar

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
  • (feature) Adds support for std_msgs MultiArray messages
  • (fix) Fixes Event trigger value check and OnGreater event serialization
  • Contributors: Maria Kabtoul, mkabtoul

0.2.6 (2025-01-17)

  • (fix) Fixes type hint
  • (fix) Fixes getting available events
  • (feature) checks for components and events duplicate names
  • (fix) Changes type of monitor components to activate
  • (chore) Fixes OS versions in CI
  • (chore) Adds arms builds to debian packaging
  • (refactor) Changes the fuction to create events from jsons
  • (fix) Fixes events parsing using serialized events as dictionary keys
  • (docs) Adds verification tag
  • (docs) Adds external links to docs
  • (docs) Adds source link to docs
  • Contributors: ahr, mkabtoul

0.2.5 (2025-01-07)

  • (fix) Gets imports and default values based on installed distro
  • (fix) Fix launch and launch_ros imports based on ros distro
  • Contributors: ahr, mkabtoul

0.2.4 (2024-12-27)

  • (fix) Adds algorithm auto re-configuration from YAML file
  • (fix) Fixes callback got_msg property
  • (feature) Adds topics callbacks/conversions reparsing to component Supports running components from different packages in one script

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.3.0
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-06-18
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo



Sugarcoat 🍬 is a meta-framework that provides a whole lot of syntactic sugar for creating event-driven multinode systems in ROS2, using an intuitive Python API.

Packages created using 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.

Overview

Sugarcoat is built for ROS2 developers who want to create event-driven systems with multiple nodes that are easy to use, have builtin fallbacks and fault tolerance, and can be configured started with an intuitive Python API. It provides primitives for writing ROS nodes, and events/actions which can start/stop/modify the nodes, in the spirit of event driven software. Sugarcoat is also a replacement for the ROS Launch API.

A Component is the main execution unit in Sugarcoat, each component is configured with Inputs/Outputs and Fallback behaviors. Additionally, each component updates its own Health Status. Components can be handled and reconfigured dynamically at runtime using Events and Actions. Events, Actions and Components are passed to the Launcher which runs the set of components as using multi-threaded or multi-process execution. The Launcher also uses an internal Monitor to keep track of the components and monitor events.

Base Component

Base Component

Multi-Process Execution

Multi-process execution

Installation

Install python dependencies using pip as follows:

pip install 'attrs>=23.2.0' numpy-quaternion

For ROS versions >= β€˜humble’, you can install Sugarcoat with your package manager. For example on Ubuntu:

sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar

Alternatively, grab your favorite deb package from the release page and install it as follows:

sudo dpkg -i ros-$ROS_DISTRO-automatica-ros-sugar_$version$DISTRO_$ARCHITECTURE.deb

Building from source

mkdir -p ros-sugar-ws/src
cd ros-sugar-ws/src
git clone https://github.com/automatika-robotics/sugarcoat && cd ..
pip install numpy opencv-python-headless 'attrs>=23.2.0' jinja2 msgpack msgpack-numpy numpy-quaternion setproctitle pyyaml toml
colcon build
source install/setup.bash

The code in this distribution is Copyright (c) 2024 Automatika Robotics unless explicitly indicated otherwise.

Sugarcoat is made available under the MIT license. Details can be found in the LICENSE file.

Contributions

Sugarcoat has been developed in collaboration between Automatika Robotics and Inria. Contributions from the community are most welcome.

CHANGELOG

Changelog for package automatika_ros_sugar

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
  • (feature) Adds support for std_msgs MultiArray messages
  • (fix) Fixes Event trigger value check and OnGreater event serialization
  • Contributors: Maria Kabtoul, mkabtoul

0.2.6 (2025-01-17)

  • (fix) Fixes type hint
  • (fix) Fixes getting available events
  • (feature) checks for components and events duplicate names
  • (fix) Changes type of monitor components to activate
  • (chore) Fixes OS versions in CI
  • (chore) Adds arms builds to debian packaging
  • (refactor) Changes the fuction to create events from jsons
  • (fix) Fixes events parsing using serialized events as dictionary keys
  • (docs) Adds verification tag
  • (docs) Adds external links to docs
  • (docs) Adds source link to docs
  • Contributors: ahr, mkabtoul

0.2.5 (2025-01-07)

  • (fix) Gets imports and default values based on installed distro
  • (fix) Fix launch and launch_ros imports based on ros distro
  • Contributors: ahr, mkabtoul

0.2.4 (2024-12-27)

  • (fix) Adds algorithm auto re-configuration from YAML file
  • (fix) Fixes callback got_msg property
  • (feature) Adds topics callbacks/conversions reparsing to component Supports running components from different packages in one script

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.3.0
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-06-18
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo



Sugarcoat 🍬 is a meta-framework that provides a whole lot of syntactic sugar for creating event-driven multinode systems in ROS2, using an intuitive Python API.

Packages created using 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.

Overview

Sugarcoat is built for ROS2 developers who want to create event-driven systems with multiple nodes that are easy to use, have builtin fallbacks and fault tolerance, and can be configured started with an intuitive Python API. It provides primitives for writing ROS nodes, and events/actions which can start/stop/modify the nodes, in the spirit of event driven software. Sugarcoat is also a replacement for the ROS Launch API.

A Component is the main execution unit in Sugarcoat, each component is configured with Inputs/Outputs and Fallback behaviors. Additionally, each component updates its own Health Status. Components can be handled and reconfigured dynamically at runtime using Events and Actions. Events, Actions and Components are passed to the Launcher which runs the set of components as using multi-threaded or multi-process execution. The Launcher also uses an internal Monitor to keep track of the components and monitor events.

Base Component

Base Component

Multi-Process Execution

Multi-process execution

Installation

Install python dependencies using pip as follows:

pip install 'attrs>=23.2.0' numpy-quaternion

For ROS versions >= β€˜humble’, you can install Sugarcoat with your package manager. For example on Ubuntu:

sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar

Alternatively, grab your favorite deb package from the release page and install it as follows:

sudo dpkg -i ros-$ROS_DISTRO-automatica-ros-sugar_$version$DISTRO_$ARCHITECTURE.deb

Building from source

mkdir -p ros-sugar-ws/src
cd ros-sugar-ws/src
git clone https://github.com/automatika-robotics/sugarcoat && cd ..
pip install numpy opencv-python-headless 'attrs>=23.2.0' jinja2 msgpack msgpack-numpy numpy-quaternion setproctitle pyyaml toml
colcon build
source install/setup.bash

The code in this distribution is Copyright (c) 2024 Automatika Robotics unless explicitly indicated otherwise.

Sugarcoat is made available under the MIT license. Details can be found in the LICENSE file.

Contributions

Sugarcoat has been developed in collaboration between Automatika Robotics and Inria. Contributions from the community are most welcome.

CHANGELOG

Changelog for package automatika_ros_sugar

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
  • (feature) Adds support for std_msgs MultiArray messages
  • (fix) Fixes Event trigger value check and OnGreater event serialization
  • Contributors: Maria Kabtoul, mkabtoul

0.2.6 (2025-01-17)

  • (fix) Fixes type hint
  • (fix) Fixes getting available events
  • (feature) checks for components and events duplicate names
  • (fix) Changes type of monitor components to activate
  • (chore) Fixes OS versions in CI
  • (chore) Adds arms builds to debian packaging
  • (refactor) Changes the fuction to create events from jsons
  • (fix) Fixes events parsing using serialized events as dictionary keys
  • (docs) Adds verification tag
  • (docs) Adds external links to docs
  • (docs) Adds source link to docs
  • Contributors: ahr, mkabtoul

0.2.5 (2025-01-07)

  • (fix) Gets imports and default values based on installed distro
  • (fix) Fix launch and launch_ros imports based on ros distro
  • Contributors: ahr, mkabtoul

0.2.4 (2024-12-27)

  • (fix) Adds algorithm auto re-configuration from YAML file
  • (fix) Fixes callback got_msg property
  • (feature) Adds topics callbacks/conversions reparsing to component Supports running components from different packages in one script

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.3.0
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-06-18
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo



Sugarcoat 🍬 is a meta-framework that provides a whole lot of syntactic sugar for creating event-driven multinode systems in ROS2, using an intuitive Python API.

Packages created using 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.

Overview

Sugarcoat is built for ROS2 developers who want to create event-driven systems with multiple nodes that are easy to use, have builtin fallbacks and fault tolerance, and can be configured started with an intuitive Python API. It provides primitives for writing ROS nodes, and events/actions which can start/stop/modify the nodes, in the spirit of event driven software. Sugarcoat is also a replacement for the ROS Launch API.

A Component is the main execution unit in Sugarcoat, each component is configured with Inputs/Outputs and Fallback behaviors. Additionally, each component updates its own Health Status. Components can be handled and reconfigured dynamically at runtime using Events and Actions. Events, Actions and Components are passed to the Launcher which runs the set of components as using multi-threaded or multi-process execution. The Launcher also uses an internal Monitor to keep track of the components and monitor events.

Base Component

Base Component

Multi-Process Execution

Multi-process execution

Installation

Install python dependencies using pip as follows:

pip install 'attrs>=23.2.0' numpy-quaternion

For ROS versions >= β€˜humble’, you can install Sugarcoat with your package manager. For example on Ubuntu:

sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar

Alternatively, grab your favorite deb package from the release page and install it as follows:

sudo dpkg -i ros-$ROS_DISTRO-automatica-ros-sugar_$version$DISTRO_$ARCHITECTURE.deb

Building from source

mkdir -p ros-sugar-ws/src
cd ros-sugar-ws/src
git clone https://github.com/automatika-robotics/sugarcoat && cd ..
pip install numpy opencv-python-headless 'attrs>=23.2.0' jinja2 msgpack msgpack-numpy numpy-quaternion setproctitle pyyaml toml
colcon build
source install/setup.bash

The code in this distribution is Copyright (c) 2024 Automatika Robotics unless explicitly indicated otherwise.

Sugarcoat is made available under the MIT license. Details can be found in the LICENSE file.

Contributions

Sugarcoat has been developed in collaboration between Automatika Robotics and Inria. Contributions from the community are most welcome.

CHANGELOG

Changelog for package automatika_ros_sugar

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
  • (feature) Adds support for std_msgs MultiArray messages
  • (fix) Fixes Event trigger value check and OnGreater event serialization
  • Contributors: Maria Kabtoul, mkabtoul

0.2.6 (2025-01-17)

  • (fix) Fixes type hint
  • (fix) Fixes getting available events
  • (feature) checks for components and events duplicate names
  • (fix) Changes type of monitor components to activate
  • (chore) Fixes OS versions in CI
  • (chore) Adds arms builds to debian packaging
  • (refactor) Changes the fuction to create events from jsons
  • (fix) Fixes events parsing using serialized events as dictionary keys
  • (docs) Adds verification tag
  • (docs) Adds external links to docs
  • (docs) Adds source link to docs
  • Contributors: ahr, mkabtoul

0.2.5 (2025-01-07)

  • (fix) Gets imports and default values based on installed distro
  • (fix) Fix launch and launch_ros imports based on ros distro
  • Contributors: ahr, mkabtoul

0.2.4 (2024-12-27)

  • (fix) Adds algorithm auto re-configuration from YAML file
  • (fix) Fixes callback got_msg property
  • (feature) Adds topics callbacks/conversions reparsing to component Supports running components from different packages in one script

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.3.0
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-06-18
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo



Sugarcoat 🍬 is a meta-framework that provides a whole lot of syntactic sugar for creating event-driven multinode systems in ROS2, using an intuitive Python API.

Packages created using 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.

Overview

Sugarcoat is built for ROS2 developers who want to create event-driven systems with multiple nodes that are easy to use, have builtin fallbacks and fault tolerance, and can be configured started with an intuitive Python API. It provides primitives for writing ROS nodes, and events/actions which can start/stop/modify the nodes, in the spirit of event driven software. Sugarcoat is also a replacement for the ROS Launch API.

A Component is the main execution unit in Sugarcoat, each component is configured with Inputs/Outputs and Fallback behaviors. Additionally, each component updates its own Health Status. Components can be handled and reconfigured dynamically at runtime using Events and Actions. Events, Actions and Components are passed to the Launcher which runs the set of components as using multi-threaded or multi-process execution. The Launcher also uses an internal Monitor to keep track of the components and monitor events.

Base Component

Base Component

Multi-Process Execution

Multi-process execution

Installation

Install python dependencies using pip as follows:

pip install 'attrs>=23.2.0' numpy-quaternion

For ROS versions >= β€˜humble’, you can install Sugarcoat with your package manager. For example on Ubuntu:

sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar

Alternatively, grab your favorite deb package from the release page and install it as follows:

sudo dpkg -i ros-$ROS_DISTRO-automatica-ros-sugar_$version$DISTRO_$ARCHITECTURE.deb

Building from source

mkdir -p ros-sugar-ws/src
cd ros-sugar-ws/src
git clone https://github.com/automatika-robotics/sugarcoat && cd ..
pip install numpy opencv-python-headless 'attrs>=23.2.0' jinja2 msgpack msgpack-numpy numpy-quaternion setproctitle pyyaml toml
colcon build
source install/setup.bash

The code in this distribution is Copyright (c) 2024 Automatika Robotics unless explicitly indicated otherwise.

Sugarcoat is made available under the MIT license. Details can be found in the LICENSE file.

Contributions

Sugarcoat has been developed in collaboration between Automatika Robotics and Inria. Contributions from the community are most welcome.

CHANGELOG

Changelog for package automatika_ros_sugar

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
  • (feature) Adds support for std_msgs MultiArray messages
  • (fix) Fixes Event trigger value check and OnGreater event serialization
  • Contributors: Maria Kabtoul, mkabtoul

0.2.6 (2025-01-17)

  • (fix) Fixes type hint
  • (fix) Fixes getting available events
  • (feature) checks for components and events duplicate names
  • (fix) Changes type of monitor components to activate
  • (chore) Fixes OS versions in CI
  • (chore) Adds arms builds to debian packaging
  • (refactor) Changes the fuction to create events from jsons
  • (fix) Fixes events parsing using serialized events as dictionary keys
  • (docs) Adds verification tag
  • (docs) Adds external links to docs
  • (docs) Adds source link to docs
  • Contributors: ahr, mkabtoul

0.2.5 (2025-01-07)

  • (fix) Gets imports and default values based on installed distro
  • (fix) Fix launch and launch_ros imports based on ros distro
  • Contributors: ahr, mkabtoul

0.2.4 (2024-12-27)

  • (fix) Adds algorithm auto re-configuration from YAML file
  • (fix) Fixes callback got_msg property
  • (feature) Adds topics callbacks/conversions reparsing to component Supports running components from different packages in one script

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.3.0
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-06-18
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo



Sugarcoat 🍬 is a meta-framework that provides a whole lot of syntactic sugar for creating event-driven multinode systems in ROS2, using an intuitive Python API.

Packages created using 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.

Overview

Sugarcoat is built for ROS2 developers who want to create event-driven systems with multiple nodes that are easy to use, have builtin fallbacks and fault tolerance, and can be configured started with an intuitive Python API. It provides primitives for writing ROS nodes, and events/actions which can start/stop/modify the nodes, in the spirit of event driven software. Sugarcoat is also a replacement for the ROS Launch API.

A Component is the main execution unit in Sugarcoat, each component is configured with Inputs/Outputs and Fallback behaviors. Additionally, each component updates its own Health Status. Components can be handled and reconfigured dynamically at runtime using Events and Actions. Events, Actions and Components are passed to the Launcher which runs the set of components as using multi-threaded or multi-process execution. The Launcher also uses an internal Monitor to keep track of the components and monitor events.

Base Component

Base Component

Multi-Process Execution

Multi-process execution

Installation

Install python dependencies using pip as follows:

pip install 'attrs>=23.2.0' numpy-quaternion

For ROS versions >= β€˜humble’, you can install Sugarcoat with your package manager. For example on Ubuntu:

sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar

Alternatively, grab your favorite deb package from the release page and install it as follows:

sudo dpkg -i ros-$ROS_DISTRO-automatica-ros-sugar_$version$DISTRO_$ARCHITECTURE.deb

Building from source

mkdir -p ros-sugar-ws/src
cd ros-sugar-ws/src
git clone https://github.com/automatika-robotics/sugarcoat && cd ..
pip install numpy opencv-python-headless 'attrs>=23.2.0' jinja2 msgpack msgpack-numpy numpy-quaternion setproctitle pyyaml toml
colcon build
source install/setup.bash

The code in this distribution is Copyright (c) 2024 Automatika Robotics unless explicitly indicated otherwise.

Sugarcoat is made available under the MIT license. Details can be found in the LICENSE file.

Contributions

Sugarcoat has been developed in collaboration between Automatika Robotics and Inria. Contributions from the community are most welcome.

CHANGELOG

Changelog for package automatika_ros_sugar

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
  • (feature) Adds support for std_msgs MultiArray messages
  • (fix) Fixes Event trigger value check and OnGreater event serialization
  • Contributors: Maria Kabtoul, mkabtoul

0.2.6 (2025-01-17)

  • (fix) Fixes type hint
  • (fix) Fixes getting available events
  • (feature) checks for components and events duplicate names
  • (fix) Changes type of monitor components to activate
  • (chore) Fixes OS versions in CI
  • (chore) Adds arms builds to debian packaging
  • (refactor) Changes the fuction to create events from jsons
  • (fix) Fixes events parsing using serialized events as dictionary keys
  • (docs) Adds verification tag
  • (docs) Adds external links to docs
  • (docs) Adds source link to docs
  • Contributors: ahr, mkabtoul

0.2.5 (2025-01-07)

  • (fix) Gets imports and default values based on installed distro
  • (fix) Fix launch and launch_ros imports based on ros distro
  • Contributors: ahr, mkabtoul

0.2.4 (2024-12-27)

  • (fix) Adds algorithm auto re-configuration from YAML file
  • (fix) Fixes callback got_msg property
  • (feature) Adds topics callbacks/conversions reparsing to component Supports running components from different packages in one script

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.3.0
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-06-18
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo



Sugarcoat 🍬 is a meta-framework that provides a whole lot of syntactic sugar for creating event-driven multinode systems in ROS2, using an intuitive Python API.

Packages created using 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.

Overview

Sugarcoat is built for ROS2 developers who want to create event-driven systems with multiple nodes that are easy to use, have builtin fallbacks and fault tolerance, and can be configured started with an intuitive Python API. It provides primitives for writing ROS nodes, and events/actions which can start/stop/modify the nodes, in the spirit of event driven software. Sugarcoat is also a replacement for the ROS Launch API.

A Component is the main execution unit in Sugarcoat, each component is configured with Inputs/Outputs and Fallback behaviors. Additionally, each component updates its own Health Status. Components can be handled and reconfigured dynamically at runtime using Events and Actions. Events, Actions and Components are passed to the Launcher which runs the set of components as using multi-threaded or multi-process execution. The Launcher also uses an internal Monitor to keep track of the components and monitor events.

Base Component

Base Component

Multi-Process Execution

Multi-process execution

Installation

Install python dependencies using pip as follows:

pip install 'attrs>=23.2.0' numpy-quaternion

For ROS versions >= β€˜humble’, you can install Sugarcoat with your package manager. For example on Ubuntu:

sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar

Alternatively, grab your favorite deb package from the release page and install it as follows:

sudo dpkg -i ros-$ROS_DISTRO-automatica-ros-sugar_$version$DISTRO_$ARCHITECTURE.deb

Building from source

mkdir -p ros-sugar-ws/src
cd ros-sugar-ws/src
git clone https://github.com/automatika-robotics/sugarcoat && cd ..
pip install numpy opencv-python-headless 'attrs>=23.2.0' jinja2 msgpack msgpack-numpy numpy-quaternion setproctitle pyyaml toml
colcon build
source install/setup.bash

The code in this distribution is Copyright (c) 2024 Automatika Robotics unless explicitly indicated otherwise.

Sugarcoat is made available under the MIT license. Details can be found in the LICENSE file.

Contributions

Sugarcoat has been developed in collaboration between Automatika Robotics and Inria. Contributions from the community are most welcome.

CHANGELOG

Changelog for package automatika_ros_sugar

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
  • (feature) Adds support for std_msgs MultiArray messages
  • (fix) Fixes Event trigger value check and OnGreater event serialization
  • Contributors: Maria Kabtoul, mkabtoul

0.2.6 (2025-01-17)

  • (fix) Fixes type hint
  • (fix) Fixes getting available events
  • (feature) checks for components and events duplicate names
  • (fix) Changes type of monitor components to activate
  • (chore) Fixes OS versions in CI
  • (chore) Adds arms builds to debian packaging
  • (refactor) Changes the fuction to create events from jsons
  • (fix) Fixes events parsing using serialized events as dictionary keys
  • (docs) Adds verification tag
  • (docs) Adds external links to docs
  • (docs) Adds source link to docs
  • Contributors: ahr, mkabtoul

0.2.5 (2025-01-07)

  • (fix) Gets imports and default values based on installed distro
  • (fix) Fix launch and launch_ros imports based on ros distro
  • Contributors: ahr, mkabtoul

0.2.4 (2024-12-27)

  • (fix) Adds algorithm auto re-configuration from YAML file
  • (fix) Fixes callback got_msg property
  • (feature) Adds topics callbacks/conversions reparsing to component Supports running components from different packages in one script

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.3.0
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-06-18
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo



Sugarcoat 🍬 is a meta-framework that provides a whole lot of syntactic sugar for creating event-driven multinode systems in ROS2, using an intuitive Python API.

Packages created using 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.

Overview

Sugarcoat is built for ROS2 developers who want to create event-driven systems with multiple nodes that are easy to use, have builtin fallbacks and fault tolerance, and can be configured started with an intuitive Python API. It provides primitives for writing ROS nodes, and events/actions which can start/stop/modify the nodes, in the spirit of event driven software. Sugarcoat is also a replacement for the ROS Launch API.

A Component is the main execution unit in Sugarcoat, each component is configured with Inputs/Outputs and Fallback behaviors. Additionally, each component updates its own Health Status. Components can be handled and reconfigured dynamically at runtime using Events and Actions. Events, Actions and Components are passed to the Launcher which runs the set of components as using multi-threaded or multi-process execution. The Launcher also uses an internal Monitor to keep track of the components and monitor events.

Base Component

Base Component

Multi-Process Execution

Multi-process execution

Installation

Install python dependencies using pip as follows:

pip install 'attrs>=23.2.0' numpy-quaternion

For ROS versions >= β€˜humble’, you can install Sugarcoat with your package manager. For example on Ubuntu:

sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar

Alternatively, grab your favorite deb package from the release page and install it as follows:

sudo dpkg -i ros-$ROS_DISTRO-automatica-ros-sugar_$version$DISTRO_$ARCHITECTURE.deb

Building from source

mkdir -p ros-sugar-ws/src
cd ros-sugar-ws/src
git clone https://github.com/automatika-robotics/sugarcoat && cd ..
pip install numpy opencv-python-headless 'attrs>=23.2.0' jinja2 msgpack msgpack-numpy numpy-quaternion setproctitle pyyaml toml
colcon build
source install/setup.bash

The code in this distribution is Copyright (c) 2024 Automatika Robotics unless explicitly indicated otherwise.

Sugarcoat is made available under the MIT license. Details can be found in the LICENSE file.

Contributions

Sugarcoat has been developed in collaboration between Automatika Robotics and Inria. Contributions from the community are most welcome.

CHANGELOG

Changelog for package automatika_ros_sugar

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
  • (feature) Adds support for std_msgs MultiArray messages
  • (fix) Fixes Event trigger value check and OnGreater event serialization
  • Contributors: Maria Kabtoul, mkabtoul

0.2.6 (2025-01-17)

  • (fix) Fixes type hint
  • (fix) Fixes getting available events
  • (feature) checks for components and events duplicate names
  • (fix) Changes type of monitor components to activate
  • (chore) Fixes OS versions in CI
  • (chore) Adds arms builds to debian packaging
  • (refactor) Changes the fuction to create events from jsons
  • (fix) Fixes events parsing using serialized events as dictionary keys
  • (docs) Adds verification tag
  • (docs) Adds external links to docs
  • (docs) Adds source link to docs
  • Contributors: ahr, mkabtoul

0.2.5 (2025-01-07)

  • (fix) Gets imports and default values based on installed distro
  • (fix) Fix launch and launch_ros imports based on ros distro
  • Contributors: ahr, mkabtoul

0.2.4 (2024-12-27)

  • (fix) Adds algorithm auto re-configuration from YAML file
  • (fix) Fixes callback got_msg property
  • (feature) Adds topics callbacks/conversions reparsing to component Supports running components from different packages in one script

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.3.0
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-06-18
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo



Sugarcoat 🍬 is a meta-framework that provides a whole lot of syntactic sugar for creating event-driven multinode systems in ROS2, using an intuitive Python API.

Packages created using 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.

Overview

Sugarcoat is built for ROS2 developers who want to create event-driven systems with multiple nodes that are easy to use, have builtin fallbacks and fault tolerance, and can be configured started with an intuitive Python API. It provides primitives for writing ROS nodes, and events/actions which can start/stop/modify the nodes, in the spirit of event driven software. Sugarcoat is also a replacement for the ROS Launch API.

A Component is the main execution unit in Sugarcoat, each component is configured with Inputs/Outputs and Fallback behaviors. Additionally, each component updates its own Health Status. Components can be handled and reconfigured dynamically at runtime using Events and Actions. Events, Actions and Components are passed to the Launcher which runs the set of components as using multi-threaded or multi-process execution. The Launcher also uses an internal Monitor to keep track of the components and monitor events.

Base Component

Base Component

Multi-Process Execution

Multi-process execution

Installation

Install python dependencies using pip as follows:

pip install 'attrs>=23.2.0' numpy-quaternion

For ROS versions >= β€˜humble’, you can install Sugarcoat with your package manager. For example on Ubuntu:

sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar

Alternatively, grab your favorite deb package from the release page and install it as follows:

sudo dpkg -i ros-$ROS_DISTRO-automatica-ros-sugar_$version$DISTRO_$ARCHITECTURE.deb

Building from source

mkdir -p ros-sugar-ws/src
cd ros-sugar-ws/src
git clone https://github.com/automatika-robotics/sugarcoat && cd ..
pip install numpy opencv-python-headless 'attrs>=23.2.0' jinja2 msgpack msgpack-numpy numpy-quaternion setproctitle pyyaml toml
colcon build
source install/setup.bash

The code in this distribution is Copyright (c) 2024 Automatika Robotics unless explicitly indicated otherwise.

Sugarcoat is made available under the MIT license. Details can be found in the LICENSE file.

Contributions

Sugarcoat has been developed in collaboration between Automatika Robotics and Inria. Contributions from the community are most welcome.

CHANGELOG

Changelog for package automatika_ros_sugar

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
  • (feature) Adds support for std_msgs MultiArray messages
  • (fix) Fixes Event trigger value check and OnGreater event serialization
  • Contributors: Maria Kabtoul, mkabtoul

0.2.6 (2025-01-17)

  • (fix) Fixes type hint
  • (fix) Fixes getting available events
  • (feature) checks for components and events duplicate names
  • (fix) Changes type of monitor components to activate
  • (chore) Fixes OS versions in CI
  • (chore) Adds arms builds to debian packaging
  • (refactor) Changes the fuction to create events from jsons
  • (fix) Fixes events parsing using serialized events as dictionary keys
  • (docs) Adds verification tag
  • (docs) Adds external links to docs
  • (docs) Adds source link to docs
  • Contributors: ahr, mkabtoul

0.2.5 (2025-01-07)

  • (fix) Gets imports and default values based on installed distro
  • (fix) Fix launch and launch_ros imports based on ros distro
  • Contributors: ahr, mkabtoul

0.2.4 (2024-12-27)

  • (fix) Adds algorithm auto re-configuration from YAML file
  • (fix) Fixes callback got_msg property
  • (feature) Adds topics callbacks/conversions reparsing to component Supports running components from different packages in one script

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.3.0
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-06-18
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo



Sugarcoat 🍬 is a meta-framework that provides a whole lot of syntactic sugar for creating event-driven multinode systems in ROS2, using an intuitive Python API.

Packages created using 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.

Overview

Sugarcoat is built for ROS2 developers who want to create event-driven systems with multiple nodes that are easy to use, have builtin fallbacks and fault tolerance, and can be configured started with an intuitive Python API. It provides primitives for writing ROS nodes, and events/actions which can start/stop/modify the nodes, in the spirit of event driven software. Sugarcoat is also a replacement for the ROS Launch API.

A Component is the main execution unit in Sugarcoat, each component is configured with Inputs/Outputs and Fallback behaviors. Additionally, each component updates its own Health Status. Components can be handled and reconfigured dynamically at runtime using Events and Actions. Events, Actions and Components are passed to the Launcher which runs the set of components as using multi-threaded or multi-process execution. The Launcher also uses an internal Monitor to keep track of the components and monitor events.

Base Component

Base Component

Multi-Process Execution

Multi-process execution

Installation

Install python dependencies using pip as follows:

pip install 'attrs>=23.2.0' numpy-quaternion

For ROS versions >= β€˜humble’, you can install Sugarcoat with your package manager. For example on Ubuntu:

sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar

Alternatively, grab your favorite deb package from the release page and install it as follows:

sudo dpkg -i ros-$ROS_DISTRO-automatica-ros-sugar_$version$DISTRO_$ARCHITECTURE.deb

Building from source

mkdir -p ros-sugar-ws/src
cd ros-sugar-ws/src
git clone https://github.com/automatika-robotics/sugarcoat && cd ..
pip install numpy opencv-python-headless 'attrs>=23.2.0' jinja2 msgpack msgpack-numpy numpy-quaternion setproctitle pyyaml toml
colcon build
source install/setup.bash

The code in this distribution is Copyright (c) 2024 Automatika Robotics unless explicitly indicated otherwise.

Sugarcoat is made available under the MIT license. Details can be found in the LICENSE file.

Contributions

Sugarcoat has been developed in collaboration between Automatika Robotics and Inria. Contributions from the community are most welcome.

CHANGELOG

Changelog for package automatika_ros_sugar

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
  • (feature) Adds support for std_msgs MultiArray messages
  • (fix) Fixes Event trigger value check and OnGreater event serialization
  • Contributors: Maria Kabtoul, mkabtoul

0.2.6 (2025-01-17)

  • (fix) Fixes type hint
  • (fix) Fixes getting available events
  • (feature) checks for components and events duplicate names
  • (fix) Changes type of monitor components to activate
  • (chore) Fixes OS versions in CI
  • (chore) Adds arms builds to debian packaging
  • (refactor) Changes the fuction to create events from jsons
  • (fix) Fixes events parsing using serialized events as dictionary keys
  • (docs) Adds verification tag
  • (docs) Adds external links to docs
  • (docs) Adds source link to docs
  • Contributors: ahr, mkabtoul

0.2.5 (2025-01-07)

  • (fix) Gets imports and default values based on installed distro
  • (fix) Fix launch and launch_ros imports based on ros distro
  • Contributors: ahr, mkabtoul

0.2.4 (2024-12-27)

  • (fix) Adds algorithm auto re-configuration from YAML file
  • (fix) Fixes callback got_msg property
  • (feature) Adds topics callbacks/conversions reparsing to component Supports running components from different packages in one script

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange

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

automatika_ros_sugar package from automatika_ros_sugar repo

automatika_ros_sugar

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.3.0
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-06-18
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Syntactic sugar for ROS2 nodes creation and management

Additional Links

Maintainers

  • Automatika Robotics

Authors

No additional authors.
Sugarcoat Logo



Sugarcoat 🍬 is a meta-framework that provides a whole lot of syntactic sugar for creating event-driven multinode systems in ROS2, using an intuitive Python API.

Packages created using 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.

Overview

Sugarcoat is built for ROS2 developers who want to create event-driven systems with multiple nodes that are easy to use, have builtin fallbacks and fault tolerance, and can be configured started with an intuitive Python API. It provides primitives for writing ROS nodes, and events/actions which can start/stop/modify the nodes, in the spirit of event driven software. Sugarcoat is also a replacement for the ROS Launch API.

A Component is the main execution unit in Sugarcoat, each component is configured with Inputs/Outputs and Fallback behaviors. Additionally, each component updates its own Health Status. Components can be handled and reconfigured dynamically at runtime using Events and Actions. Events, Actions and Components are passed to the Launcher which runs the set of components as using multi-threaded or multi-process execution. The Launcher also uses an internal Monitor to keep track of the components and monitor events.

Base Component

Base Component

Multi-Process Execution

Multi-process execution

Installation

Install python dependencies using pip as follows:

pip install 'attrs>=23.2.0' numpy-quaternion

For ROS versions >= β€˜humble’, you can install Sugarcoat with your package manager. For example on Ubuntu:

sudo apt install ros-$ROS_DISTRO-automatika-ros-sugar

Alternatively, grab your favorite deb package from the release page and install it as follows:

sudo dpkg -i ros-$ROS_DISTRO-automatica-ros-sugar_$version$DISTRO_$ARCHITECTURE.deb

Building from source

mkdir -p ros-sugar-ws/src
cd ros-sugar-ws/src
git clone https://github.com/automatika-robotics/sugarcoat && cd ..
pip install numpy opencv-python-headless 'attrs>=23.2.0' jinja2 msgpack msgpack-numpy numpy-quaternion setproctitle pyyaml toml
colcon build
source install/setup.bash

The code in this distribution is Copyright (c) 2024 Automatika Robotics unless explicitly indicated otherwise.

Sugarcoat is made available under the MIT license. Details can be found in the LICENSE file.

Contributions

Sugarcoat has been developed in collaboration between Automatika Robotics and Inria. Contributions from the community are most welcome.

CHANGELOG

Changelog for package automatika_ros_sugar

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
  • (feature) Adds support for std_msgs MultiArray messages
  • (fix) Fixes Event trigger value check and OnGreater event serialization
  • Contributors: Maria Kabtoul, mkabtoul

0.2.6 (2025-01-17)

  • (fix) Fixes type hint
  • (fix) Fixes getting available events
  • (feature) checks for components and events duplicate names
  • (fix) Changes type of monitor components to activate
  • (chore) Fixes OS versions in CI
  • (chore) Adds arms builds to debian packaging
  • (refactor) Changes the fuction to create events from jsons
  • (fix) Fixes events parsing using serialized events as dictionary keys
  • (docs) Adds verification tag
  • (docs) Adds external links to docs
  • (docs) Adds source link to docs
  • Contributors: ahr, mkabtoul

0.2.5 (2025-01-07)

  • (fix) Gets imports and default values based on installed distro
  • (fix) Fix launch and launch_ros imports based on ros distro
  • Contributors: ahr, mkabtoul

0.2.4 (2024-12-27)

  • (fix) Adds algorithm auto re-configuration from YAML file
  • (fix) Fixes callback got_msg property
  • (feature) Adds topics callbacks/conversions reparsing to component Supports running components from different packages in one script

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Recent questions tagged automatika_ros_sugar at Robotics Stack Exchange