Skip to content

Commit 549a607

Browse files
committed
Refactored webpage.
1 parent fbb1cff commit 549a607

4 files changed

Lines changed: 343 additions & 148 deletions

File tree

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
---
2+
title: Integration into External Platforms
3+
permalink: /docs/overview/ext_platforms/
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 [proprietary 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)