Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
009cbec
Adding add a microros app tutorial
Mar 19, 2020
fc47dce
Ref #7860. Olimex + Freertos tutorial (#114)
pablogs9 Mar 19, 2020
75beb6e
Created separate menu for advanced tutorials for Linux.
ralph-lange Mar 19, 2020
e91467e
Fixed redirects.
ralph-lange Mar 19, 2020
fc48994
Removed tracing menu item from Advanced Tutorials with NuttX.
ralph-lange Mar 19, 2020
f1394ef
Added link to PDF for browsers without PDF plugin.
ralph-lange Mar 20, 2020
266e61e
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
8f315f0
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
461fa2c
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
dfe65ac
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
a1b8fcc
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
7e64753
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
98c60e5
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
24c7ff4
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
0d7b250
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
a3a8ff1
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
c3df773
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
14ab141
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
d8c02e9
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
e3b3b8a
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
4065f39
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
6ffd14a
Updating add a microros application tutorial
Mar 23, 2020
7684134
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 26, 2020
8f36b97
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 26, 2020
99f3885
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 26, 2020
734ffc1
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 26, 2020
3e616d6
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 26, 2020
04b2ee9
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 26, 2020
710b4d0
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 26, 2020
bce3951
Minor modifications
Mar 26, 2020
1442642
Ref #7867. Added Zephyr simulator (#128)
pablogs9 Mar 30, 2020
66c6a97
Ref #7991. Supported hardware (#129)
pablogs9 Mar 30, 2020
a734b33
Ref #7864. Tutorial Zephyr + Olimex (#124)
pablogs9 Mar 30, 2020
4d7eda5
Ref #8025. Adding Linux micro-ROS tutorial (#130)
pablogs9 Apr 1, 2020
c415677
Link demo tutorial to repositories READMEs.
Apr 1, 2020
f9c330a
Enable submodules checkout in CI.
Apr 1, 2020
f5bda28
Update crazyflie_demo submodule.
Apr 1, 2020
be98583
Ignore http status 429 en CI.
Apr 2, 2020
73d3169
Demos README remove header (#135)
pablogs9 Apr 2, 2020
7c34061
Merge pull request #134 from micro-ROS/feature/demos_readme
Apr 7, 2020
6faff8f
Update sensors demo submodule (#136)
pablogs9 Apr 7, 2020
10d912d
Adding add a microros app tutorial
Mar 19, 2020
91b8c92
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
f32d672
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
46aabff
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
8ecbad6
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
8d08c94
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
cff2df7
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
80f8cd2
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
fb494da
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
e701a2a
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
37adbaa
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
dad2c9d
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
0368663
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
c5d9f1d
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
a717ab7
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
ef0e042
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 23, 2020
af5b52a
Updating add a microros application tutorial
Mar 23, 2020
3402616
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 26, 2020
1ec6f3f
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 26, 2020
5d745fc
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 26, 2020
53e7f79
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 26, 2020
3e19986
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 26, 2020
7f6dd48
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 26, 2020
3ace230
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Mar 26, 2020
56d2276
Minor modifications
Mar 26, 2020
90106ba
Merge branch 'feature/advance_nuttx/microros_app' of https://github.c…
Apr 7, 2020
e9b458c
Update _docs/tutorials/advanced/nuttx/add_a_microros_application/inde…
Apr 7, 2020
c701cf8
Adding flash and how to use the app points
Apr 7, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#-------------------------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
#-------------------------------------------------------------------------------------------------------------

# To fully customize the contents of this image, use the following Dockerfile instead:
# https://github.com/microsoft/vscode-dev-containers/tree/v0.106.0/containers/ubuntu-18.04-git/.devcontainer/Dockerfile
FROM mcr.microsoft.com/vscode/devcontainers/base:0-ubuntu-18.04

ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get -y install --no-install-recommends build-essential ruby ruby-dev locales zlib1g-dev \
&& gem install bundler \
#
# Clean up
&& apt-get autoremove -y \
&& apt-get clean -y \
&& rm -rf /var/lib/apt/lists/*

RUN echo "en_US UTF-8" > /etc/locale.gen \
&& locale-gen en_US.UTF-8

ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV LC_ALL=en_US.UTF-8
ENV DEBIAN_FRONTEND=dialog

# TEST COMMANDS:
# bundle install
# bundle exec jekyll serve

30 changes: 30 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// For format details, see https://aka.ms/vscode-remote/devcontainer.json or this file's README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.106.0/containers/ubuntu-18.04-git
{
"name": "Ubuntu 18.04 & Git",
"dockerFile": "Dockerfile",

// Set *default* container specific settings.json values on container create.
"settings": {
"terminal.integrated.shell.linux": "/bin/bash"
},

// Add the IDs of extensions you want installed when the container is created.
"extensions": []

// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],

// Use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": "uname -a",

// Uncomment to use the Docker CLI from inside the container. See https://aka.ms/vscode-remote/samples/docker-in-docker.
// "mounts": [ "source=/var/run/docker.sock,target=/var/run/docker.sock,type=bind" ],

// Uncomment when using a ptrace-based debugger like C++, Go, and Rust
// "runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined" ],
"runArgs": [ "--net=host"],

// Uncomment to connect as a non-root user. See https://aka.ms/vscode-remote/containers/non-root.
// "remoteUser": "vscode"
}
2 changes: 2 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ jobs:

steps:
- uses: actions/checkout@v1
with:
submodules: true

- name: Set up Ruby 2.7
uses: actions/setup-ruby@v1
Expand Down
8 changes: 8 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[submodule "_includes/crazyflie_demo"]
path = _includes/crazyflie_demo
url = https://github.com/micro-ROS/micro-ROS_crazyflie_demo
branch = master
[submodule "_includes/sensors_demo"]
path = _includes/sensors_demo
url = https://github.com/micro-ROS/micro-ROS_sensors_demo
branch = master
10 changes: 8 additions & 2 deletions _data/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,18 +48,18 @@
- title: Demos
docs:
- tutorials/demos/kobuki_demo
- tutorials/demos/crazyflie_demo
- tutorials/demos/tof_demo
- tutorials/demos/fiware_demo
- tutorials/demos/crazyflie_demo
- tutorials/demos/complete_demo

- title: Advanced Tutorials with Nuttx
docs:
- tutorials/advanced/nuttx/nuttx_getting_started
- tutorials/advanced/nuttx/add_a_microros_application
- tutorials/advanced/nuttx/debugging_gdb_openocd
- tutorials/advanced/nuttx/debugging_vscode
- tutorials/advanced/nuttx/6lowpan_nuttx_rpi
- tutorials/advanced/nuttx/tracing
- tutorials/advanced/nuttx/microros_nuttx_bsp
- tutorials/advanced/nuttx/microros_6lowpan_tutorial

Expand All @@ -70,4 +70,10 @@
- title: Advanced Tutorials with Zephyr
docs:
- tutorials/advanced/zephyr/zephyr_getting_started
- tutorials/advanced/zephyr/zephyr_emulator


- title: Advanced Tutorials with Linux
docs:
- tutorials/advanced/linux/linux_getting_started
- tutorials/advanced/linux/tracing
106 changes: 53 additions & 53 deletions _docs/concepts/rtos/comparison/index.md

Large diffs are not rendered by default.

Binary file added _docs/overview/hardware/imgs/2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _docs/overview/hardware/imgs/3.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
66 changes: 62 additions & 4 deletions _docs/overview/hardware/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,24 @@ title: Supported Hardware
permalink: /docs/overview/hardware/
---

By default, micro-ROS uses [NuttX RTOS](https://nuttx.org/). This RTOS has a big variety of supported MCUs and development boards. The next list shows some of them:
micro-ROS targets mid-range and high-performance 32-bits microcontrollers families. For now, most of the ports are based on the [STM32 series](https://www.st.com/en/microcontrollers-microprocessors/stm32-32-bit-arm-cortex-mcus.html) from ST. These kinds of MCU feature ARM Cortex-M processors with many peripherals such as GPIO, communication or coprocessors. By default, micro-ROS uses [NuttX RTOS](https://nuttx.org/), but it also has ports for [FreeRTOS](https://www.freertos.org/) and [Zephyr](https://www.zephyrproject.org/). These RTOSes have a big variety of supported MCUs and development boards. The follwing list shows some of them:

+ MicroChip PIC32MX Family
+ Atmel SAMA5Dx
+ STM32F1/2/3/4 and STM32L1/4, that includes many Nucleo board support.
+ Renesas M16C/26
+ NXP/Freescale i.MX1/6 and i.MX RT
+ Silicon Labs EFM32 Gecko and Giant Gecko
+ XTENSA board, that includes ESP32
+ RISC-V boards

Please check [this link](https://cwiki.apache.org/confluence/display/NUTTX/Supported+Platforms) to check the complete list and the status of each board. In case you are interested in porting new boards or MCUs, please check the [next link](https://cwiki.apache.org/confluence/display/NUTTX/Porting+Guide).
<!-- TODO (pablogs): Update this paragraph to a more generic porting guide link -->
Please check [this link](https://cwiki.apache.org/confluence/display/NUTTX/Supported+Platforms) to see the complete list and the status of each board. In case you are interested in porting new boards or MCUs, please check the [next link](https://cwiki.apache.org/confluence/display/NUTTX/Porting+Guide).

Even though many development boards could be used, we have chosen two of them as references. This page lists the hardware platforms that we use to test and develop micro-ROS, and also accessories that we frequently refer to, such as add-on boards, and JTAG probes.

For the ease of use, micro-ROS provides a ready to use example for some development boards. These out-of-the-box examples aim to show micro-ROS capabilities and they are also a starting point for developing embedded ROS 2 applications.

## Reference Platforms {#evaluation-boards}

This section describes the main characteristic of the selected boards.
Expand All @@ -26,11 +31,16 @@ This section describes the main characteristic of the selected boards.

The [Olimex LTD STM32-E407](https://www.olimex.com/Products/ARM/ST/STM32-E407/open-source-hardware) is an open-hardware low-cost entry board for developing custom applications with the STM32F407ZGT6 Cortex-M4F microcontrollers from STMicroelectronics.

It contains 196KB of RAM and 1MB of Flash. It is a very complete board thanks to the wide variety of communication interfaces it offers: USB OTG, Ethernet, SD Card slot, SPI, CAN or I2C buses are exposed. The board contains various expansion options available: Arduino-like headers for attaching daughter boards, many pins exposed, as well as a UEXT connector. This connector is a custom pin-out bus and is used to attach sensor breakouts sensors that manufacturer sells.
It contains 196KB of RAM and 1MB of Flash. It is a very complete board thanks to the wide variety of communication interfaces it offers: USB OTG, Ethernet, SD Card slot, SPI, CAN or I2C buses are exposed. The board contains various expansion options available: Arduino-like headers for attaching daughter boards, many pins exposed, as well as a UEXT connector. This connector is a custom pin-out bus and is used to attach sensor breakouts that manufacturer sells.

Ports for micro-ROS on all supported RTOS are available for this board. Examples on how to start developing with this board are available:
- [Zephyr](/docs/tutorials/advanced/zephyr/zephyr_getting_started/)
- [Nuttx](/docs/tutorials/advanced/nuttx/nuttx_getting_started/)
- [FreeRTOS](/docs/tutorials/advanced/freertos/freertos_getting_started/)

### Development tools

In order to flash and debug the board, it is required to get a JTAG probe. We recommend getting on of the next JTAG probes:
In order to flash and debug the board, it is required to get a JTAG probe. We recommend getting one of the following JTAG probes:

+ [ARM-USB-OCD-H](https://www.olimex.com/Products/ARM/JTAG/ARM-USB-OCD-H/)
+ [ARM-USB-TINY-H](https://www.olimex.com/Products/ARM/JTAG/ARM-USB-TINY-H/)
Expand All @@ -55,3 +65,51 @@ The (STM32L1 Discovery Kit)[https://www.st.com/en/evaluation-tools/32l152cdiscov
+ [Schematics in PDF](https://www.st.com/resource/en/schematic_pack/32l152cdiscovery_sch.zip)
+ [Bill of Material](https://www.st.com/resource/en/bill_of_materials/32l152cdiscovery_bom.zip)
+ [Gerber files](https://www.st.com/resource/en/bill_of_materials/32l152cdiscovery_bom.zip)


## STM32L4 Discovery kit IoT

The [ST B-L475E-IOT01A](https://www.st.com/en/evaluation-tools/b-l475e-iot01a.html) evaluation board is a ready to use IoT kit. This board supports an out-of-the-box micro-ROS + Zephyr port.

<img width="400" src="imgs/2.jpg">

The STM32L4 Discovery kit IoT enables a wide diversity of applications by exploiting low-power communication, multiway sensing and Arm Cortex M4 core-based STM32L4 Series features.
The support for Arduino and PMOD connectivity provides unlimited expansion capabilities with a large choice of specialized add-on boards.

This board features a STM32L475E MCU with 1 MB of Flash memory and 128 KB of RAM. In addition to the MCU peripherals, the board includes:
- 64 Mb SPI Flash memory
- Bluetooth V4.1 module (SPBTLE-RF)
- 915 MHz low-power RF module (SPSGRF-915)
- 802.11 b/g/n module (ISM43362-M3G-L44)
- NFC tag based on M24SR with printed antenna
- 2 digital microphones (MP34DT01)
- relative humidity and temperature digital sensor (HTS221)
- 3-axis magnetometer (LIS3MDL)
- 3-axis accelerometer and gyroscope (LSM6DSL)
- digital barometer (LPS22HB)
- Time-of-Flight and gesture-detection sensor (VL53L0X)
- programmable push-buttons
- USB OTG FS with Micro-AB connector
- on-board ST-LINK/V2 debugger and programmer

Examples on how to start developing with this board are available [here](/docs/tutorials/demos/tof_demo/).


## Crazyflie 2.1 Drone

As an integration example, the open-source [Crazyflie 2.1](https://www.bitcraze.io/products/crazyflie-2-1/) platform has its own micro-ROS + FreeRTOS port.

<img width="400" src="imgs/3.jpg">

The Crazyflie 2.1 is a versatile open-source flying development platform that only weighs 27g and fits in the palm of your hand. Crazyflie 2.1 is equipped with multiple inertial sensors and low-latency/long-range radio as well as Bluetooth LE.

This little drone features a STM32F405 ARM Cortex-M4 MCU running up to 168 MHz with 1 MB of Flash and 192 KB of RAM. It also features the following sensors and coprocessors:
- nRF51822 radio and power management MCU (Cortex-M0, 32Mhz, 16kb SRAM, 128kb flash)
- USB
- LiPo battery charger
- 8KB EEPROM
- 3-axis accelerometer and gyroscope (BMI088)
- pressure sensor (BMP388)
- headers with peripheral access: SPI, I2C, UART, 1-wire and GPIO

Examples on how to start developing with this board are available [here](/docs/tutorials/demos/crazyflie_demo/).
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading