Using Micro ROS over serial link?
I'm new to Micro ROS. I want to use it with STM32 to connect to Foxy on Ubunto 20.
My understanding is I need to have an IP network connection from STM32 to Linux. The typical STM32 chip has SPI, I2C, USB, and Async serial. It requires a larger development board to get Ethernet or WiFi.
Is there a way to configure DDS-XRCE to use a point-to-point serial link?
Yes, I know I could simply use ROS-Serial on the STM32 and then the ROS1-ROS2 bridge on the Linux system. But that means not using micro-ROS at all.
(I have no preference for which RTOS is used, whichever solves the problem.)
Asked by chrisalbertson on 2020-11-08 20:24:00 UTC
Answers
Hello, micro-ROS supports UART transports for communicating with ROS 2. Please follow this demo guide to see one example of an SMT32 running micro-ROS in a serial port.
If you have any other doubt do not hesitate to open an issue in any of the micro-ROS repos in Github.
Asked by Pablogs on 2020-11-10 01:52:35 UTC
Comments
Is it possible to use I2C or SPI? I would prefer to have mechanism to implement the transport over arbitrary protocol.
Asked by lukicdarkoo on 2020-11-12 17:36:57 UTC
Is completely possible to customize the transport layer of micro-ROS.
Asked by Pablogs on 2020-11-13 03:46:17 UTC
Nice! What about Micro XRCE DDS Agent, do you may know if we can make it work with the other protocols?
Asked by lukicdarkoo on 2020-11-13 16:06:40 UTC
The Micro XRCE-DDS Agent also has customizable transport layers check the code here. Another solution we use with some protocols (such as ShockBurst radio links) is creating small Python bridges between these protocols and UDP or serial. Usually works nice.
Asked by Pablogs on 2020-11-16 02:07:21 UTC
Comments