I have been working on a Project called ROSMicroPy, an integration of MicroROS and Micropython supporting the ESP32 platform. ROSMicroPy
It’s rounding the corner of being done and I am looking for feedback.
Are the Docs clear
SDK implementation
If someone from eProsima can take a look at my Type Support system and let me know if I am painting myself into a corner, it would be greatly appreciated. Here is a write up on how it works ROSMicroPy Type Support Integration | ROSMicroPy
You need to recompile to change the SSID/Password, I need to change the locus of control from MicroROS to Micropython for Wifi managment as the MicroROS network interface does not work with MicroPython’s WEBRepl
Type support probably has bugs, i need to expand on my testing. Type Support does not support sequences yet.
Hi @nuno, thank you for responding. re:embeddedRTPS, I am sure it can be. My challenge is to understand the type support stack better, my education came about by attaching my Jtag debugger and setting a breakpoint rmw_publish, similar on the receive side. Then single step away.
I think, at the low level, I might have tied myself to the eProsima code, that’s why I was asking for advice about my Type Support code. My Type Support code is a bit of a side car along with the installed Type Support. The core of my code is generic, i.e. my serialize / deserialize uses what I am calling an instruction list to drive both. I went in this direction to allow for run time type definition natively in Python.
This posed a bit of a challenge as the MicroROS type support interface requires a structure that contains function pointers to the low level functions and my code uses the same core methods for all types.
I solved it by creating this big chunky macro that creates stub functions so serialize_slot1 → serialize, where serialize_slot one calls the core serialize function passing a 1 for the slot_id, the slot_id points to a run time defined slot with all the necessary type metadata.
So Micropython has it’s own (mostly) full implementation of a ROS Type system, but that Type System, is not a full replacement and depends on the installed Type System installed with MicroROS.
My intention in making this announcement was simply to let people use it and provide feedback, like yours, so I can get out of my bubble and make the code more usable for all.
Here are some code references.
How the Geometry:Twist type is defined in Microipython
ROSMicroPy has been updated to IDF 5.1 along with Micropython V1.22-rel
This is in prep to incorporate LVGL and JSON forms along with IDF5.1 support for SRAM0/1 to be used for IRAM