diff --git a/.github/ISSUE_TEMPLATE/general-issue.md b/.github/ISSUE_TEMPLATE/general-issue.md
index 3ac587d1..ed09481b 100644
--- a/.github/ISSUE_TEMPLATE/general-issue.md
+++ b/.github/ISSUE_TEMPLATE/general-issue.md
@@ -12,7 +12,7 @@ assignees: ''
- Hardware description:
- RTOS:
- Installation type:
-- Version or commit hash:
+- Version or commit hash:
#### Steps to reproduce the issue
diff --git a/.github/workflows/generate_api_reference.yml b/.github/workflows/generate_api_reference.yml
index 68feaa19..2f3f587d 100644
--- a/.github/workflows/generate_api_reference.yml
+++ b/.github/workflows/generate_api_reference.yml
@@ -1,5 +1,5 @@
name: API reference generator
-on:
+on:
workflow_dispatch:
inputs:
name:
@@ -8,7 +8,7 @@ on:
- cron: '0 6 * * *'
jobs:
- generate_api_reference:
+ generate_rmw_api_reference:
runs-on: ubuntu-latest
container: ros:foxy
steps:
@@ -27,8 +27,8 @@ jobs:
unzip doxybook2-linux-amd64-v1.3.3.zip -d doxybook2
mkdir -p ros2_ws/src; cd ros2_ws
- git clone -b foxy https://github.com/eProsima/Micro-CDR src/Micro-CDR
- git clone -b foxy https://github.com/eProsima/Micro-XRCE-DDS-Client src/Micro-XRCE-DDS-Client
+ git clone -b foxy https://github.com/eProsima/Micro-CDR src/Micro-CDR
+ git clone -b foxy https://github.com/eProsima/Micro-XRCE-DDS-Client src/Micro-XRCE-DDS-Client
git clone -b foxy https://github.com/micro-ROS/rosidl_typesupport_microxrcedds src/rosidl_typesupport_microxrcedds
git clone -b foxy https://github.com/micro-ROS/rmw-microxrcedds src/rmw-microxrcedds
@@ -40,9 +40,45 @@ jobs:
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
with:
- commit-message: micro-ROS API reference auto-update ${{ steps.date.outputs.date }}
- title: micro-ROS API reference auto-update ${{ steps.date.outputs.date }}
- body: This PR is autogenerated and updates the micro-ROS API reference. Close and reopen to trigger CI.
- branch: autoupdate_micro_ros_api_reference
+ commit-message: micro-ROS RMW API reference auto-update ${{ steps.date.outputs.date }}
+ title: micro-ROS RMW API reference auto-update ${{ steps.date.outputs.date }}
+ body: This PR is autogenerated and updates the micro-ROS RMW API reference. Close and reopen to trigger CI.
+ branch: autoupdate_micro_ros_rmw_api_reference
+ delete-branch: true
+ base: master
+
+ generate_utils_api_reference:
+ runs-on: ubuntu-latest
+ container: ros:foxy
+ steps:
+ - uses: actions/checkout@v2
+ - name: Get date
+ id: date
+ run: echo "::set-output name=date::$(date +'%d-%m-%Y %H:%M')"
+ - name: Update libraries
+ shell: bash
+ run: |
+ apt update
+ apt install -y doxygen wget git unzip cmake ros-foxy-osrf-testing-tools-cpp
+
+ pushd /
+ wget https://github.com/matusnovak/doxybook2/releases/download/v1.3.3/doxybook2-linux-amd64-v1.3.3.zip
+ unzip doxybook2-linux-amd64-v1.3.3.zip -d doxybook2
+
+ mkdir -p ros2_ws/src; cd ros2_ws
+ git clone -b galactic https://github.com/micro-ROS/micro_ros_utilities src/micro_ros_utilities
+
+ source /opt/ros/$ROS_DISTRO/setup.bash
+ colcon build --packages-up-to micro_ros_utilities --cmake-args -DBUILD_DOCUMENTATION=ON
+ popd
+
+ /doxybook2/bin/doxybook2 --input /ros2_ws/build/micro_ros_utilities/doc/xml --output _includes/utils_doc -c utils/doxy_config -t utils/doxy_templates
+ - name: Create Pull Request
+ uses: peter-evans/create-pull-request@v3
+ with:
+ commit-message: micro-ROS Utils API reference auto-update ${{ steps.date.outputs.date }}
+ title: micro-ROS Utils API reference auto-update ${{ steps.date.outputs.date }}
+ body: This PR is autogenerated and updates the micro-ROS Utils API reference. Close and reopen to trigger CI.
+ branch: autoupdate_micro_ros_utils_api_reference
delete-branch: true
base: master
\ No newline at end of file
diff --git a/_data/docs.yml b/_data/docs.yml
index f735986f..2b30176c 100644
--- a/_data/docs.yml
+++ b/_data/docs.yml
@@ -89,4 +89,5 @@
docs:
- api/overview
- api/rmw
+ - api/utils
- api/rclc
diff --git a/_docs/api/overview/index.md b/_docs/api/overview/index.md
index bb6ae483..0cef3462 100644
--- a/_docs/api/overview/index.md
+++ b/_docs/api/overview/index.md
@@ -6,4 +6,5 @@ redirect_from:
---
* [**RMW Micro XRCE-DDS**](../rmw/)
+* [**micro-ROS Utils**](../utils/)
* [**RCLC**](../rclc/)
\ No newline at end of file
diff --git a/_docs/api/utils/index.md b/_docs/api/utils/index.md
new file mode 100644
index 00000000..d80938dd
--- /dev/null
+++ b/_docs/api/utils/index.md
@@ -0,0 +1,7 @@
+---
+title: micro-ROS Utils
+permalink: /docs/api/utils/
+---
+
+{% include utils_doc/Modules/group__typeutils.md %}
+{% include utils_doc/Modules/group__stringutils.md %}
diff --git a/_docs/concepts/build_system/external_build_systems/index.md b/_docs/concepts/build_system/external_build_systems/index.md
index 6983faee..e0a4e982 100644
--- a/_docs/concepts/build_system/external_build_systems/index.md
+++ b/_docs/concepts/build_system/external_build_systems/index.md
@@ -7,7 +7,7 @@ Once you have read about the official [**micro_ros_setup** tool](/docs/concepts/
## micro-ROS component for ESP-IDF
-The [micro-ROS component for ESP-IDF](https://github.com/micro-ROS/micro_ros_espidf_component) allows to integrate micro-ROS as a component in an Espressif ESP-IDF Build System. This component allows the user to integrate the micro-ROS API and utilities in an already created ESP-IDF project just by cloning or copying a folder.
+The [micro-ROS component for ESP-IDF](https://github.com/micro-ROS/micro_ros_espidf_component) allows to integrate micro-ROS as a component in an Espressif ESP-IDF Build System. This component allows the user to integrate the micro-ROS API and utilities in an already created ESP-IDF project just by cloning or copying a folder.
Configuration of the micro-ROS library is based on the `colcon.meta` file. For more details visit the [Git repository](https://github.com/micro-ROS/micro_ros_espidf_component).
@@ -27,4 +27,4 @@ Along with this support package, there are [detailed instructions](https://githu
The [micro-ROS for STM32CubeMX](https://github.com/micro-ROS/micro_ros_stm32cubemx_utils) package is a set of utilities which enables the seamless configuration, set-up and integration of micro-ROS into an STM32 controller based project. As such, it allows micro-ROS to be virtually supported by the full set of boards offered by STMicroelectronics.
-Its usage is based on Dockers, via a prepared [Dockerfile](https://github.com/micro-ROS/micro_ros_stm32cubemx_utils/blob/foxy/microros_component/Dockerfile) which eases micro-ROS library generation outside of a ROS 2 environment.
+Its usage is based on Dockers, via a prepared [Dockerfile](https://github.com/micro-ROS/docker/blob/foxy/micro-ROS-static-library-builder/Dockerfile) which eases micro-ROS library generation outside of a ROS 2 environment.
diff --git a/_docs/concepts/build_system/index.md b/_docs/concepts/build_system/index.md
index 6b15bb1c..3e770500 100644
--- a/_docs/concepts/build_system/index.md
+++ b/_docs/concepts/build_system/index.md
@@ -23,7 +23,7 @@ ros2 run micro_ros_setup create_firmware_ws.sh [RTOS] [HARDWARE BOARD]
```
It is possible to obtain a list of the supported hardware by running the command without any argument. By doing so, it is possible to see that along with the RTOSes and hardware supported by micro-ROS this build system also provides with three extra options:
-- By using `zephyr` as RTOS and `host` as hardware name, it is possible to obtain a Zephyr RTOS image with your micro-ROS app that runs in your host computer.
+- By using `zephyr` as RTOS and `host` as hardware name, it is possible to obtain a Zephyr RTOS image with your micro-ROS app that runs in your host computer.
- By using just `host` as RTOS, micro-ROS will build a set of [micro-ROS demo applications](https://github.com/micro-ROS/micro-ROS-demos) natively in your host machine. These applications behave just like micro-ROS apps (using the same abstraction layers and middleware implementation) and allow the user to debug and test the applications on a PC.
- By using `generate_lib` as RTOS it is possible to configure the build system for generating static libraries (`.a`) and a set of headers (`include`) that can be linked in any other external tool. This option requires a valid CMake toolchain.
@@ -66,4 +66,4 @@ ros2 run micro_ros_agent micro_ros_agent [OPTIONS]
**Tip 1:** To learn use of the micro_ros_setup build system hands-on, please see the [core tutorials](https://micro-ros.github.io/docs/tutorials/core/first_application_rtos/).
-**Tip 2 :** Remember that the micro-ROS Agent can be also be used with this simple Docker command: `docker run -it --rm -v /dev:/dev --privileged --net=host microros/micro-ros-agent:foxy [OPTIONS]`
+**Tip 2 :** Remember that the micro-ROS Agent can be also be used with this simple Docker command: `docker run -it --rm -v /dev:/dev --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO [OPTIONS]`
diff --git a/_docs/overview/docker_ci_status/index.md b/_docs/overview/docker_ci_status/index.md
index 35f1a286..ba903d49 100644
--- a/_docs/overview/docker_ci_status/index.md
+++ b/_docs/overview/docker_ci_status/index.md
@@ -12,53 +12,58 @@ permalink: /docs/overview/docker_ci_status/
## Tooling Status
-| Repository | Description | CI | Issues / Pull Requests | Documentation |
-| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
-| [micro-ros-setup](https://github.com/micro-ROS/micro_ros_setup) [](https://github.com/micro-ROS/micro_ros_setup/tree/dashing) [](https://github.com/micro-ROS/micro_ros_setup/tree/foxy) | Micro-ROS tool to build and flash Micro-ROS to every supported platform | [](https://github.com/micro-ROS/micro_ros_setup/actions/workflows/nightly.yml) | [](https://github.com/micro-ROS/micro_ros_setup/issues) [](https://github.com/micro-ROS//micro_ros_setup/pulls) | [](https://github.com/micro-ROS/micro_ros_setup/blob/foxy/README.md) |
-| [micro-ros-espidf-component](https://github.com/micro-ROS/micro_ros_espidf_component) [](https://github.com/micro-ROS/micro_ros_espidf_component/tree/foxy) | Component to used Micro-ROS in ESP IDF build system | [](https://github.com/micro-ROS/micro_ros_espidf_component/actions/workflows/nightly.yml) | [](https://github.com/micro-ROS/micro_ros_espidf_component/issues) [](https://github.com/micro-ROS/micro_ros_espidf_component/pulls) | [](https://github.com/micro-ROS/micro_ros_espidf_component/blob/foxy/README.md) |
-| [micro-ros-arduino](https://github.com/micro-ROS/micro_ros_arduino) [](https://github.com/micro-ROS/micro_ros_arduino/tree/foxy) | Micro-ROS precompiled libraries to directly interface with the Arduino IDE | [](https://github.com/micro-ROS/micro_ros_arduino/actions) | [](https://github.com/micro-ROS/micro_ros_arduino/issues) [](https://github.com/micro-ROS/micro_ros_arduino/pulls) | [](https://github.com/micro-ROS/micro_ros_arduino/blob/foxy/README.md) |
-| [micro-ros-zephyr-module](https://github.com/micro-ROS/micro_ros_zephyr_module) [](https://github.com/micro-ROS/micro_ros_zephyr_module/tree/foxy) | Integration of micro-ROS within Zephyr West build system | [](https://github.com/micro-ROS/micro_ros_zephyr_module/actions/workflows/nightly.yml) | [](https://github.com/micro-ROS/micro_ros_zephyr_module/issues) [](https://github.com/micro-ROS/micro_ros_zephyr_module/pulls) | [](https://github.com/micro-ROS/micro_ros_zephyr_module/blob/foxy/README.md) |
-| [micro_ros_raspberrypi_pico_sdk](https://github.com/micro-ROS/micro_ros_raspberrypi_pico_sdk) [](https://github.com/micro-ROS/micro_ros_raspberrypi_pico_sdk/tree/foxy) | Integration of micro-ROS within Raspberry PI Pico SDK | [](https://github.com/micro-ROS/micro_ros_raspberrypi_pico_sdk/actions) | [](https://github.com/micro-ROS/micro_ros_raspberrypi_pico_sdk/issues) [](https://github.com/micro-ROS/micro_ros_raspberrypi_pico_sdk/pulls) | [](https://github.com/micro-ROS/micro_ros_raspberrypi_pico_sdk/blob/foxy/README.md) |
-| [NuttX fork](https://github.com/micro-ROS/NuttX) | NuttX fork to use with micro-ROS. Current status is **discontinued** | []() | [](https://github.com/micro-ROS/NuttX/issues) [](https://github.com/micro-ROS/NuttX/pulls) | [](https://github.com/micro-ROS/NuttX/blob/master/README.md) |
+| Repository | Description | CI | Issues / Pull Requests | Documentation |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
+| [micro-ros-setup](https://github.com/micro-ROS/micro_ros_setup) [](https://github.com/micro-ROS/micro_ros_setup/tree/galactic) [](https://github.com/micro-ROS/micro_ros_setup/tree/foxy) | Micro-ROS tool to build and flash Micro-ROS to every supported platform | [](https://github.com/micro-ROS/micro_ros_setup/actions/workflows/nightly.yml) | [](https://github.com/micro-ROS/micro_ros_setup/issues) [](https://github.com/micro-ROS//micro_ros_setup/pulls) | [](https://github.com/micro-ROS/micro_ros_setup/blob/galactic/README.md) |
+| [micro-ros-espidf-component](https://github.com/micro-ROS/micro_ros_espidf_component) [](https://github.com/micro-ROS/micro_ros_espidf_component/tree/galactic) [](https://github.com/micro-ROS/micro_ros_espidf_component/tree/foxy) | Component to used Micro-ROS in ESP IDF build system | [](https://github.com/micro-ROS/micro_ros_espidf_component/actions/workflows/nightly.yml) | [](https://github.com/micro-ROS/micro_ros_espidf_component/issues) [](https://github.com/micro-ROS/micro_ros_espidf_component/pulls) | [](https://github.com/micro-ROS/micro_ros_espidf_component/blob/galactic/README.md) |
+| [micro-ros-arduino](https://github.com/micro-ROS/micro_ros_arduino) [](https://github.com/micro-ROS/micro_ros_arduino/tree/galactic) [](https://github.com/micro-ROS/micro_ros_arduino/tree/foxy) | Micro-ROS precompiled libraries to directly interface with the Arduino IDE | [](https://github.com/micro-ROS/micro_ros_arduino/actions) | [](https://github.com/micro-ROS/micro_ros_arduino/issues) [](https://github.com/micro-ROS/micro_ros_arduino/pulls) | [](https://github.com/micro-ROS/micro_ros_arduino/blob/galactic/README.md) |
+| [micro-ros-zephyr-module](https://github.com/micro-ROS/micro_ros_zephyr_module) [](https://github.com/micro-ROS/micro_ros_zephyr_module/tree/galactic) [](https://github.com/micro-ROS/micro_ros_zephyr_module/tree/foxy) | Integration of micro-ROS within Zephyr West build system | [](https://github.com/micro-ROS/micro_ros_zephyr_module/actions/workflows/nightly.yml) | [](https://github.com/micro-ROS/micro_ros_zephyr_module/issues) [](https://github.com/micro-ROS/micro_ros_zephyr_module/pulls) | [](https://github.com/micro-ROS/micro_ros_zephyr_module/blob/galactic/README.md) |
+| [micro_ros_raspberrypi_pico_sdk](https://github.com/micro-ROS/micro_ros_raspberrypi_pico_sdk) [](https://github.com/micro-ROS/micro_ros_raspberrypi_pico_sdk/tree/galactic) [](https://github.com/micro-ROS/micro_ros_raspberrypi_pico_sdk/tree/foxy) | Integration of micro-ROS within Raspberry PI Pico SDK | [](https://github.com/micro-ROS/micro_ros_raspberrypi_pico_sdk/actions) | [](https://github.com/micro-ROS/micro_ros_raspberrypi_pico_sdk/issues) [](https://github.com/micro-ROS/micro_ros_raspberrypi_pico_sdk/pulls) | [](https://github.com/micro-ROS/micro_ros_raspberrypi_pico_sdk/blob/galactic/README.md) |
+| [micro_ros_mbed](https://github.com/micro-ROS/micro_ros_mbed) [](https://github.com/micro-ROS/micro_ros_mbed/tree/galactic) | Integration of micro-ROS within Mbed RTOS | [](https://github.com/micro-ROS/micro_ros_mbed/actions) | [](https://github.com/micro-ROS/micro_ros_mbed/issues) [](https://github.com/micro-ROS/micro_ros_mbed/pulls) | [](https://github.com/micro-ROS/micro_ros_mbed/blob/galactic/README.md) |
+| [micro_ros_nuttx_app](https://github.com/micro-ROS/micro_ros_nuttx_app) [](https://github.com/micro-ROS/micro_ros_nuttx_app/tree/galactic) | Integration of micro-ROS within Nuttx 10 | [](https://github.com/micro-ROS/micro_ros_nuttx_app/actions) | [](https://github.com/micro-ROS/micro_ros_nuttx_app/issues) [](https://github.com/micro-ROS/micro_ros_nuttx_app/pulls) | [](https://github.com/micro-ROS/micro_ros_nuttx_app/blob/galactic/README.md) |
+| [micro_ros_stm32cubemx_utils](https://github.com/micro-ROS/micro_ros_stm32cubemx_utils) [](https://github.com/micro-ROS/micro_ros_stm32cubemx_utils/tree/galactic) | Integration of micro-ROS within STM32CubeMX and STM32CubeIDE | []() | [](https://github.com/micro-ROS/micro_ros_stm32cubemx_utils/issues) [](https://github.com/micro-ROS/micro_ros_stm32cubemx_utils/pulls) | [](https://github.com/micro-ROS/micro_ros_stm32cubemx_utils/blob/galactic/README.md) |
+| [NuttX fork](https://github.com/micro-ROS/NuttX) | NuttX fork to use with micro-ROS. Current status is **discontinued** | []() | [](https://github.com/micro-ROS/NuttX/issues) [](https://github.com/micro-ROS/NuttX/pulls) | [](https://github.com/micro-ROS/NuttX/blob/master/README.md) |
## Source Code Repositories Status
Most repositories can be found in GitHub's micro-ROS organization at [github.com/micro-ROS/](https://github.com/micro-ROS/).
-| Repository | Description | CI | Issues / Pull Requests | Documentation |
-| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------- |
-| [Micro XRCE-DDS Client](https://github.com/eProsima/Micro-XRCE-DDS-Client) [](https://github.com/eProsima/Micro-XRCE-DDS-Client/tree/dashing) [](https://github.com/eProsima/Micro-XRCE-DDS-Client/tree/foxy) | Client C99 library of eProsima's open-source implementation of DDS-XRCE | [](http://jenkins.eprosima.com:8080/view/Micro%20XRCE/job/Micro-XRCE-DDS-Client%20Github/) | [](https://github.com/eProsima/Micro-XRCE-DDS-Client/issues) [](https://github.com/eProsima/Micro-XRCE-DDS-Client/pulls) | [](https://micro-xrce-dds.docs.eprosima.com/en/latest/client.html) |
-| [Micro XRCE-DDS Agent](https://github.com/eProsima/Micro-XRCE-DDS-Agent) [](https://github.com/eProsima/Micro-XRCE-DDS-Agent/tree/dashing) [](https://github.com/eProsima/Micro-XRCE-DDS-Agent/tree/foxy) | Agent (bridge to DDS) C++11 library of eProsima's open-source implementation of DDS-XRCE | [](http://jenkins.eprosima.com:8080/view/Micro%20XRCE/job/Micro-XRCE-DDS-Agent%20Github/) | [](https://github.com/eProsima/Micro-XRCE-DDS-Agent/issues) [](https://github.com/eProsima/Micro-XRCE-DDS-Agent/pulls) | [](https://micro-xrce-dds.docs.eprosima.com/en/latest/agent.html) |
-| [rmw-microxrcedds](https://github.com/micro-ROS/rmw-microxrcedds) [](https://github.com/micro-ROS/rmw-microxrcedds/tree/dashing) [](https://github.com/micro-ROS/rmw-microxrcedds/tree/foxy) | ROS 2 RMW adapter for Micro-XRCE-DDS Client library | [](https://github.com/micro-ROS/rmw-microxrcedds/actions?query=workflow%3A%22CI+RMW_MicroXRCEDDS%22) | [](https://github.com/micro-ROS/rmw-microxrcedds/issues) [](https://github.com/micro-ROS/rmw-microxrcedds/pulls) | [](https://github.com/micro-ROS/rmw-microxrcedds/blob/foxy/README.md) |
-| [rosidl-typesupport-microxrcedds](https://github.com/micro-ROS/rosidl_typesupport_microxrcedds) [](https://github.com/micro-ROS/rosidl_typesupport_microxrcedds/tree/dashing) [](https://github.com/micro-ROS/rosidl_typesupport_microxrcedds/tree/foxy) | ROS 2 type support for Micro-XRCE-DDS Client library | [](https://github.com/micro-ROS/rosidl_typesupport_microxrcedds/actions?query=workflow%3A%22CI+TypeSupport_MicroXRCEDDS%22) | [](https://github.com/micro-ROS/rosidl_typesupport_microxrcedds/issues) [](https://github.com/micro-ROS/rosidl_typesupport_microxrcedds/pulls) | [](https://github.com/micro-ROS/rosidl_typesupport_microxrcedds/blob/master/README.md) |
-| [micro-ROS-Agent](https://github.com/micro-ROS/micro-ROS-Agent) [](https://github.com/micro-ROS/micro-ROS-Agent/tree/dashing) [](https://github.com/micro-ROS/micro-ROS-Agent/tree/foxy) | Agent (bridge) to ROS 2 | [](https://github.com/micro-ROS/micro-ROS-Agent/actions?query=workflow%3A%22CI+micro-ROS+Agent%22) | [](https://github.com/micro-ROS/micro-ROS-Agent/issues) [](https://github.com/micro-ROS/micro-ROS-Agent/pulls) | [](https://github.com/micro-ROS/micro-ROS-Agent/blob/master/README.md) |
-| [micro-ros-msgs](https://github.com/micro-ROS/micro_ros_msgs) [](https://github.com/micro-ROS/micro_ros_msgs/tree/foxy) | Specific ROS 2 messages used within micro-ROS architecture | []() | [](https://github.com/micro-ROS/micro_ros_msgs/issues) [](https://github.com/micro-ROS/micro_ros_msgs/pulls) | [](https://github.com/micro-ROS/micro_ros_msgs/blob/main/README.md) |
-| [system_modes](https://github.com/micro-ROS/system_modes) [](https://github.com/micro-ROS/system_modes/releases) [](https://github.com/micro-ROS/system_modes/releases) | Extension for `rclcpp` | [](https://github.com/micro-ROS/system_modes/actions?query=workflow%3A%22Test+system+modes%22) | [](https://github.com/micro-ROS/system_modes/issues) [](https://github.com/micro-ROS/system_modes/pulls) | [](https://github.com/micro-ROS/system_modes/blob/master/README.md) |
-| [rclc](https://github.com/ros2/rclc) [](https://github.com/ros2/rclc/tree/dashing) [](https://github.com/ros2/rclc/tree/master) [](https://github.com/ros2/rclc/tree/master) | Set of convenience functions and additional concepts, such as executor, to extend the capabilities of ROS 2 `rcl` in C | [](https://github.com/ros2/rclc/actions?query=workflow%3A%22CI+RCLC%22) | [](https://github.com/ros2/rclc/issues) [](https://github.com/ros2/rclc/pulls) | [](https://github.com/ros2/rclc/blob/master/README.md) |
+| Repository | Description | CI | Issues / Pull Requests | Documentation |
+| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------- |
+| [Micro XRCE-DDS Client](https://github.com/eProsima/Micro-XRCE-DDS-Client) [](https://github.com/eProsima/Micro-XRCE-DDS-Client/tree/foxy) [](https://github.com/eProsima/Micro-XRCE-DDS-Client/tree/foxy) | Client C99 library of eProsima's open-source implementation of DDS-XRCE | [](http://jenkins.eprosima.com:8080/view/Micro%20XRCE/job/Micro-XRCE-DDS-Client%20Github/) | [](https://github.com/eProsima/Micro-XRCE-DDS-Client/issues) [](https://github.com/eProsima/Micro-XRCE-DDS-Client/pulls) | [](https://micro-xrce-dds.docs.eprosima.com/en/latest/client.html) |
+| [Micro XRCE-DDS Agent](https://github.com/eProsima/Micro-XRCE-DDS-Agent) [](https://github.com/eProsima/Micro-XRCE-DDS-Agent/tree/foxy) [](https://github.com/eProsima/Micro-XRCE-DDS-Agent/tree/foxy) | Agent (bridge to DDS) C++11 library of eProsima's open-source implementation of DDS-XRCE | [](http://jenkins.eprosima.com:8080/view/Micro%20XRCE/job/Micro-XRCE-DDS-Agent%20Github/) | [](https://github.com/eProsima/Micro-XRCE-DDS-Agent/issues) [](https://github.com/eProsima/Micro-XRCE-DDS-Agent/pulls) | [](https://micro-xrce-dds.docs.eprosima.com/en/latest/agent.html) |
+| [rmw-microxrcedds](https://github.com/micro-ROS/rmw-microxrcedds) [](https://github.com/micro-ROS/rmw-microxrcedds/tree/galactic) [](https://github.com/micro-ROS/rmw-microxrcedds/tree/foxy) | ROS 2 RMW adapter for Micro-XRCE-DDS Client library | [](https://github.com/micro-ROS/rmw-microxrcedds/actions?query=workflow%3A%22CI+RMW_MicroXRCEDDS%22) | [](https://github.com/micro-ROS/rmw-microxrcedds/issues) [](https://github.com/micro-ROS/rmw-microxrcedds/pulls) | [](https://github.com/micro-ROS/rmw-microxrcedds/blob/foxy/README.md) |
+| [rosidl-typesupport-microxrcedds](https://github.com/micro-ROS/rosidl_typesupport_microxrcedds) [](https://github.com/micro-ROS/rosidl_typesupport_microxrcedds/tree/galactic) [](https://github.com/micro-ROS/rosidl_typesupport_microxrcedds/tree/foxy) | ROS 2 type support for Micro-XRCE-DDS Client library | [](https://github.com/micro-ROS/rosidl_typesupport_microxrcedds/actions?query=workflow%3A%22CI+TypeSupport_MicroXRCEDDS%22) | [](https://github.com/micro-ROS/rosidl_typesupport_microxrcedds/issues) [](https://github.com/micro-ROS/rosidl_typesupport_microxrcedds/pulls) | [](https://github.com/micro-ROS/rosidl_typesupport_microxrcedds/blob/master/README.md) |
+| [micro-ROS-Agent](https://github.com/micro-ROS/micro-ROS-Agent) [](https://github.com/micro-ROS/micro-ROS-Agent/tree/galactic) [](https://github.com/micro-ROS/micro-ROS-Agent/tree/foxy) | Agent (bridge) to ROS 2 | [](https://github.com/micro-ROS/micro-ROS-Agent/actions?query=workflow%3A%22CI+micro-ROS+Agent%22) | [](https://github.com/micro-ROS/micro-ROS-Agent/issues) [](https://github.com/micro-ROS/micro-ROS-Agent/pulls) | [](https://github.com/micro-ROS/micro-ROS-Agent/blob/master/README.md) |
+| [micro-ros-msgs](https://github.com/micro-ROS/micro_ros_msgs) [](https://github.com/micro-ROS/micro_ros_msgs/tree/galactic) [](https://github.com/micro-ROS/micro_ros_msgs/tree/foxy) | Specific ROS 2 messages used within micro-ROS architecture | []() | [](https://github.com/micro-ROS/micro_ros_msgs/issues) [](https://github.com/micro-ROS/micro_ros_msgs/pulls) | [](https://github.com/micro-ROS/micro_ros_msgs/blob/main/README.md) |
+| [micro_ros_utilities](https://github.com/micro-ROS/micro_ros_utilities) [](https://github.com/micro-ROS/micro_ros_utilities/tree/foxy) | micro-ROS utilities for embedded applications | [](https://github.com/micro-ROS/micro_ros_utilities/actions/workflows/ci.yml) | [](https://github.com/micro-ROS/micro_ros_utilities/issues) [](https://github.com/micro-ROS/micro_ros_utilities/pulls) | [](https://github.com/micro-ROS/micro_ros_utilities/blob/main/README.md) |
+| [system_modes](https://github.com/micro-ROS/system_modes) [](https://github.com/micro-ROS/system_modes/releases) [](https://github.com/micro-ROS/system_modes/releases) | Extension for `rclcpp` | [](https://github.com/micro-ROS/system_modes/actions?query=workflow%3A%22Test+system+modes%22) | [](https://github.com/micro-ROS/system_modes/issues) [](https://github.com/micro-ROS/system_modes/pulls) | [](https://github.com/micro-ROS/system_modes/blob/master/README.md) |
+| [rclc](https://github.com/ros2/rclc) [](https://github.com/ros2/rclc/tree/dashing) [](https://github.com/ros2/rclc/tree/master) [](https://github.com/ros2/rclc/tree/master) [](https://github.com/ros2/rclc/tree/galactic) | Set of convenience functions and additional concepts, such as executor, to extend the capabilities of ROS 2 `rcl` in C | [](https://github.com/ros2/rclc/actions?query=workflow%3A%22CI+RCLC%22) | [](https://github.com/ros2/rclc/issues) [](https://github.com/ros2/rclc/pulls) | [](https://github.com/ros2/rclc/blob/master/README.md) |
+
## Example Application Repositories Status
-| Name | Description | CI | Issues / Pull Requests | Documentation |
-| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------- |
-| [micro-ROS-demos](https://github.com/micro-ROS/micro-ROS-demos) [](https://github.com/micro-ROS/micro-ROS-demos/tree/dashing) [](https://github.com/micro-ROS/micro-ROS-demos/tree/foxy) | Collection of generic demos, using publishers, subscribers, custom messages, services and graph introspection | [](https://github.com/micro-ROS/micro-ROS-demos/actions?query=workflow%3ACI) | [](https://github.com/micro-ROS/micro-ROS-demos/issues) [](https://github.com/micro-ROS/micro-ROS-demos/pulls) | [](https://github.com/micro-ROS/micro-ROS-demos/blob/foxy/README.md) |
-| [freertos_apps](https://github.com/micro-ROS/freertos_apps) [](https://github.com/micro-ROS/freertos_apps/tree/dashing) [](https://github.com/micro-ROS/freertos_apps/tree/foxy) | Demo applications for FreeRTOS | []() | [](https://github.com/micro-ROS/freertos_apps/issues) [](https://github.com/micro-ROS/freertos_apps/pulls) | [](https://github.com/micro-ROS/freertos_apps/blob/foxy/README.md) |
-| [zephyr_apps](https://github.com/micro-ROS/zephyr_apps) [](https://github.com/micro-ROS/zephyr_apps/tree/dashing) [](https://github.com/micro-ROS/zephyr_apps/tree/foxy) | Demo applications for Zephyr | []() | [](https://github.com/micro-ROS/zephyr_apps/issues) [](https://github.com/micro-ROS/zephyr_apps/pulls) | [](https://github.com/micro-ROS/zephyr_apps/blob/foxy/README.md) |
-| [raspbian_apps](https://github.com/micro-ROS/raspian_apps) [](https://github.com/micro-ROS/raspbian_apps/tree/dashing) [](https://github.com/micro-ROS/raspbian_apps/tree/foxy) | Demo applications for Raspbian | []() | [](https://github.com/micro-ROS/raspbian_apps/issues) [](https://github.com/micro-ROS/raspbian_apps/pulls) | [](https://github.com/micro-ROS/raspbian_apps/blob/foxy/README.md) |
-| [nuttx_apps](https://github.com/micro-ROS/nuttx_apps) [](https://github.com/micro-ROS/nuttx_apps/tree/dashing) [](https://github.com/micro-ROS/nuttx_apps/tree/foxy) | Demo applications for NuttX (**discontinued**) | []() | [](https://github.com/micro-ROS/nuttx_apps/issues) [](https://github.com/micro-ROS/nuttx_apps/pulls) | [](https://github.com/micro-ROS/nuttx_apps/blob/foxy/README.md) |
-| [Kobuki demo](https://github.com/micro-ROS/micro-ROS_kobuki_demo) | Kobuki (Turtlebot 2) controller demo application using micro-ROS in an Olimex board over NuttX | []() | [](https://github.com/micro-ROS/micro-ROS_kobuki_demo/issues) [](https://github.com/micro-ROS/micro-ROS_kobuki_demo/pulls) | [](https://github.com/micro-ROS/micro-ROS_kobuki_demo/blob/master/README.md) |
-| [Crazyflie demo](https://github.com/micro-ROS/micro-ROS_crazyflie_demo) [](https://github.com/micro-ROS/micro-ROS_crazyflie_demo/tree/dashing) [](https://github.com/micro-ROS/micro-ROS_crazyflie_demo/tree/foxy) | Crazyflie drone demo application using micro-ROS over FreeRTOS | []() | [](https://github.com/micro-ROS/micro-ROS_crazyflie_demo/issues) [](https://github.com/micro-ROS/micro-ROS_crazyflie_demo/pulls) | [](https://github.com/micro-ROS/micro-ROS_crazyflie_demo/blob/foxy/README.md) |
+| Name | Description | CI | Issues / Pull Requests | Documentation |
+| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------- |
+| [micro-ROS-demos](https://github.com/micro-ROS/micro-ROS-demos) [](https://github.com/micro-ROS/micro-ROS-demos/tree/galactic) [](https://github.com/micro-ROS/micro-ROS-demos/tree/foxy) | Collection of generic demos, using publishers, subscribers, custom messages, services and graph introspection | [](https://github.com/micro-ROS/micro-ROS-demos/actions?query=workflow%3ACI) | [](https://github.com/micro-ROS/micro-ROS-demos/issues) [](https://github.com/micro-ROS/micro-ROS-demos/pulls) | [](https://github.com/micro-ROS/micro-ROS-demos/blob/foxy/README.md) |
+| [freertos_apps](https://github.com/micro-ROS/freertos_apps) [](https://github.com/micro-ROS/freertos_apps/tree/foxy) | Demo applications for FreeRTOS | []() | [](https://github.com/micro-ROS/freertos_apps/issues) [](https://github.com/micro-ROS/freertos_apps/pulls) | [](https://github.com/micro-ROS/freertos_apps/blob/foxy/README.md) |
+| [zephyr_apps](https://github.com/micro-ROS/zephyr_apps) [](https://github.com/micro-ROS/zephyr_apps/tree/foxy) | Demo applications for Zephyr | []() | [](https://github.com/micro-ROS/zephyr_apps/issues) [](https://github.com/micro-ROS/zephyr_apps/pulls) | [](https://github.com/micro-ROS/zephyr_apps/blob/foxy/README.md) |
+| [raspbian_apps](https://github.com/micro-ROS/raspian_apps) [](https://github.com/micro-ROS/raspbian_apps/tree/foxy) | Demo applications for Raspbian | []() | [](https://github.com/micro-ROS/raspbian_apps/issues) [](https://github.com/micro-ROS/raspbian_apps/pulls) | [](https://github.com/micro-ROS/raspbian_apps/blob/foxy/README.md) |
+| [nuttx_apps](https://github.com/micro-ROS/nuttx_apps) [](https://github.com/micro-ROS/nuttx_apps/tree/dashing) [](https://github.com/micro-ROS/nuttx_apps/tree/foxy) | Demo applications for NuttX (**discontinued**) | []() | [](https://github.com/micro-ROS/nuttx_apps/issues) [](https://github.com/micro-ROS/nuttx_apps/pulls) | [](https://github.com/micro-ROS/nuttx_apps/blob/foxy/README.md) |
+| [Kobuki demo](https://github.com/micro-ROS/micro-ROS_kobuki_demo) | Kobuki (Turtlebot 2) controller demo application using micro-ROS in an Olimex board over NuttX | []() | [](https://github.com/micro-ROS/micro-ROS_kobuki_demo/issues) [](https://github.com/micro-ROS/micro-ROS_kobuki_demo/pulls) | [](https://github.com/micro-ROS/micro-ROS_kobuki_demo/blob/master/README.md) |
+| [Crazyflie demo](https://github.com/micro-ROS/micro-ROS_crazyflie_demo) [](https://github.com/micro-ROS/micro-ROS_crazyflie_demo/tree/foxy) | Crazyflie drone demo application using micro-ROS over FreeRTOS | []() | [](https://github.com/micro-ROS/micro-ROS_crazyflie_demo/issues) [](https://github.com/micro-ROS/micro-ROS_crazyflie_demo/pulls) | [](https://github.com/micro-ROS/micro-ROS_crazyflie_demo/blob/foxy/README.md) |
## Docker Images Status
-| Image | Description | Status |
-| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| base | Base image with a ROS 2 Foxy installation + micro-ROS specific build system tools. Used as base of any other micro-ROS image | [](https://hub.docker.com/r/microros/base/)[](https://hub.docker.com/r/microros/base/)[](https://microbadger.com/images/microros/base) |
-| micro-ros-agent | Image containing a pre-compiled micro-ROS-Agent, ready to use as a standalone application | [](https://hub.docker.com/r/microros/micro-ros-agent/)[](https://hub.docker.com/r/microros/micro-ros-agent/)[](https://microbadger.com/images/microros/micro-ros-agent) |
-| micro-ros-demos | Contains pre-compiled micro-ROS demo applications, ready to use to get a taste of micro-ROS capabilities | [](https://hub.docker.com/r/microros/micro-ros-demos/)[](https://hub.docker.com/r/microros/micro-ros-demos/)[](https://microbadger.com/images/microros/micro-ros-demos) |
-| micro-ros-olimex-nuttx | Contains a ready to flash example for Olimex STM32 E407 | [](https://hub.docker.com/r/microros/micro-ros-olimex-nuttx/)[](https://hub.docker.com/r/microros/micro-ros-olimex-nuttx/)[](https://microbadger.com/images/microros/micro-ros-olimex-nuttx) |
-| micro_ros_arduino_builder | Allows to use a pre-compiled micro-ROS library to develop applications using Arduino IDE | [](https://hub.docker.com/r/microros/micro_ros_arduino_builder/)[](https://hub.docker.com/r/microros/micro_ros_arduino_builder/)[](https://microbadger.com/images/microros/micro_ros_arduino_builder) |
-| esp-idf-microros | Allows to use micro-ROS as a component of the ESP-IDF build system | [](https://hub.docker.com/r/microros/esp-idf-microros/)[](https://hub.docker.com/r/microros/esp-idf-microros/)[](https://microbadger.com/images/microros/esp-idf-microros) |
+| Image | Description | Status |
+| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| base | Base image with a ROS 2 Foxy installation + micro-ROS specific build system tools. Used as base of any other micro-ROS image | [](https://hub.docker.com/r/microros/base/)[](https://hub.docker.com/r/microros/base/)[](https://microbadger.com/images/microros/base) |
+| micro-ros-agent | Image containing a pre-compiled micro-ROS-Agent, ready to use as a standalone application | [](https://hub.docker.com/r/microros/micro-ros-agent/)[](https://hub.docker.com/r/microros/micro-ros-agent/)[](https://microbadger.com/images/microros/micro-ros-agent) |
+| micro-ros-demos | Contains pre-compiled micro-ROS demo applications, ready to use to get a taste of micro-ROS capabilities | [](https://hub.docker.com/r/microros/micro-ros-demos/)[](https://hub.docker.com/r/microros/micro-ros-demos/)[](https://microbadger.com/images/microros/micro-ros-demos) |
+| micro-ros-olimex-nuttx | Contains a ready to flash example for Olimex STM32 E407 | [](https://hub.docker.com/r/microros/micro-ros-olimex-nuttx/)[](https://hub.docker.com/r/microros/micro-ros-olimex-nuttx/)[](https://microbadger.com/images/microros/micro-ros-olimex-nuttx) |
+| micro_ros_static_library_builder | Allows to use a pre-compiled micro-ROS library to develop applications using Arduino IDE | [](https://hub.docker.com/r/microros/micro_ros_static_library_builder/)[](https://hub.docker.com/r/microros/micro_ros_static_library_builder/)[](https://microbadger.com/images/microros/micro_ros_static_library_builder) |
+| esp-idf-microros | Allows to use micro-ROS as a component of the ESP-IDF build system | [](https://hub.docker.com/r/microros/esp-idf-microros/)[](https://hub.docker.com/r/microros/esp-idf-microros/)[](https://microbadger.com/images/microros/esp-idf-microros) |
## Webpage Source Code Repository Status
@@ -76,11 +81,13 @@ Bloom release status of packages in repository [github.com/ros2/rclc/](https://g
| [rclc](https://github.com/ros2/rclc/tree/master/rclc) | Dashing | [](https://build.ros2.org/job/Dpr__rclc__ubuntu_bionic_amd64/) | [](https://build.ros2.org/job/Dbin_ubv8_uBv8__rclc__ubuntu_bionic_arm64__binary/) | [](https://build.ros2.org/job/Dbin_ubhf_uBhf__rclc__ubuntu_bionic_armhf__binary/) |
| | Eloquent | [](https://build.ros2.org/job/Epr__rclc__ubuntu_bionic_amd64/) | [](https://build.ros2.org/job/Ebin_ubv8_uBv8__rclc__ubuntu_bionic_arm64__binary/) | [](https://build.ros2.org/job/Ebin_ubhf_uBhf__rclc__ubuntu_bionic_armhf__binary/) |
| | Foxy | [](https://build.ros2.org/job/Fpr__rclc__ubuntu_focal_amd64/) | [](https://build.ros2.org/job/Fbin_ubv8_uFv8__rclc__ubuntu_focal_arm64__binary/) | |
+| | Galactic | [](https://build.ros2.org/job/Gpr__rclc__ubuntu_focal_amd64/) | [](https://build.ros2.org/job/Gbin_ufv8_uFv8__rclc__ubuntu_focal_arm64__binary/) | |
| | Rolling | [](https://build.ros2.org/job/Rpr__rclc__ubuntu_focal_amd64/) | [](https://build.ros2.org/job/Rbin_ufv8_uFv8__rclc__ubuntu_focal_arm64__binary/) | |
| | | | | |
| [rclc_examples](https://github.com/ros2/rclc/tree/master/rclc_examples) | Dashing | [](https://build.ros2.org/job/Dbin_uB64__rclc_examples__ubuntu_bionic_amd64__binary/) | [](https://build.ros2.org/job/Dbin_ubv8_uBv8__rclc_examples__ubuntu_bionic_arm64__binary/8/) | [](https://build.ros2.org/job/Dbin_ubhf_uBhf__rclc_examples__ubuntu_bionic_armhf__binary/) |
| | Eloquent | [](https://build.ros2.org/job/Ebin_uB64__rclc_examples__ubuntu_bionic_amd64__binary/) | [](https://build.ros2.org/job/Ebin_ubv8_uBv8__rclc_examples__ubuntu_bionic_arm64__binary/8/) | [](https://build.ros2.org/job/Ebin_ubhf_uBhf__rclc_examples__ubuntu_bionic_armhf__binary/) |
| | Foxy | [](https://build.ros2.org/job/Fbin_uF64__rclc_examples__ubuntu_focal_amd64__binary/) | [](https://build.ros2.org/job/Fbin_ubv8_uFv8__rclc_examples__ubuntu_focal_arm64__binary/) | |
+| | Galactic | [](https://build.ros2.org/job/Gbin_uF64__rclc_examples__ubuntu_focal_amd64__binary/) | [](https://build.ros2.org/job/Gbin_ufv8_uFv8__rclc_examples__ubuntu_focal_arm64__binary/) | |
| | Rolling | [](https://build.ros2.org/job/Rbin_uF64__rclc_examples__ubuntu_focal_amd64__binary/) | [](https://build.ros2.org/job/Rbin_ufv8_uFv8__rclc_examples__ubuntu_focal_arm64__binary/) | |
| | | | | |
| [rclc_lifecycle](https://github.com/ros2/rclc/tree/master/rclc_lifecycle) | Dashing | [](https://build.ros2.org/job/Dbin_uB64__rclc_lifecycle__ubuntu_bionic_amd64__binary/) | [](https://build.ros2.org/job/Dbin_ubv8_uBv8__rclc_lifecycle__ubuntu_bionic_arm64__binary/) | [](https://build.ros2.org/job/Dbin_ubhf_uBhf__rclc_lifecycle__ubuntu_bionic_armhf__binary/) |
diff --git a/_includes/utils_doc/Modules/group__stringutils.md b/_includes/utils_doc/Modules/group__stringutils.md
new file mode 100644
index 00000000..553dd256
--- /dev/null
+++ b/_includes/utils_doc/Modules/group__stringutils.md
@@ -0,0 +1,205 @@
+# micro-ROS String Utilities
+
+## Functions
+
+| | Name |
+| -------------- | -------------- |
+| MICRO_ROS_UTILITIES_PUBLIC rosidl_runtime_c__String | **[micro_ros_string_utilities_init](#function-micro_ros_string_utilities_init)**(const char * data)
Create a rosidl_runtime_c__String from a char pointer. |
+| MICRO_ROS_UTILITIES_PUBLIC rosidl_runtime_c__String | **[micro_ros_string_utilities_set](#function-micro_ros_string_utilities_set)**(rosidl_runtime_c__String str, const char * data)
Create a rosidl_runtime_c__String from a char pointer. |
+| const MICRO_ROS_UTILITIES_PUBLIC char * | **[micro_ros_string_utilities_get_c_str](#function-micro_ros_string_utilities_get_c_str)**(rosidl_runtime_c__String str)
Returns the char pointer to the rosidl_runtime_c__String data. |
+| rosidl_runtime_c__String | **[micro_ros_string_utilities_append](#function-micro_ros_string_utilities_append)**(rosidl_runtime_c__String str, const char * data)
Appends a char pointer to the end of a rosidl_runtime_c__String. |
+| MICRO_ROS_UTILITIES_PUBLIC rosidl_runtime_c__String | **[micro_ros_string_utilities_remove_tail_chars](#function-micro_ros_string_utilities_remove_tail_chars)**(rosidl_runtime_c__String str, const size_t n)
Removes characters from the end of a string. |
+| MICRO_ROS_UTILITIES_PUBLIC void | **[micro_ros_string_utilities_destroy](#function-micro_ros_string_utilities_destroy)**(rosidl_runtime_c__String * str)
Destroys a rosidl_runtime_c__String. |
+
+
+## Functions Documentation
+
+### function micro_ros_string_utilities_init
+
+```cpp
+MICRO_ROS_UTILITIES_PUBLIC rosidl_runtime_c__String micro_ros_string_utilities_init(
+ const char * data
+)
+```
+
+Create a rosidl_runtime_c__String from a char pointer.
+
+**Parameters**:
+
+ * **data** char pointer
+
+
+**Return**: `rosidl_runtime_c__String` string containing data
+
+
+
+------------------
+
+
+| Attribute | Adherence |
+| -------- | -------- |
+| Allocates Memory | Yes |
+| Thread-Safe | No |
+| Uses Atomics | No |
+| Lock-Free | Yes |
+
+
+### function micro_ros_string_utilities_set
+
+```cpp
+MICRO_ROS_UTILITIES_PUBLIC rosidl_runtime_c__String micro_ros_string_utilities_set(
+ rosidl_runtime_c__String str,
+ const char * data
+)
+```
+
+Create a rosidl_runtime_c__String from a char pointer.
+
+**Parameters**:
+
+ * **str** rosidl_runtime_c__String to set
+ * **data** char pointer
+
+
+**Return**: `rosidl_runtime_c__String` string containing data
+
+
+
+------------------
+
+
+| Attribute | Adherence |
+| -------- | -------- |
+| Allocates Memory | Yes |
+| Thread-Safe | No |
+| Uses Atomics | No |
+| Lock-Free | Yes |
+
+
+### function micro_ros_string_utilities_get_c_str
+
+```cpp
+const MICRO_ROS_UTILITIES_PUBLIC char * micro_ros_string_utilities_get_c_str(
+ rosidl_runtime_c__String str
+)
+```
+
+Returns the char pointer to the rosidl_runtime_c__String data.
+
+**Parameters**:
+
+ * **str** a rosidl_runtime_c__String
+
+
+**Return**: `const char` char pointer
+
+
+
+------------------
+
+
+| Attribute | Adherence |
+| -------- | -------- |
+| Allocates Memory | Yes |
+| Thread-Safe | No |
+| Uses Atomics | No |
+| Lock-Free | Yes |
+
+
+### function micro_ros_string_utilities_append
+
+```cpp
+rosidl_runtime_c__String micro_ros_string_utilities_append(
+ rosidl_runtime_c__String str,
+ const char * data
+)
+```
+
+Appends a char pointer to the end of a rosidl_runtime_c__String.
+
+**Parameters**:
+
+ * **str** a rosidl_runtime_c__String
+ * **data** characters to append
+
+
+**Return**: `rosidl_runtime_c__String` new string
+
+
+
+------------------
+
+
+| Attribute | Adherence |
+| -------- | -------- |
+| Allocates Memory | Yes |
+| Thread-Safe | No |
+| Uses Atomics | No |
+| Lock-Free | Yes |
+
+
+### function micro_ros_string_utilities_remove_tail_chars
+
+```cpp
+MICRO_ROS_UTILITIES_PUBLIC rosidl_runtime_c__String micro_ros_string_utilities_remove_tail_chars(
+ rosidl_runtime_c__String str,
+ const size_t n
+)
+```
+
+Removes characters from the end of a string.
+
+**Parameters**:
+
+ * **str** a rosidl_runtime_c__String
+ * **n** number of characters to remove
+
+
+**Return**: `rosidl_runtime_c__String` new string
+
+
+
+------------------
+
+
+| Attribute | Adherence |
+| -------- | -------- |
+| Allocates Memory | Yes |
+| Thread-Safe | No |
+| Uses Atomics | No |
+| Lock-Free | Yes |
+
+
+### function micro_ros_string_utilities_destroy
+
+```cpp
+MICRO_ROS_UTILITIES_PUBLIC void micro_ros_string_utilities_destroy(
+ rosidl_runtime_c__String * str
+)
+```
+
+Destroys a rosidl_runtime_c__String.
+
+**Parameters**:
+
+ * **str** a rosidl_runtime_c__String
+
+
+
+
+------------------
+
+
+| Attribute | Adherence |
+| -------- | -------- |
+| Allocates Memory | Yes |
+| Thread-Safe | No |
+| Uses Atomics | No |
+| Lock-Free | Yes |
+
+
+
+
+
+
+-------------------------------
\ No newline at end of file
diff --git a/_includes/utils_doc/Modules/group__typeutils.md b/_includes/utils_doc/Modules/group__typeutils.md
new file mode 100644
index 00000000..8111b024
--- /dev/null
+++ b/_includes/utils_doc/Modules/group__typeutils.md
@@ -0,0 +1,253 @@
+# micro-ROS Types Utilities
+
+## Functions
+
+| | Name |
+| -------------- | -------------- |
+| MICRO_ROS_UTILITIES_PUBLIC rosidl_runtime_c__String | **[micro_ros_utilities_type_info](#function-micro_ros_utilities_type_info)**(const rosidl_message_type_support_t * type_support)
Returns a string with the type instronspection data. |
+| MICRO_ROS_UTILITIES_PUBLIC size_t | **[micro_ros_utilities_get_dynamic_size](#function-micro_ros_utilities_get_dynamic_size)**(const rosidl_message_type_support_t * type_support, const micro_ros_utilities_memory_conf_t conf)
Returns the dynamic memory size that will be used for a type. |
+| MICRO_ROS_UTILITIES_PUBLIC size_t | **[micro_ros_utilities_get_static_size](#function-micro_ros_utilities_get_static_size)**(const rosidl_message_type_support_t * type_support, const micro_ros_utilities_memory_conf_t conf)
Returns the static memory size that will be used for a type. |
+| MICRO_ROS_UTILITIES_PUBLIC bool | **[micro_ros_utilities_create_message_memory](#function-micro_ros_utilities_create_message_memory)**(const rosidl_message_type_support_t * type_support, void * ros_msg, const micro_ros_utilities_memory_conf_t conf)
Allocates the dynamic memory required for a message. |
+| MICRO_ROS_UTILITIES_PUBLIC bool | **[micro_ros_utilities_create_static_message_memory](#function-micro_ros_utilities_create_static_message_memory)**(const rosidl_message_type_support_t * type_support, void * ros_msg, const micro_ros_utilities_memory_conf_t conf, uint8_t * buffer, size_t buffer_len)
Allocates the memory required for a message in a user-provided buffer. |
+| MICRO_ROS_UTILITIES_PUBLIC bool | **[micro_ros_utilities_destroy_message_memory](#function-micro_ros_utilities_destroy_message_memory)**(const rosidl_message_type_support_t * type_support, void * ros_msg, const micro_ros_utilities_memory_conf_t conf)
Deallocates the dynamic memory of a message. |
+
+## Attributes
+
+| | Name |
+| -------------- | -------------- |
+| const micro_ros_utilities_memory_conf_t | **micro_ros_utilities_memory_conf_default** |
+
+## Types Documentation
+
+### typedef micro_ros_utilities_memory_rule_t
+
+```cpp
+typedef struct micro_ros_utilities_memory_rule_t micro_ros_utilities_memory_rule_t;
+```
+
+
+### typedef micro_ros_utilities_memory_conf_t
+
+```cpp
+typedef struct micro_ros_utilities_memory_conf_t micro_ros_utilities_memory_conf_t;
+```
+
+
+
+## Functions Documentation
+
+### function micro_ros_utilities_type_info
+
+```cpp
+MICRO_ROS_UTILITIES_PUBLIC rosidl_runtime_c__String micro_ros_utilities_type_info(
+ const rosidl_message_type_support_t * type_support
+)
+```
+
+Returns a string with the type instronspection data.
+
+**Parameters**:
+
+ * **type_support** ROS 2 typesupport
+
+
+**Return**: `rosidl_runtime_c__String` string containing data
+
+
+
+------------------
+
+
+| Attribute | Adherence |
+| -------- | -------- |
+| Allocates Memory | Yes |
+| Thread-Safe | No |
+| Uses Atomics | No |
+| Lock-Free | Yes |
+
+
+### function micro_ros_utilities_get_dynamic_size
+
+```cpp
+MICRO_ROS_UTILITIES_PUBLIC size_t micro_ros_utilities_get_dynamic_size(
+ const rosidl_message_type_support_t * type_support,
+ const micro_ros_utilities_memory_conf_t conf
+)
+```
+
+Returns the dynamic memory size that will be used for a type.
+
+**Parameters**:
+
+ * **type_support** ROS 2 typesupport
+ * **conf** Utils configurator
+
+
+**Return**: `size_t` Size in Bytes that will be used
+
+
+
+------------------
+
+
+| Attribute | Adherence |
+| -------- | -------- |
+| Allocates Memory | Yes |
+| Thread-Safe | No |
+| Uses Atomics | No |
+| Lock-Free | Yes |
+
+
+### function micro_ros_utilities_get_static_size
+
+```cpp
+MICRO_ROS_UTILITIES_PUBLIC size_t micro_ros_utilities_get_static_size(
+ const rosidl_message_type_support_t * type_support,
+ const micro_ros_utilities_memory_conf_t conf
+)
+```
+
+Returns the static memory size that will be used for a type.
+
+**Parameters**:
+
+ * **type_support** ROS 2 typesupport
+ * **conf** Utils configurator
+
+
+**Return**: `size_t` Size in Bytes that will be used
+
+
+
+------------------
+
+
+| Attribute | Adherence |
+| -------- | -------- |
+| Allocates Memory | Yes |
+| Thread-Safe | No |
+| Uses Atomics | No |
+| Lock-Free | Yes |
+
+
+### function micro_ros_utilities_create_message_memory
+
+```cpp
+MICRO_ROS_UTILITIES_PUBLIC bool micro_ros_utilities_create_message_memory(
+ const rosidl_message_type_support_t * type_support,
+ void * ros_msg,
+ const micro_ros_utilities_memory_conf_t conf
+)
+```
+
+Allocates the dynamic memory required for a message.
+
+**Parameters**:
+
+ * **type_support** ROS 2 typesupport
+ * **ros_msg** ROS 2 msg with no type
+ * **conf** Utils configurator
+
+
+**Return**: `bool` true if success
+
+
+
+------------------
+
+
+| Attribute | Adherence |
+| -------- | -------- |
+| Allocates Memory | Yes |
+| Thread-Safe | No |
+| Uses Atomics | No |
+| Lock-Free | Yes |
+
+
+### function micro_ros_utilities_create_static_message_memory
+
+```cpp
+MICRO_ROS_UTILITIES_PUBLIC bool micro_ros_utilities_create_static_message_memory(
+ const rosidl_message_type_support_t * type_support,
+ void * ros_msg,
+ const micro_ros_utilities_memory_conf_t conf,
+ uint8_t * buffer,
+ size_t buffer_len
+)
+```
+
+Allocates the memory required for a message in a user-provided buffer.
+
+**Parameters**:
+
+ * **type_support** ROS 2 typesupport
+ * **ros_msg** ROS 2 msg with no type
+ * **conf** Utils configurator
+ * **buffer** User buffer
+ * **buffer_len** User buffer length
+
+
+**Return**: `bool` true if success
+
+
+
+------------------
+
+
+| Attribute | Adherence |
+| -------- | -------- |
+| Allocates Memory | Yes |
+| Thread-Safe | No |
+| Uses Atomics | No |
+| Lock-Free | Yes |
+
+
+### function micro_ros_utilities_destroy_message_memory
+
+```cpp
+MICRO_ROS_UTILITIES_PUBLIC bool micro_ros_utilities_destroy_message_memory(
+ const rosidl_message_type_support_t * type_support,
+ void * ros_msg,
+ const micro_ros_utilities_memory_conf_t conf
+)
+```
+
+Deallocates the dynamic memory of a message.
+
+**Parameters**:
+
+ * **type_support** ROS 2 typesupport
+ * **ros_msg** ROS 2 msg with no type
+ * **conf** Utils configurator
+
+
+**Return**: `bool` true if success
+
+
+
+------------------
+
+
+| Attribute | Adherence |
+| -------- | -------- |
+| Allocates Memory | Yes |
+| Thread-Safe | No |
+| Uses Atomics | No |
+| Lock-Free | Yes |
+
+
+
+## Attributes Documentation
+
+### variable micro_ros_utilities_memory_conf_default
+
+```cpp
+static const micro_ros_utilities_memory_conf_t micro_ros_utilities_memory_conf_default =
+{20, 5, 5, NULL, 0, NULL};
+```
+
+
+
+
+
+-------------------------------
\ No newline at end of file
diff --git a/_includes/utils_doc/index_groups.md b/_includes/utils_doc/index_groups.md
new file mode 100644
index 00000000..37428716
--- /dev/null
+++ b/_includes/utils_doc/index_groups.md
@@ -0,0 +1,11 @@
+# Modules
+
+
+
+
+* **group [micro-ROS String Utilities](Modules/group__stringutils.md)**
+* **group [micro-ROS Types Utilities](Modules/group__typeutils.md)**
+
+
+
+-------------------------------
diff --git a/scripts/cibuild b/scripts/cibuild
index 8f0a1faf..06085ee9 100755
--- a/scripts/cibuild
+++ b/scripts/cibuild
@@ -19,6 +19,7 @@ IGNORE_HREFS=${IGNORE_HREFS:+$IGNORE_HREFS,}$(ruby -e "puts %w{
omg.org
twitter.com
ieeexplore.ieee.org
+ build.ros2.org
${ADDITIONS}
}.map{|h| \"/#{h}/\"}.join(\",\")"
)