All Projects → micro-ROS → micro_ros_espidf_component

micro-ROS / micro_ros_espidf_component

Licence: Apache-2.0 license
micro-ROS ESP32 IDF component and sample code

Programming Languages

c
50402 projects - #5 most used programming language
CMake
9771 projects
Makefile
30231 projects
Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to micro ros espidf component

esp-idf-json
Example of JSON Serialize and Deserialize in ESP-IDF
Stars: ✭ 29 (-76.23%)
Mutual labels:  esp-idf
idfx
Tool for flash/monitor ESP-IDF and ESP8266_SDK apps on the WSL2 ⚡
Stars: ✭ 71 (-41.8%)
Mutual labels:  esp-idf
ccs811-esp-idf
CCS811 driver for ESP-IDF (ESP32)
Stars: ✭ 22 (-81.97%)
Mutual labels:  esp-idf
Arduino Esp32
Arduino core for the ESP32
Stars: ✭ 7,741 (+6245.08%)
Mutual labels:  esp-idf
Core2-for-AWS-IoT-EduKit
Accompanying code for use with AWS IoT EduKit content. Works with PlatformIO and ESP-IDF v4.2.
Stars: ✭ 107 (-12.3%)
Mutual labels:  esp-idf
esp-idf-sys
Bindings for ESP-IDF (Espressif's IoT Development Framework)
Stars: ✭ 132 (+8.2%)
Mutual labels:  esp-idf
lis3dh-esp-idf
LIS3DH driver for ESP-IDF (ESP32)
Stars: ✭ 27 (-77.87%)
Mutual labels:  esp-idf
ssd1306-esp-idf-i2c
Sample code for driving 128x64 OLED display (SSD1306 driver) via ESP-IDF's I2C master driver
Stars: ✭ 93 (-23.77%)
Mutual labels:  esp-idf
esp-idf-rc522
C library for interfacing ESP32 with MFRC522 RFID card reader, packaged as ESP-IDF component
Stars: ✭ 60 (-50.82%)
Mutual labels:  esp-idf
esp-idf-zh
ESP-IDF 中文文档
Stars: ✭ 102 (-16.39%)
Mutual labels:  esp-idf
bme280-esp-idf-i2c
Sample code for reading values from a BME280 temperature-humidity-pressure sensor, via ESP-IDF's I2C master driver, supports both normal mode and forced mode described in the datasheet. https://ae-bst.resource.bosch.com/media/_tech/media/datasheets/BST-BME280_DS001-11.pdf
Stars: ✭ 38 (-68.85%)
Mutual labels:  esp-idf
cookiecutter-esp32-webserver
Cookiecutter template to get you quickly started with an ESP32-based webserver project.
Stars: ✭ 13 (-89.34%)
Mutual labels:  esp-idf
esp32 mmd
esp32でmmd
Stars: ✭ 93 (-23.77%)
Mutual labels:  esp-idf
esp-idf-w25q64
SPI Flash Memory W25Q64 Access Library for esp-idf
Stars: ✭ 12 (-90.16%)
Mutual labels:  esp-idf
bluepad32
Bluetooth gamepad support for the ESP32 (mirror)
Stars: ✭ 117 (-4.1%)
Mutual labels:  esp-idf
esp-idf-hal
embedded-hal implementation for Rust on ESP32 and ESP-IDF
Stars: ✭ 42 (-65.57%)
Mutual labels:  esp-idf
esp32-owb
Maxim One Wire Bus driver for ESP32.
Stars: ✭ 115 (-5.74%)
Mutual labels:  esp-idf
Gesture-Detecting-Macro-Keyboard
Glorified Bluetooth macro keyboard with machine learning (TensorFlow Lite for Microcontrollers) running on an ESP32.
Stars: ✭ 68 (-44.26%)
Mutual labels:  esp-idf
RoverController
LoRa/WiFi remote controller for driving my rover
Stars: ✭ 87 (-28.69%)
Mutual labels:  esp-idf
esp-homekit-arduino-sdk
Arduino wrapper for ESP-IDF HomeKit library
Stars: ✭ 34 (-72.13%)
Mutual labels:  esp-idf

banner banner

micro-ROS component for ESP-IDF

This component has been tested in ESP-IDF v4.1, v4.2, v4.3 and v4.4 with ESP32, ESP32-S2, ESP32-S3 and ESP32-C3.

Dependencies

This component needs colcon and other Python 3 packages inside the IDF virtual environment in order to build micro-ROS packages:

. $IDF_PATH/export.sh
pip3 install catkin_pkg lark-parser empy colcon-common-extensions

Middlewares available

This package support the usage of micro-ROS on top of two different middlewares:

In order to select it, use idf.py menuconfig and go to micro-ROS Settings > micro-ROS middleware

Usage

You can clone this repo directly in the components folder of your project.

If you encounter issues during the build process, ensure that you are running in a clean shell environment without the ROS 2 setup script sourced.

Example

In order to test a int32_publisher example:

. $IDF_PATH/export.sh
cd examples/int32_publisher
# Set target board [esp32|esp32s2|esp32s3|esp32c3]
idf.py set-target esp32
idf.py menuconfig
# Set your micro-ROS configuration and WiFi credentials under micro-ROS Settings
idf.py build
idf.py flash
idf.py monitor

To clean and rebuild all the micro-ROS library:

idf.py clean-microros

Is possible to use a micro-ROS Agent just with this docker command:

# UDPv4 micro-ROS Agent
docker run -it --rm --net=host microros/micro-ros-agent:humble udp4 --port 8888 -v6

Build with docker container

It's possible to build this example application using preconfigured docker container. Execute this line to build an example app using docker container:

docker run -it --rm --user espidf --volume="/etc/timezone:/etc/timezone:ro" -v  $(pwd):/micro_ros_espidf_component -v  /dev:/dev --privileged --workdir /micro_ros_espidf_component microros/esp-idf-microros:latest /bin/bash  -c "cd examples/int32_publisher; idf.py menuconfig build flash monitor"

Dockerfile for this container is provided in the ./docker directory and available in dockerhub.

Using serial transport

By default, micro-ROS component uses UDP transport, but is possible to enable UART transport or any other custom transport setting the colcon.meta like:

...
"rmw_microxrcedds": {
    "cmake-args": [
        ...
        "-DRMW_UXRCE_TRANSPORT=custom",
        ...
    ]
},
...

An example on how to implement this external transports is available in examples/int32_publisher_custom_transport.

Available ports are 0, 1 and 2 corresponding UART_NUM_0, UART_NUM_1 and UART_NUM_2.

Is possible to use a micro-ROS Agent just with this docker command:

# Serial micro-ROS Agent
docker run -it --rm -v /dev:/dev --privileged --net=host microros/micro-ros-agent:humble serial --dev [YOUR BOARD PORT] -v6

Purpose of the Project

This software is not ready for production use. It has neither been developed nor tested for a specific use case. However, the license conditions of the applicable Open Source licenses allow you to adapt the software to your needs. Before using it in a safety relevant setting, make sure that the software fulfills your requirements and adjust it according to any applicable safety standards, e.g., ISO 26262.

License

This repository is open-sourced under the Apache-2.0 license. See the LICENSE file for details.

For a list of other open-source components included in ROS 2 system_modes, see the file 3rd-party-licenses.txt.

Known Issues/Limitations

There are no known limitations.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].