Skip to content

Commit 13562b8

Browse files
authored
Merge branch 'master' into improve/memory_allocation/buffer_variables
2 parents 52dda97 + 89fd4ef commit 13562b8

39 files changed

+1335
-541
lines changed

.github/dependabot.yml

-7
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,3 @@ updates:
1818
schedule:
1919
interval: "weekly"
2020
target-branch: "humble"
21-
- package-ecosystem: "github-actions"
22-
# Workflow files stored in the
23-
# default location of `.github/workflows`
24-
directory: "/"
25-
schedule:
26-
interval: "weekly"
27-
target-branch: "iron"

.github/workflows/README.md

-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,4 @@ ROS2 Distro | Branch | Build status | Documentation | Released packages
33
:---------: | :----: | :----------: | :-----------: | :---------------:
44
**Rolling** | [`master`](https://github.com/ros-controls/ros2_control/tree/master) | [![Rolling Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-binary-build.yml?branch=master) <br /> [![Rolling Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-semi-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-semi-binary-build.yml?branch=master) <br /> [![Rolling Source Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-source-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-source-build.yml?branch=master) <br/> [![Debian Rolling Source Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-debian-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-debian-build.yml) <br/> [![RHEL Rolling Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-rhel-binary-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-rhel-binary-build.yml) | [Documentation](https://control.ros.org/master/index.html) <br /> [API Reference](https://control.ros.org/master/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#rolling)
55
**Jazzy** | [`master`](https://github.com/ros-controls/ros2_control/tree/master) | [![Jazzy Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/jazzy-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/jazzy-binary-build.yml?branch=master) <br /> [![Jazzy Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/jazzy-semi-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/jazzy-semi-binary-build.yml?branch=master) <br /> [![Jazzy Source Build](https://github.com/ros-controls/ros2_control/actions/workflows/jazzy-source-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/jazzy-source-build.yml?branch=master) <br/> [![Debian Jazzy Source Build](https://github.com/ros-controls/ros2_control/actions/workflows/jazzy-debian-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control/actions/workflows/jazzy-debian-build.yml) <br/> [![RHEL Jazzy Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/jazzy-rhel-binary-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control/actions/workflows/jazzy-rhel-binary-build.yml) | [Documentation](https://control.ros.org/jazzy/index.html) <br /> [API Reference](https://control.ros.org/jazzy/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#jazzy)
6-
**Iron** | [`iron`](https://github.com/ros-controls/ros2_control/tree/master) | [![Iron Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/iron-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/iron-binary-build.yml?branch=master) <br /> [![Iron Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/iron-semi-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/iron-semi-binary-build.yml?branch=master) <br /> [![Iron Source Build](https://github.com/ros-controls/ros2_control/actions/workflows/iron-source-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/iron-source-build.yml?branch=master) <br/> [![Debian Iron Source Build](https://github.com/ros-controls/ros2_control/actions/workflows/iron-debian-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control/actions/workflows/iron-debian-build.yml) <br/> [![RHEL Iron Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/iron-rhel-binary-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control/actions/workflows/iron-rhel-binary-build.yml) | [Documentation](https://control.ros.org/iron/index.html) <br /> [API Reference](https://control.ros.org/iron/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#iron)
76
**Humble** | [`humble`](https://github.com/ros-controls/ros2_control/tree/humble) | [![Humble Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/humble-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/humble-binary-build.yml?branch=master) <br /> [![Humble Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/humble-semi-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/humble-semi-binary-build.yml?branch=master) <br /> [![Humble Source Build](https://github.com/ros-controls/ros2_control/actions/workflows/humble-source-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/humble-source-build.yml?branch=master) <br/> [![Debian Humble Source Build](https://github.com/ros-controls/ros2_control/actions/workflows/humble-debian-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control/actions/workflows/humble-debian-build.yml) <br/> [![RHEL Humble Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/humble-rhel-binary-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control/actions/workflows/humble-rhel-binary-build.yml) | [Documentation](https://control.ros.org/humble/index.html) <br /> [API Reference](https://control.ros.org/humble/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#humble)

.github/workflows/iron-abi-compatibility.yml

-27
This file was deleted.

.github/workflows/iron-binary-build.yml

-47
This file was deleted.

.github/workflows/iron-check-docs.yml

-18
This file was deleted.

.github/workflows/iron-coverage-build.yml

-36
This file was deleted.

.github/workflows/iron-debian-build.yml

-33
This file was deleted.

.github/workflows/iron-pre-commit.yml

-13
This file was deleted.

.github/workflows/iron-rhel-binary-build.yml

-31
This file was deleted.

.github/workflows/iron-semi-binary-build.yml

-47
This file was deleted.

.github/workflows/iron-source-build.yml

-27
This file was deleted.

.pre-commit-config.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ repos:
6363

6464
# CPP hooks
6565
- repo: https://github.com/pre-commit/mirrors-clang-format
66-
rev: v19.1.3
66+
rev: v19.1.4
6767
hooks:
6868
- id: clang-format
6969
args: ['-fallback-style=none', '-i']
@@ -133,7 +133,7 @@ repos:
133133
exclude: CHANGELOG\.rst|\.(svg|pyc|drawio)$
134134

135135
- repo: https://github.com/python-jsonschema/check-jsonschema
136-
rev: 0.29.4
136+
rev: 0.30.0
137137
hooks:
138138
- id: check-github-workflows
139139
args: ["--verbose"]

README.md

-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ ROS2 Distro | Branch | Build status | Documentation | Released packages
1313
:---------: | :----: | :----------: | :-----------: | :---------------:
1414
**Rolling** | [`master`](https://github.com/ros-controls/ros2_control/tree/master) | [![Rolling Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-binary-build.yml?branch=master) <br /> [![Rolling Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-semi-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-semi-binary-build.yml?branch=master) | [Documentation](https://control.ros.org/master/index.html) <br /> [API Reference](https://control.ros.org/master/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#rolling)
1515
**Jazzy** | [`master`](https://github.com/ros-controls/ros2_control/tree/master) | [![Rolling Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/jazzy-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/jazzy-binary-build.yml?branch=master) <br /> [![Rolling Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/jazzy-semi-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/jazzy-semi-binary-build.yml?branch=master) | [Documentation](https://control.ros.org/jazzy/index.html) <br /> [API Reference](https://control.ros.org/jazzy/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#jazzy)
16-
**Iron** | [`iron`](https://github.com/ros-controls/ros2_control/tree/iron) | [![Iron Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/iron-binary-build.yml/badge.svg?branch=iron)](https://github.com/ros-controls/ros2_control/actions/workflows/iron-binary-build.yml?branch=iron) <br /> [![Iron Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/iron-semi-binary-build.yml/badge.svg?branch=iron)](https://github.com/ros-controls/ros2_control/actions/workflows/iron-semi-binary-build.yml?branch=iron) | [Documentation](https://control.ros.org/iron/index.html) <br /> [API Reference](https://control.ros.org/iron/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#iron)
1716
**Humble** | [`humble`](https://github.com/ros-controls/ros2_control/tree/humble) | [![Humble Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/humble-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/humble-binary-build.yml?branch=master) <br /> [![Humble Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/humble-semi-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/humble-semi-binary-build.yml?branch=master) | [Documentation](https://control.ros.org/humble/index.html) <br /> [API Reference](https://control.ros.org/humble/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#humble)
1817

1918
[Detailed build status](.github/workflows/README.md)

controller_interface/include/controller_interface/controller_interface_base.hpp

+22-5
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,25 @@ struct ControllerUpdateStats
7171
unsigned int total_triggers;
7272
unsigned int failed_triggers;
7373
};
74+
75+
/**
76+
* Struct to store the status of the controller update method.
77+
* The status contains information if the update was triggered successfully, the result of the
78+
* update method and the execution duration of the update method. The status is used to provide
79+
* feedback to the controller_manager.
80+
* @var successful: true if the update was triggered successfully, false if not.
81+
* @var result: return_type::OK if update is successfully, otherwise return_type::ERROR.
82+
* @var execution_time: duration of the execution of the update method.
83+
* @var period: period of the update method.
84+
*/
85+
struct ControllerUpdateStatus
86+
{
87+
bool successful = true;
88+
return_type result = return_type::OK;
89+
std::optional<std::chrono::nanoseconds> execution_time = std::nullopt;
90+
std::optional<rclcpp::Duration> period = std::nullopt;
91+
};
92+
7493
/**
7594
* Base interface class for an controller. The interface may not be used to implement a controller.
7695
* The class provides definitions for `ControllerInterface` and `ChainableControllerInterface`
@@ -175,13 +194,11 @@ class ControllerInterfaceBase : public rclcpp_lifecycle::node_interfaces::Lifecy
175194
*
176195
* \param[in] time The time at the start of this control loop iteration
177196
* \param[in] period The measured time taken by the last control loop iteration
178-
* \returns A pair with the first element being a boolean indicating if the async callback method
179-
* was triggered and the second element being the last return value of the async function. For
180-
* more details check the AsyncFunctionHandler implementation in `realtime_tools` package.
197+
* \returns ControllerUpdateStatus. The status contains information if the update was triggered
198+
* successfully, the result of the update method and the execution duration of the update method.
181199
*/
182200
CONTROLLER_INTERFACE_PUBLIC
183-
std::pair<bool, return_type> trigger_update(
184-
const rclcpp::Time & time, const rclcpp::Duration & period);
201+
ControllerUpdateStatus trigger_update(const rclcpp::Time & time, const rclcpp::Duration & period);
185202

186203
CONTROLLER_INTERFACE_PUBLIC
187204
std::shared_ptr<rclcpp_lifecycle::LifecycleNode> get_node();

0 commit comments

Comments
 (0)