Skip to content

Commit

Permalink
release: version 5.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
domire8 committed Oct 8, 2024
1 parent 8edddf3 commit cd13047
Show file tree
Hide file tree
Showing 7 changed files with 90 additions and 29 deletions.
107 changes: 84 additions & 23 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

Release Versions:

- [5.0.0](#500)
- [4.2.2](#422)
- [4.2.1](#421)
- [4.2.0](#420)
Expand All @@ -15,39 +16,99 @@ Release Versions:
- [2.1.1](#211)
- [2.1.0](#210)

## Upcoming changes
## 5.0.0

### Oktober 9th, 2024

Version 5.0.0 is a major update to modulo developed for ROS 2 Jazzy Jalisco and ROS 2 control 4.17.0. If features even
more flexibility and performance in the component and controller base classes in `modulo_components` and
`modulo_controllers` and improved divison of responsability across `modulo_core`, `modulo_interfaces` (formerly
`modulo_component_interfaces`) and `modulo_utils`.

### Breaking changes

Due to the size and importance of this version update, the list of breaking changes is quite long.

#### modulo_component_interfaces

The package `modulo_component_interfaces` has been removed in favor of the recently added `modulo_interfaces`. All
common service and message definitions are now to be found in `modulo_interfaces`.

- refactor!: remove modulo_component_interfaces (#88)

#### modulo_utils

In order to minimize code duplication between `modulo_components` and `modulo_controllers`, which define classes with
very similar interfaces, shared dependencies have been moved to `modulo_utils`:

- Custom defined exceptions used across all modulo packages (#90, #117)
- Parsing utilities and the `PredicateVariant` (#89, #101)

#### modulo_core

Apart from a minor renaming in #77, `modulo_core` comes with an important features that breaks the ABI. Using heavy
templating and [`concepts`](https://en.cppreference.com/w/cpp/language/constraints)) introduced in C++20, it was
possible to extend the communication classes (`MessagePair`, `PublisherHandler` and `SubscriptionHandler`) to any ROS
message type.

- refactor(core)!: rename function in modulo translators (#77)
- feat!: add support for custom inputs and outputs (#133)

#### modulo_controllers

There is a new intermediate base class `BaseControllerInterface` that adds typical modulo interfaces (`add_parameter`,
`add_input`, `add_service`, etc.) to the `controller_interface::ControllerInterface` class from ROS 2 control. This
should allow simpler migration of pure ROS 2 control controller implementations to the modulo controller interface.
Additionally, the constructor of the `RobotControllerInterface` has an additional argument that allows to specify if
collision features should be enabled in the robot model.

- refactor(controllers)!: split up base class (#135)
- feat(controllers)!: add flag for collision features to robot controller interface (#114)

#### modulo_components

In the component classes, the `period` parameter has been removed for good and replaced by the `rate` parameter which
is not an integer type anymore but a floating type number. Manually published lifecycle predicates have been removed
because they can already be inferred from automatically published topics on the ROS network.

- feat(components)!: add mutex around step callback (#67)
- refactor(components)!: remove period parameter and make rate double (#108)
- refactor!: remove lifecycle predicates and add lifecycle state getter (#130)

### Features and Fixes

#### Core

- feat(interfaces): add message definition for encoded state (#132)
- feat(utils): add binary reader and recorder for encoded states (#152)

#### Components and Controllers

- refactor: rename function in modulo translators (#77)
- feat(components): add mutex around step callback (#67)
- refactor: move utilities to modulo_utils package (#89)
- refactor: move exceptions to modulo_utils (#90)
- refactor: remove modulo_component_interfaces (#88)
- feat(controllers): add add_interfaces function for derived controllers (#102)
- refactor(components): remove period parameter and make rate double (#108)
- feat(controllers): use exceptions from modulo utils and update to CL v8.1.0 (#106)
- feat: define topic validation warning in utilities (#101)
- refactor(controllers): change predicate topic of controllers (#121)
- fix(components): keep parameter values in sync with ros (#111)
- feat: update to jazzy and CL v9.0.0 (#116)
- refactor: move all exceptions into one place (#117)
- feat(controllers): add flag for collision features to robot controller interface (#114)
- feat: try catch lifecycle transitions in components and controllers (#120)
- refactor: change predicate topic of controllers (#121)
- fix(controllers): keep parameter values in sync with ros (#125)
- feat(components): only publish predicates on value change (#123)
- feat(controllers): only publish predicates on value change (#124)
- fix(controllers): keep parameter values in sync with ros (#125)
- feat: use v2.0.0-rc1-jazzy image (#126)
- feat: add message definition for encoded state (#132)
- refactor: remove lifecycle predicates and add lifecycle state getter (#130)
- fix(controllers): remove duplicate function (#140)
- feat: try catch lifecycle transitions in components and controllers (#120)
- feat(components): use component description schema 1-1-1 to mark lifecycle property (#136)
- refactor(controllers): split up base class (#135)
- docs(components): update schema path in component descriptions (#154)

#### Build

- feat: update to jazzy and CL v9.0.0 (#116)
- feat: use v2.0.0-rc1-jazzy image (#126)
- release: use updated base image (#139)
- fix(controllers): remove duplicate function (#140)
- chore: format repository (#142)
- docs: update schema path in component descriptions (#154)
- feat(utils): add binary reader and recorder for encoded states (#152)
- feat!: add support for custom inputs and outputs (#133)
- release: version v5.0.0-rc0009 (#155)

### Dependencies

- package-builder: v1.1.1
- ros2-ws: v2.0.0-jazzy
- control-libraries: v9.0.0

## 4.2.2

### June 14, 2024
Expand Down
2 changes: 1 addition & 1 deletion aica-package.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#syntax=ghcr.io/aica-technology/package-builder:v1.1.1

[metadata]
version = "5.0.0-rc0009"
version = "5.0.0"
description = "Modular ROS 2 extension library for dynamic composition of components and controllers with the AICA robotics framework"

[metadata.collection]
Expand Down
2 changes: 1 addition & 1 deletion doxygen/doxygen.conf
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ PROJECT_NAME = "Modulo"
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER = 4.2.2
PROJECT_NUMBER = 5.0.0

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down
2 changes: 1 addition & 1 deletion source/modulo_components/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>modulo_components</name>
<version>4.2.2</version>
<version>5.0.0</version>
<description>Modulo base classes that wrap ROS2 Nodes as modular components for the AICA application framework</description>
<maintainer email="[email protected]">Baptiste Busch</maintainer>
<maintainer email="[email protected]">Enrico Eberhard</maintainer>
Expand Down
2 changes: 1 addition & 1 deletion source/modulo_controllers/package.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<package format="3">
<name>modulo_controllers</name>
<version>4.2.2</version>
<version>5.0.0</version>
<description>Interface class for modulo controllers</description>
<maintainer email="[email protected]">Enrico Eberhard</maintainer>
<maintainer email="[email protected]">Dominic Reber</maintainer>
Expand Down
2 changes: 1 addition & 1 deletion source/modulo_core/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>modulo_core</name>
<version>4.2.2</version>
<version>5.0.0</version>
<description>Modulo Core communication and translation utilities for interoperability with AICA Control Libraries</description>
<maintainer email="[email protected]">Baptiste Busch</maintainer>
<maintainer email="[email protected]">Enrico Eberhard</maintainer>
Expand Down
2 changes: 1 addition & 1 deletion source/modulo_utils/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>modulo_utils</name>
<version>4.2.2</version>
<version>5.0.0</version>
<description>Modulo utils package for shared test fixtures</description>
<maintainer email="[email protected]">Dominic Reber</maintainer>
<license>GPLv3</license>
Expand Down

0 comments on commit cd13047

Please sign in to comment.