Skip to content

Commit fd2717d

Browse files
FranFinpablogs9
andauthored
Feature/rework issue 297 (#301)
* Refactored webpage. * Refactorization. * Update _docs/concepts/build_system/external_build_systems/index.md Co-authored-by: Pablo Garrido <pablogs9@gmail.com> * Update _docs/concepts/build_system/external_build_systems/index.md Co-authored-by: Pablo Garrido <pablogs9@gmail.com> * Added missing links and changed title into external tools. * Addressed Ralphs commentaries. * Fixed broken links. * Fixed names and inernal links. * Fixed more broken links. * Still fixing. * Fix * Fix Co-authored-by: Pablo Garrido <pablogs9@gmail.com>
1 parent d63530d commit fd2717d

29 files changed

Lines changed: 387 additions & 187 deletions

File tree

_data/docs.yml

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,12 @@
33
- overview/features
44
- overview/hardware
55
- overview/rtos
6-
- overview/transports
6+
- overview/ext_tools
77
- overview/comparison
88
- overview/ROS_2_feature_comparison
99
- overview/docker_ci_status
1010
- overview/users_and_clients
1111

12-
1312
- title: Client Library
1413
docs:
1514
- concepts/client_library/introduction
@@ -45,24 +44,31 @@
4544
docs:
4645
- concepts/fiware_interoperability
4746

48-
- title: Core Tutorials
47+
- title: First Steps Tutorials
4948
docs:
5049
- tutorials/core/overview
5150
- tutorials/core/first_application_linux
5251
- tutorials/core/first_application_rtos
5352
- tutorials/core/programming_rcl_rclc
54-
- tutorials/core/microxrcedds_rmw_configuration
55-
- tutorials/core/create_new_type
56-
- tutorials/core/create_dds_entities_by_ref
53+
- tutorials/core/zephyr_emulator
5754

5855
- title: Advanced Tutorials
5956
docs:
57+
- tutorials/advanced/microxrcedds_rmw_configuration
58+
- tutorials/advanced/create_new_type
59+
- tutorials/advanced/create_dds_entities_by_ref
6060
- tutorials/advanced/create_custom_transports
6161
- tutorials/advanced/create_custom_static_library
6262
- tutorials/advanced/benchmarking
6363
- tutorials/advanced/tracing
64-
- tutorials/advanced/zephyr_emulator
65-
- tutorials/advanced/microros_nuttx_bsp
64+
65+
- title: Unmaintained Tutorials
66+
docs:
67+
- tutorials/old/microros_nuttx_bsp
68+
- tutorials/old/nsh
69+
- tutorials/old/6lowpan
70+
- tutorials/old/debugging
71+
- tutorials/old/add_microros_config
6672

6773
- title: Demos
6874
docs:
@@ -76,11 +82,3 @@
7682
- tutorials/demos/thumper_demo
7783
- tutorials/demos/combined_demos
7884
- tutorials/demos/moveit2_demo
79-
80-
- title: Nuttx-specific Tutorials
81-
docs:
82-
- tutorials/advanced/nuttx/nsh
83-
- tutorials/advanced/nuttx/6lowpan
84-
- tutorials/advanced/nuttx/debugging
85-
- tutorials/advanced/nuttx/add_microros_config
86-

_docs/concepts/build_system/external_build_systems/index.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,9 @@ The procedure for configuring the built micro-ROS library is based in `colcon.me
2222
The [micro-ROS for Arduino](https://github.com/micro-ROS/micro_ros_arduino) support package is a special port of micro-ROS provided as a set of precompiled libraries for specific platforms. The main reason for this approach is that Arduino does not allow the build of a complex library such as micro-ROS, so by using this approach a ready-to-use solution is provided to the Arduino users.
2323

2424
Along with this support package, there are [detailed instructions](https://github.com/micro-ROS/micro_ros_arduino#how-to-build-the-precompiled-library) for rebuilding the micro-ROS for Arduino libraries for users that need to tune the default configuration.
25+
26+
## micro-ROS for STM32CubeMX
27+
28+
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 <a href="https://www.st.com/content/st_com/en.html">STMicroelectronics</a>.
29+
30+
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.

_docs/concepts/middleware/Micro_XRCE-DDS/index.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ These definitions allow to create a version of the library according to the appl
4444
For incorporating the desired configuration, it is necessary to run the `cmake` command every time the definitions change.
4545

4646
For more information on how to configure micro-ROS by opportunely tuning parameters either in the Micro XRCE-DDS library
47-
orin its rmw implementation [`rmw_microxrcedds`](https://github.com/micro-ROS/rmw-microxrcedds), consult this [tutorial](/docs/tutorials/core/microxrcedds_rmw_configuration/) and the `rmw_microxrcedds` [README](https://github.com/micro-ROS/rmw-microxrcedds#rmw-micro-xrce-dds-implementation).
47+
orin its rmw implementation [`rmw_microxrcedds`](https://github.com/micro-ROS/rmw-microxrcedds), consult this [tutorial](/docs/tutorials/advanced/microxrcedds_rmw_configuration/) and the `rmw_microxrcedds` [README](https://github.com/micro-ROS/rmw-microxrcedds#rmw-micro-xrce-dds-implementation).
4848

4949
### Multi-Transport Support
5050

@@ -76,7 +76,7 @@ Additionally, using references will also reduce the memory consumption of the Cl
7676
This is because the reference approach allows avoiding to build the parts of the code where XMLs are stored.
7777

7878
Notice that this mechanism is inherited by micro-ROS which, as a consequence, will be able to leverage the same full set of QoS as ROS 2.
79-
For a comprehensive review on how to use custom QoS in micro-ROS, please visit this [dedicated page](/docs/tutorials/core/create_dds_entities_by_ref/) in the tutorials section.
79+
For a comprehensive review on how to use custom QoS in micro-ROS, please visit this [dedicated page](/docs/tutorials/advanced/create_dds_entities_by_ref/) in the tutorials section.
8080

8181

8282
## Other links
@@ -87,5 +87,5 @@ For a comprehensive review on how to use custom QoS in micro-ROS, please visit t
8787
* [XRCE Agent on GitHub](https://github.com/eProsima/Micro-XRCE-DDS-Agent)
8888
* [rmw_microxrcedds on GitHub](https://github.com/micro-ROS/rmw-microxrcedds)
8989
* [Micro XRCE-DDS memory profiling](/docs/concepts/middleware/memo_prof/)
90-
* [Middleware optimization tutorial](/docs/tutorials/core/microxrcedds_rmw_configuration/).
91-
* [How to use custom QoS in micro-ROS](/docs/tutorials/core/create_dds_entities_by_ref/)
90+
* [Middleware optimization tutorial](/docs/tutorials/advanced/microxrcedds_rmw_configuration/).
91+
* [How to use custom QoS in micro-ROS](/docs/tutorials/advanced/create_dds_entities_by_ref/)

_docs/overview/ROS_2_feature_comparison/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ ROS 2 Feature | | Availability in micro-ROS
4545
-- | -- | --
4646
Transport and serialization over DDS-XRCE and DDS| <span class="status_flag">&#10003;&#43;</span> | Available transports: UDP, serial (UART) and custom as enabled by [Micro XRCE-DDS](https://github.com/eProsima/Micro-XRCE-DDS). Serialization between Client and Agent provided by [Micro-CDR](https://github.com/eProsima/Micro-CDR) and between Agent to standard DDS by [Fast-CDR](https://github.com/eProsima/Fast-CDR).
4747
Support for multiple DDS implementations, chosen at runtime | <span class="status_flag">&#10003;</span> | Support via the Micro XRCE-DDS Agent is possible in principle, but at compile-time only.
48-
Quality of service settings for handling non-ideal networks | <span class="status_flag">&#10003;&#43;</span> | For communication over the DDS-XRCE wire protocol, two QoS semantics, reliable and best-effort, are provided and can be set at compile-time. As for communication with the ROS 2 dataspace, micro-ROS entities can benefit from the whole set of QoS allowed by DDS when created [by Reference](https://micro-ros.github.io/docs/tutorials/core/create_dds_entities_by_ref/).
48+
Quality of service settings for handling non-ideal networks | <span class="status_flag">&#10003;&#43;</span> | For communication over the DDS-XRCE wire protocol, two QoS semantics, reliable and best-effort, are provided and can be set at compile-time. As for communication with the ROS 2 dataspace, micro-ROS entities can benefit from the whole set of QoS allowed by DDS when created [by Reference](/docs/tutorials/advanced/create_dds_entities_by_ref/).
4949
DDS-Security support | <span class="status_flag">&#10003;&#45;</span> | Security is not yet supported in the communication process between the Client and the Agent. However, the micro-ROS Agent can benefit from Fast DDS security capabilities during the creation of DDS entities. *Roadmap: Implementation of security mechanisms in Micro XRCE-DDS are planned for future releases.*
5050
IDL | <span class="status_flag">&#10003;&#43;</span> | micro-ROS supports the same IDL types as ROS 2. Generation of C code from IDLs as handled by the Client is performed by the [Micro-XRCE-DDS-Gen](https://github.com/eProsima/Micro-XRCE-DDS-Gen) library, whereas generation of the C++ types handled by the Agent is handled by [Fast-DDS-Gen](https://github.com/eProsima/Fast-DDS-Gen).
5151
Logging | <span class="status_flag">&#8727;</span> | *Could be available as part of the standard logging mechanism in principle but not supported by Micro-XRCE-DDS due to dynamic message size. To be checked ...*

_docs/overview/ext_tools/index.md

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
---
2+
title: Integration into External Tools
3+
permalink: /docs/overview/ext_tools/
4+
---
5+
6+
<style>
7+
.extplatcontainer {
8+
height: 300px;
9+
display: flex;
10+
flex-direction: row;
11+
justify-content: flex-start;
12+
flex-wrap: wrap;
13+
}
14+
15+
.extplatitem_image {
16+
width: 35%;
17+
display: flex;
18+
align-items: center;
19+
justify-content: center;
20+
}
21+
22+
.extplatitem_description {
23+
width: 65%;
24+
}
25+
26+
.extplatitem_image img {
27+
max-width: 100%;
28+
}
29+
</style>
30+
31+
micro-ROS aims to **bring ROS 2 to microcontrollers** to allow having first-class ROS 2 entities in the embedded world.
32+
33+
One of the approaches offered by micro-ROS to build an application for embedded platforms consists in a [ROS-specific build system](https://github.com/micro-ROS/micro_ros_setup) comprising modules which integrate the software for cross-compiling said apps on the supported plaforms, both hardware and firmware-wise. A different approach consists in generating standalone modules and components allowing to integrate micro-ROS into external or custom development frameworks, made possible by a [tool dedicated to compiling micro-ROS as a standalone library](../../tutorials/advanced/create_custom_static_library).
34+
35+
The configuration of the generated micro-ROS libraries is based on a `colcon.meta` file.
36+
37+
The modules that exist up to date for integrating into external build systems are the following:
38+
39+
### **micro-ROS component for the ESP-IDF**
40+
41+
<div class="extplatcontainer">
42+
<div class="extplatitem_description">
43+
<div>
44+
ESP-IDF is the official development framework for the ESP32, ESP32-S and ESP32-C Series SoCs.
45+
To date, it has been tested in ESP-IDF v4.1 and v4.2 with ESP32 and ESP32-S2.
46+
The <i>micro-ROS component for the ESP-IDF</i> 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.
47+
The current ports support <a href="https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/uart.html">Serial (UART)</a>,
48+
<a href="https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_wifi.html">WiFi</a>, and <a href="https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/index.html#ethernet">Ethernet</a>.
49+
<hr><b>Resources:</b>
50+
<ul>
51+
<li><a href="https://github.com/micro-ROS/micro_ros_espidf_component">micro-ROS component for ESP-IDF on GitHub</a></li>
52+
<li><a href="https://github.com/espressif/esp-idf">ESP-IDF on GitHub</a></li>
53+
<li><a href="https://docs.espressif.com/projects/esp-idf/en/latest/esp32/">ESP-IDF docs</a></li>
54+
</ul>
55+
</div>
56+
</div>
57+
58+
<div class="extplatitem_image">
59+
<img src="https://www.espressif.com/sites/all/themes/espressif/logo-black.svg">
60+
</div>
61+
</div>
62+
63+
### **micro-ROS module for the Zephyr build system**
64+
65+
<div class="extplatcontainer">
66+
<div class="extplatitem_description">
67+
<div>
68+
Zephyr is a scalable RTOS built with security in mind, and based on a small-footprint kernel designed for use on resource-constrained systems.
69+
The Zephyr kernel supports multiple hardware architectures, including ARM Cortex-M, Intel x86, ARC, Nios II, Tensilica Xtensa, and RISC-V, and can count with <a href="https://docs.zephyrproject.org/latest/boards/index.html">large number of supported boards</a>.
70+
The <i>micro-ROS module for Zephyr</i> allows to integrate the micro-ROS API and utilities in an existing Zephyr-based project just by cloning or copying a folder.
71+
<hr><b>Resources:</b>
72+
<ul>
73+
<li><a href="https://github.com/micro-ROS/micro_ros_zephyr_module">micro-ROS module for Zephyr build system on GitHub</a></li>
74+
<li><a href="https://github.com/zephyrproject-rtos/zephyr">Primary GitHub repository for the Zephyr Project</a></li>
75+
<li><a href="https://github.com/zephyrproject-rtos/zephyr">Zephyr Project official webpage</a></li>
76+
</ul>
77+
</div>
78+
</div>
79+
80+
<div class="extplatitem_image">
81+
<img src="https://upload.wikimedia.org/wikipedia/commons/2/2d/Zephyr-logo.png">
82+
</div>
83+
</div>
84+
85+
### **micro-ROS for Arduino**
86+
87+
<div class="extplatcontainer">
88+
<div class="extplatitem_description">
89+
<div>
90+
Arduino is an open-source platform based on an I/O board and a development environment that implements the Processing/Wiring language, intended to enable users to easily generate interactive projects. A CLI is also offered, which aims to be an all-in-one solution providing the tools needed to use any Arduino compatible platform from the command line.
91+
The <i>micro-ROS for Arduino</i> support package is a special <i>bare-metal</i> port of micro-ROS provided as a set of precompiled libraries for specific platforms.
92+
<hr><b>Resources:</b>
93+
<ul>
94+
<li><a href="https://github.com/micro-ROS/micro_ros_arduino">micro-ROS for Arduino on GitHub</a></li>
95+
<li><a href="https://github.com/arduino/Arduino">Arduino IDE on GitHub</a></li>
96+
<li><a href="https://github.com/arduino/arduino-cli">Arduino CLI on GitHub</a></li>
97+
<li><a href="https://www.arduino.cc/">Arduino official website</a></li>
98+
</ul>
99+
</div>
100+
</div>
101+
102+
<div class="extplatitem_image">
103+
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/87/Arduino_Logo.svg/720px-Arduino_Logo.svg.png" width="190">
104+
</div>
105+
</div>
106+
107+
### **micro-ROS for STM32CubeMX**
108+
109+
110+
<div class="extplatcontainer">
111+
<div class="extplatitem_description">
112+
<div>
113+
The STM32CubeMX is a graphical tool by ST for configuring STM32 microcontrollers and microprocessors. It enables to optimally program and manipulate the software thanks to a set of utilities that help setting up pinouts, peripherals, and middleware stacks.
114+
<i>micro-ROS for STM32CubeMX</i> is based on a <a href="https://github.com/micro-ROS/micro_ros_stm32cubemx_utils/blob/foxy/microros_component/Dockerfile">Dockerfile</a> and allows micro-ROS to be virtually supported by the full set of boards offered by <a href="https://www.st.com/content/st_com/en.html">STMicroelectronics</a>, in turn enabling the seamless integration of micro-ROS into any STM32 controller based project.
115+
<hr><b>Resources:</b>
116+
<ul>
117+
<li><a href="https://github.com/micro-ROS/micro_ros_stm32cubemx_utils">micro-ROS for STM32CubeMX on GitHub</a></li>
118+
<li><a href="https://www.st.com/content/st_com/en.html">STMicroelectronics official webpage</a></li>
119+
<li><a href="https://github.com/STMicroelectronics/STM32Cube_MCU_Overall_Offer">STMicroelectronics official webpage</a></li>
120+
</ul>
121+
</div>
122+
</div>
123+
124+
<div class="extplatitem_image">
125+
<img src="https://www.pinclipart.com/picdir/big/453-4531945_read-more-stm32cubemx-logo-clipart.png" width="190">
126+
</div>
127+
</div>
128+
129+
{% include logos_disclaimer.md %}

0 commit comments

Comments
 (0)