This package provides example projects for using micro-ROS in a Renesas e2 studio. All demos target Renesas RA family, an ARM Cortex-M based MCU series, enabling a full micro-ROS compatibility for developing robotics and IoT applications.
MCU | Family | Reference board | Transports |
---|---|---|---|
RA6M5 | RA Series | EK-RA6M5 | USB-CDC Serial UART UDP (FreeRTOS + TCP) UDP (ThreadX + NetX) TCP (AWS Secure Sockets) CAN FD |
RA6T2 | RA Series | MCK-RA6T2 | Serial UART CAN FD |
- Renesas e2 studio for Linux1
- FSP v5.6.0 board packs for Renesas e2 studio: Details.
- GNU Arm Embedded Toolchain v10.3.1.20210824 (Other compatible toolchain may work).
- Install colcon and dependencies, for example with:
pip3 install colcon-common-extensions catkin_pkg lark-parser empy
1 Currently only support for Linux is available
Board | RTOS | Transport | Description | Folder |
---|---|---|---|---|
EK-RA6M5 | Bare Metal | CAN FD | micro-ROS using a CAN FD transport | micro_ros_can |
Bare Metal | UART | micro-ROS using a serial UART transport | micro_ros_uart |
|
Bare Metal | USB | micro-ROS using a serial USB-CDC transport | micro_ros_usb |
|
FreeRTOS | UDP | micro-ROS using a network transport and FreeRTOS + TCP | micro_ros_udp_freertos |
|
FreeRTOS | UDP | micro-ROS using a network transport and FreeRTOS + TCP in a multithread approach | micro_ros_udp_freertos_multithread |
|
FreeRTOS | TCP | micro-ROS using a wifi network transport and AWS Secure Sockets | micro_ros_tcp_freertos |
|
ThreadX | UDP | micro-ROS using a network transport and ThreadX + NetX | micro_ros_udp_threadx |
|
MCK-RA6T2 | Bare Metal | CAN FD | micro-ROS using a CAN FD transport | micro_ros_can |
Bare Metal | UART | micro-ROS using a serial UART transport | micro_ros_uart |
A set of step-by-step demonstration videos for micro-ROS with Renesas e2studio
Board | Description | Link |
---|---|---|
EK-RA6M5 | micro-ROS getting started video | link |
EK-RA6M5 | micro-ROS Service demo | link |
EK-RA6M5 | micro-ROS over Wifi | link |
EK-RA6M5 | micro-ROS publisher demo | link |
EK-RA6M5 | micro-ROS parameter demo | link |
MCK-RA6T2 | BLDC Motor Controller using Microros over CAN FD | link |
For using those demos, just clone recursively this repository in your computer with:
git clone --recurse-submodules https://github.com/micro-ROS/micro_ros_renesas_demos
Open Renesas e2 studio, import some of them, and finally build and flash
It is possible to use a micro-ROS Agent just by using this docker command:
# UDPv4 micro-ROS Agent
docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO udp4 --port 8888 -v6
# TCPv4 micro-ROS Agent
docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO tcp4 --port 8888 -v6
# Serial micro-ROS Agent
docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO serial --dev [YOUR BOARD PORT] -v6
# CAN FD micro-ROS Agent
docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO canfd --dev [YOUR CAN INTERFACE] -v6
There are some other options for using the micro-ROS Agent:
- Building it in a ROS 2 environment: Details.
- Using a snap package.
This repository is open-sourced under the Apache-2.0 license. See the LICENSE file for details. To find a list of other open-source components included in this repository, see the file 3rd-party-licenses.txt.
There are no known limitations.