Replies: 8 comments 28 replies
-
Hi @pablogs9, Thanks for using PlatformIO! 😊 A few comments for integration:
Please ping me when you apply changes in https://github.com/micro-ROS/micro_ros_platformio/blob/main/extra_script.py Thanks for your work! |
Beta Was this translation helpful? Give feedback.
-
Just merged |
Beta Was this translation helpful? Give feedback.
-
I will try to use this library in my project. It should go fairly easy as it already uses PlatformIO. The project requires support for:
As all of this is possible now, I'll start trying to switch to this library and report any issues or ask questions when unsure about something. |
Beta Was this translation helpful? Give feedback.
-
What should I set |
Beta Was this translation helpful? Give feedback.
-
Main task completed and merged, we are ready for |
Beta Was this translation helpful? Give feedback.
-
I've tested the |
Beta Was this translation helpful? Give feedback.
-
I have been developing my own custom messages within the extra_packages folder. This is working well so far, but I find the required re-compilation process of microROS to be a little annoying. It is very slow and downloads many things behind the scenes, so it is a bit inefficient. Is there a way to force a recompilation of libraries without downloading everything again? |
Beta Was this translation helpful? Give feedback.
-
Hello, community!
Screen of error. UPD: |
Beta Was this translation helpful? Give feedback.
-
Hi, micro-ROS community!
As you might know, PlatformIO has become a really popular solution for embedded development, it provides a complete embedded development environment compatible with tons of boards, frameworks, and platforms.
Most of you have been using our micro-ROS for Arduino library to integrate micro-ROS in the PlatformIO environment, but we think that we can do it much better. So, we have been developing a proper solution for integrating the micro-ROS build system in the PlatformIO build system.
micro-ROS for Arduino provide a precompiled set of libraries due to the lack of advanced features for building the micro-ROS stack in the Arduino IDE/CLI development environment. Meanwhile, PlatformIO allows complex build processes where the micro-ROS library can be compiled just in time for the used platform avoiding cross-compilation compatibility issues. Also, it provides a much more flexible way of configuring the micro-ROS library with custom packages and/or custom middleware configurations.
We have reached a semi-functional status where some platforms are supported but we need your help to provide feedback and comments about your needs as micro-ROS developers. So we are opening a beta testing period before releasing this tool on the PlatformIO registry.
We ask the community to:
Sincerely, the micro-ROS team.
Technical details
The micro-ROS library for PlatformIO is designed to be modular. It relies on the advanced scripting features of the build system. As you can see in extra_script.py, the library is being built on the fly using the compiler and flags that the environment provides.
In platform_code folder we include sources related to the framework. In this case, only
arduino
is implemented.This way, arduino/clock_gettime.cpp provides a the timing functionality required by micro-ROS using the Arduino API. As you can see, there are much more interesting frameworks such as CMSIS, FreeRTOS, libopencm3 or Zephyr RTOS. That means that those frameworks should be integrated creating
[FRAMEWORK]/clock_gettime.cpp
and adding the corresponding scripting here.Regarding the transports, they are also included in the framework folder. For example, the Serial transport for arduino is implemented using the
Serial
API of the Arduino framework. One more time, theextra_script.py
takes care of building the required transport. In the same way, by adding folders to this directory tree, more transports can be implemented using different frameworks APIs.This way you can create a PlaformIO project with the following
.ini
:.meta
files can be added to the enviroment configuration just usingmicroros_user_meta = [PATH TO YOUR META]
. This will override parameters of the micro-ROS build.Tasks to be done
The following tasks should be addressed:
extra_packages
Board testing
The following use cases shall be tested in hardware:
portenta_h7_m7
ststm32
arduino
serial
teensy41
teensy
arduino
serial
teensy40
teensy
arduino
serial
teensy36
teensy
arduino
serial
teensy35
teensy
arduino
serial
teensy31
teensy
arduino
serial
due
atmelsam
arduino
serial
zero
atmelsam
arduino
serial
olimex_e407
ststm32
arduino
serial
esp32dev
espressif32
arduino
serial
nanorp2040connect
raspberrypi
arduino
serial
teensy41
teensy
arduino
native_ethernet
nanorp2040connect
raspberrypi
arduino
wifi_nina
portenta_h7_m7
ststm32
arduino
wifi
esp32dev
espressif32
arduino
wifi
Beta Was this translation helpful? Give feedback.
All reactions