Skip to content

Commit ec1aac3

Browse files
pablogs9Acuadros95
andauthored
Initial Humble release (#381)
* Initial Humble release Signed-off-by: Pablo Garrido <pablogs9@gmail.com> * Update missing humble references Co-authored-by: acuadros95 <acuadros1995@gmail.com>
1 parent ad874cc commit ec1aac3

14 files changed

Lines changed: 43 additions & 43 deletions

File tree

.github/workflows/generate_api_reference.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ jobs:
6868
unzip doxybook2-linux-amd64-v1.3.3.zip -d doxybook2
6969
7070
mkdir -p ros2_ws/src; cd ros2_ws
71-
git clone -b galactic https://github.com/micro-ROS/micro_ros_utilities src/micro_ros_utilities
71+
git clone -b humble https://github.com/micro-ROS/micro_ros_utilities src/micro_ros_utilities
7272
7373
source /opt/ros/$ROS_DISTRO/setup.bash
7474
colcon build --packages-up-to micro_ros_utilities --cmake-args -DBUILD_DOCUMENTATION=ON

_docs/concepts/client_library/execution_management/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ Our approach is to provide a real-time-capable Executor for the rcl+rclc layer (
7575

7676
As the first step, we propose the rclc Executor for the rcl-layer in C programming language with several new features to support real-time and deterministic execution: It supports 1.) user-defined static sequential execution, 2) conditional execution semantics, 3) multi-threaded execution with scheduling configuration, and 4) logical execution semantics (LET). Sequential execution refers to the runtime behavior, that all callbacks are executed in a pre-defined order independent of the arrival time of messages. Conditional execution is available with a trigger condition which enables typical processing patterns in robotics (which are analyzed in detail in section [Analysis of processing patterns](#analysis-of-processing-patterns). Configuration of scheduling parameters for multi-threaded application accomplishes prioritized execution. The logical execution time concept (LET) provides data synchronization for fixed periodic task scheduling of embedded applications.
7777

78-
Beyond the advanced execution management mechanisms for micro-ROS, we also contributed to improving and extending the Executor concept in rclcpp for standard ROS 2: the callback group-level Executor. It is not a new Executor but rather a refinement of the ROS 2 Executor API allowing to prioritize a group of callbacks which is not possible with the ROS 2 default Executor in its current Galactic release.
78+
Beyond the advanced execution management mechanisms for micro-ROS, we also contributed to improving and extending the Executor concept in rclcpp for standard ROS 2: the callback group-level Executor. It is not a new Executor but rather a refinement of the ROS 2 Executor API allowing to prioritize a group of callbacks which is not possible with the ROS 2 default Executor in its current Humble release.
7979

8080

8181
## Analysis of rclcpp standard Executor
@@ -581,7 +581,7 @@ The slides can be downloaded [here](https://ec2a4d36-bac8-4759-b25e-bb1f794177f4
581581
- Multi-threaded executor with assignment of scheduling policies of unerlying operating system. [[Pull Request](https://github.com/ros2/rclc/pull/87), pre-print [SLD2021](#SLD2021)].
582582
583583
### Download
584-
The rclc Executor can be downloaded from the [ros2/rclc repository](https://github.com/ros2/rclc). It is available for the ROS 2 versions Foxy, Galactic and Rolling. The repository provides several packages including the [rclc Executor](https://github.com/ros2/rclc/tree/master/rclc) and an [rclc_examples package](https://github.com/ros2/rclc/tree/master/rclc_examples) with several application examples.
584+
The rclc Executor can be downloaded from the [ros2/rclc repository](https://github.com/ros2/rclc). It is available for the ROS 2 versions Foxy, Galactic, Humble and Rolling. The repository provides several packages including the [rclc Executor](https://github.com/ros2/rclc/tree/master/rclc) and an [rclc_examples package](https://github.com/ros2/rclc/tree/master/rclc_examples) with several application examples.
585585
586586
## Callback-group-level Executor
587587

_docs/tutorials/advanced/handling_type_memory/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ The micro-ROS type memory handling has changed in the latest micro-ROS Galactic
1515
- [Sequence types in micro-ROS](#sequence-types-in-micro-ros)
1616
- [Compound types in micro-ROS](#compound-types-in-micro-ros)
1717
- [Sequences of compound types](#sequences-of-compound-types)
18-
- [micro-ROS Galactic](#micro-ros-galactic)
18+
- [micro-ROS Galactic and beyond](#micro-ros-galactic-and-beyond)
1919

2020
# micro-ROS Foxy
2121

@@ -204,7 +204,7 @@ for(int32_t i = 0; i < 3; i++){
204204
}
205205
```
206206

207-
# micro-ROS Galactic
207+
# micro-ROS Galactic and beyond
208208

209209
Due to the inclusion of [`rosidl_typesupport_introspection_c`](https://github.com/ros2/rosidl/tree/master/rosidl_typesupport_introspection_c) in micro-ROS Galactic distribution, an automated memory handling for micro-ROS types is available. The tools related to this feature are available in the package [`micro_ros_utilities`](https://github.com/micro-ROS/micro_ros_utilities).
210210

_docs/tutorials/core/first_application_linux/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: First micro-ROS Application on Linux
33
permalink: /docs/tutorials/core/first_application_linux/
44
---
55

6-
<img src="https://img.shields.io/badge/Written_for-Foxy-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Galactic-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Rolling-green" style="display:inline"/>
6+
<img src="https://img.shields.io/badge/Written_for-Foxy-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Galactic-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Rolling-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Humble-green" style="display:inline"/>
77

88
In this tutorial, you’ll learn the use of micro-ROS with Linux by testing a Ping Pong application.
99
In the follow-up tutorial [*First micro-ROS application on an RTOS*](/docs/tutorials/core/first_application_rtos/),

_docs/tutorials/core/first_application_rtos/freertos.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ redirect_from:
55
- /docs/tutorials/advanced/freertos/freertos_getting_started/
66
---
77

8-
<img src="https://img.shields.io/badge/Tested_on-Foxy-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Galactic-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Rolling-green" style="display:inline"/>
8+
<img src="https://img.shields.io/badge/Tested_on-Foxy-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Galactic-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Rolling-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Humble-green" style="display:inline"/>
99

1010
In this tutorial, you'll learn the use of micro-ROS with FreeRTOS by testing a Ping Pong application.
1111
{% include first_application_common/target_hardware.md %}

_docs/tutorials/core/first_application_rtos/zephyr.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ redirect_from:
55
- /docs/tutorials/advanced/zephyr/zephyr_getting_started/
66
---
77

8-
<img src="https://img.shields.io/badge/Tested_on-Foxy-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Galactic-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Rolling-green" style="display:inline"/>
8+
<img src="https://img.shields.io/badge/Tested_on-Foxy-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Galactic-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Rolling-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Humble-green" style="display:inline"/>
99

1010
In this tutorial, you'll learn the use of micro-ROS with Zephyr by testing a Ping Pong application.
1111
{% include first_application_common/target_hardware.md %}

_docs/tutorials/programming_rcl_rclc/executor/executor.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ title: Executor and timers
33
permalink: /docs/tutorials/programming_rcl_rclc/executor/
44
---
55

6-
<img src="https://img.shields.io/badge/Written_for-Foxy-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Galactic-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Rolling-green" style="display:inline"/>
7-
6+
<img src="https://img.shields.io/badge/Written_for-Foxy-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Galactic-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Rolling-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Humble-green" style="display:inline"/>
7+
88
- [Timers](#timers)
99
- [Initialization](#initialization)
1010
- [Callback](#callback)
@@ -19,7 +19,7 @@ Timers can be created and added to the executor, which will call the timer callb
1919
They are usually used to handle periodic publications or events.
2020

2121
### Initialization
22-
22+
2323
```c
2424
// Timer period on nanoseconds
2525
const unsigned int timer_period = RCL_MS_TO_NS(1000);
@@ -65,7 +65,7 @@ rcl_timer_fini(&timer);
6565
```
6666

6767
This will deallocate used memory and make the timer invalid
68-
68+
6969

7070
## Executor
7171

_docs/tutorials/programming_rcl_rclc/micro-ROS/micro-ROS.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ permalink: /docs/tutorials/programming_rcl_rclc/micro-ROS/
55

66
<!-- TODO: Change section name -->
77

8-
<img src="https://img.shields.io/badge/Written_for-Galactic-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Rolling-green" style="display:inline"/>
9-
8+
<img src="https://img.shields.io/badge/Written_for-Galactic-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Rolling-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Humble-green" style="display:inline"/>
9+
1010
- [Allocators](#allocators)
1111
- [Custom allocator](#custom-allocator)
1212
- [Time sync](#time-sync)
@@ -56,8 +56,8 @@ if (!rcutils_set_default_allocator(&custom_allocator)) {
5656

5757
Custom methods prototypes and examples:
5858

59-
- allocate:
60-
59+
- allocate:
60+
6161
Allocates memory given a size, an error should be indicated by returning `NULL`:
6262

6363
```c
@@ -90,7 +90,7 @@ Custom methods prototypes and examples:
9090
- reallocate:
9191

9292
Reallocate memory if possible, otherwise it deallocates and allocates:
93-
93+
9494
```c
9595
// Function prototype:
9696
void * (*reallocate)(void * pointer, size_t size, void * state);
@@ -106,7 +106,7 @@ Custom methods prototypes and examples:
106106
- zero_allocate:
107107
108108
Allocate memory with all elements set to zero, given a number of elements and their size. An error should be indicated by returning `NULL`:
109-
109+
110110
```c
111111
// Function prototype:
112112
void * (*zero_allocate)(size_t number_of_elements, size_t size_of_element, void * state);
@@ -123,7 +123,7 @@ Custom methods prototypes and examples:
123123
*Note: the `state` input argument is espected to be unused*
124124

125125
## Time sync
126-
micro-ROS Clients can synchronize their epoch time with the connected Agent, this can be very useful when working in embedded environments that do not provide any time synchronization mechanism.
126+
micro-ROS Clients can synchronize their epoch time with the connected Agent, this can be very useful when working in embedded environments that do not provide any time synchronization mechanism.
127127
This utility is based on the NTP protocol, taking into account delays caused by the transport layer. An usage example can be found on [`micro-ROS-demos/rclc/epoch_synchronization`](https://github.com/micro-ROS/micro-ROS-demos/blob/galactic/rclc/epoch_synchronization/main.c).
128128

129129
```c
@@ -133,14 +133,14 @@ const int timeout_ms = 1000;
133133
// Synchronize time with the agent
134134
rmw_uros_sync_session(timeout_ms);
135135

136-
if (rmw_uros_epoch_synchronized())
136+
if (rmw_uros_epoch_synchronized())
137137
{
138138
// Get time in milliseconds or nanoseconds
139139
int64_t time_ms = rmw_uros_epoch_millis();
140140
int64_t time_ns = rmw_uros_epoch_nanos();
141141
}
142142
```
143-
143+
144144
## Ping agent
145145
The Client can test the connection with the Agent with the ping utility. This functionality can be used even when the micro-ROS context has not yet been initialized, which is useful to test the connection before trying to connect to the Agent. An example can be found on [`micro-ROS-demos/rclc/ping_uros_agent`](https://github.com/micro-ROS/micro-ROS-demos/blob/galactic/rclc/ping_uros_agent/main.c).
146146
@@ -154,12 +154,12 @@ const uint8_t attemps = 5;
154154
// Ping the agent
155155
rmw_ret_t ping_result = rmw_uros_ping_agent(timeout_ms, attempts);
156156
157-
if (RMW_RET_OK == ping_result)
157+
if (RMW_RET_OK == ping_result)
158158
{
159159
// micro-ROS Agent is reachable
160160
...
161-
}
162-
else
161+
}
162+
else
163163
{
164164
// micro-ROS Agent is not available
165165
...
@@ -215,7 +215,7 @@ void serialization_cb(ucdrBuffer * ucdr){
215215
micro_ros_fragment_t fragment;
216216

217217
// Serialize array size
218-
ucdr_serialize_uint32_t(ucdr, IMAGE_BYTES);
218+
ucdr_serialize_uint32_t(ucdr, IMAGE_BYTES);
219219

220220
while(len < IMAGE_BYTES){
221221
// Wait for new image "fragment"

_docs/tutorials/programming_rcl_rclc/node/node.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ title: Nodes
33
permalink: /docs/tutorials/programming_rcl_rclc/node/
44
---
55

6-
<img src="https://img.shields.io/badge/Written_for-Foxy-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Galactic-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Rolling-green" style="display:inline"/>
7-
6+
<img src="https://img.shields.io/badge/Written_for-Foxy-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Galactic-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Rolling-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Humble-green" style="display:inline"/>
7+
88
ROS 2 nodes are the main participants on ROS 2 ecosystem. They will communicate between each other using publishers, subscriptions, services, etc. Further information about ROS 2 nodes can be found [here](https://docs.ros.org/en/galactic/Tutorials/Understanding-ROS2-Nodes.html)
99

1010

@@ -75,7 +75,7 @@ ROS 2 nodes are the main participants on ROS 2 ecosystem. They will communicate
7575
}
7676
```
7777

78-
Galactic: In this case, the node options are configured on the `rclc_support_t` object with a custom API
78+
Galactic and beyond: In this case, the node options are configured on the `rclc_support_t` object with a custom API
7979

8080
```c
8181
// Initialize micro-ROS allocator
@@ -133,7 +133,7 @@ Creation of a lifecycle node as a bundle of an rcl node and the rcl lifecycle st
133133

134134
```c
135135
// Create rcl state machine
136-
rcl_lifecycle_state_machine_t state_machine =
136+
rcl_lifecycle_state_machine_t state_machine =
137137
rcl_lifecycle_get_zero_initialized_state_machine();
138138

139139
// Create the lifecycle node

_docs/tutorials/programming_rcl_rclc/parameters/parameters.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ title: Parameter server
33
permalink: /docs/tutorials/programming_rcl_rclc/parameters/
44
---
55

6-
<img src="https://img.shields.io/badge/Written_for-Galactic-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Rolling-green" style="display:inline"/>
7-
6+
<img src="https://img.shields.io/badge/Written_for-Galactic-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Rolling-green" style="display:inline"/> <img src="https://img.shields.io/badge/Tested_on-Humble-green" style="display:inline"/>
7+
88
ROS 2 parameters allow the user to create variables on a node and manipulate/read them with different ROS 2 commands. Further information about ROS 2 parameters can be found [here](https://docs.ros.org/en/rolling/Tutorials/Parameters/Understanding-ROS2-Parameters.html)
99

1010
Ready to use code examples related to this tutorial can be found in [`rclc/rclc_examples/src/example_parameter_server.c`](https://github.com/ros2/rclc/blob/master/rclc_examples/src/example_parameter_server.c).
@@ -230,7 +230,7 @@ rc = rclc_executor_add_parameter_server(&executor, &param_server, NULL);
230230
- notify_changed_over_dds: Publish parameter events to other ROS 2 nodes as well.
231231
- max_params: Maximum number of parameters allowed on the `rclc_parameter_server_t` object.
232232
- allow_undeclared_parameters: Allows creation of parameters from external parameter clients. A new parameter will be created if a `set` operation is requested on a non-existing parameter.
233-
- low_mem_mode: Reduces the memory used by the parameter server, functionality constrains are applied.
233+
- low_mem_mode: Reduces the memory used by the parameter server, functionality constrains are applied.
234234

235235
```c
236236
// Parameter server object
@@ -265,7 +265,7 @@ rc = rclc_executor_add_parameter_server(&executor, &param_server, NULL);
265265

266266
### Callback
267267

268-
When adding the parameter server to the executor, a callback could to be configured. This callback would then be executed on the following events:
268+
When adding the parameter server to the executor, a callback could to be configured. This callback would then be executed on the following events:
269269
- Parameter value change: Internal and external parameter set on existing parameters.
270270
- Parameter creation: External parameter set on unexisting parameter if `allow_undeclared_parameters` is set.
271271
- Parameter delete: External parameter delete on existing parameter.
@@ -360,15 +360,15 @@ rclc_delete_parameter(&param_server, "param2");
360360
361361
### Parameters description
362362
363-
- Parameter description
363+
- Parameter description
364364
Adds a description of a parameter and its constrains, which will be returned on a describe parameter requests:
365365
```c
366366
rclc_add_parameter_description(&param_server, "param2", "Second parameter", "Only even numbers");
367367
```
368368
369369
*The maximum string size is controlled by the compilation time option `RCLC_PARAMETER_MAX_STRING_LENGTH`, default value is 50.*
370370
371-
- Parameter constraints
371+
- Parameter constraints
372372
Informative numeric constraints can be added to int and double parameters, returning this values on describe parameter requests:
373373
- `from_value`: Start value for valid values, inclusive.
374374
- `to_value`: End value for valid values, inclusive.
@@ -388,7 +388,7 @@ rclc_delete_parameter(&param_server, "param2");
388388
389389
*This constrains will not be applied by the parameter server, leaving values filtering to the user callback.*
390390
391-
- Read-only parameters:
391+
- Read-only parameters:
392392
The new API offers a read-only flag. This flag blocks parameter changes from external clients, but allows changes on the server side:
393393
```c
394394
bool read_only = true;

0 commit comments

Comments
 (0)