Skip to content

realteck-ky/mros2-pio

Repository files navigation

mros2-esp32

mROS 2 (mros2 as casually codename) realizes a agent-less and lightweight runtime environment compatible with ROS 2 for embedded devices. mROS 2 mainly offers pub/sub APIs compatible with rclcpp for embedded devices.

mROS 2 consists of communication library for pub/sub APIs, RTPS protocol, UDP/IP stack, and real-time kernel. This repository provides the reference implementation of mROS 2 that can be operated on the Espressif Systems ESP32 boards. Please also check mros2 repository for more details and another implementations.

Supported environment

  • Target device: ESP32 family
  • Host environment
  • Network setting
    • Make sure both the device and the host are connected to the same network.
    • IP address needs to be assigned to the device by DHCP. We have not confirmed the operation using static IP setting yet. So you may not un-comment the #define STATIC_IP line in platform/wifi/wifi.h.
    • Please prepare the Wi-Fi router that provides 2.4 GHz band.
      • Most of ESP32 only support 2.4 GHz.
      • Note that you need to set up a dedicated SSID at 2.4 GHz. If the SSID has a band steering setting (that shares 2.4 GHz and 5 GHz), the communication of ESP32 may be disconnected during the operation.
    • The firewall on the host (Ubuntu) needs to be disabled for ROS 2 (DDS) communication (e.g. $ sudo ufw disable).
    • If the host is connected to the Internet with other network adapters, communication with mros2 may not work properly. In that case, please turn off them.

Supported boards

TODO:

Caution

The official page describes that supported platforms are TOPPERS, Mbed OS, ESP-IDF (FreeRTOS), and POSIX OS.
However, this library currently only supports ESP-IDF and ESP32 because it is very experimental.
Most programs of mROS 2 for ESP-IDF are based on the following repositories: mros2-esp32.
This version is only checked for building, so it is not confirmed to run.

Quick start

Create a PlatformIO project, and add this repository URL to the lib_deps like following.

[env:m5stack-core-esp32]
platform = espressif32
board = m5stack-core-esp32
framework = espidf
lib_deps = https://github.com/realteck-ky/mros2-pio

The examples folder has useful mROS 2 application programs. Copy it as main code in the src directory and build the project.

About

mROS2 library for PlatformIO

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors