micro-ROS porting to ESP32

Hello @Altai in order to create a standalone static library you have the generate_lib tool in micro_ros_setup package.

For example, micro-ROS for Arduino uses this feature to generate static libraries: check here.

If you need more information or support, please open an issue in the micro_ros_setup repo.

4 Likes

Thank you for the direction @pablogs. I will follow the link that you posted.

Hi @pablogs
I am Usama and I am trying to make a robot using microros and esp32. And I want to learn the channel configuration with esp32 in microros and all other details related to it.
I want to use stepper motors, imu, encoders with esp32. But i donā€™t have enough knowledge.
From where can I find the documentation of esp32 channel configuration, PWM configuration, and all this stuff. Any tutorial you can recommend?
So far i could find this. But its not enough for my project.
I will be waiting for your response.
Thank you

Hi @Usama-Arshad16, micro-ROS does not provide an own API for the peripherals but relies on ESP-IDF in case of the ESP32. You can find the Peripherals API documentation at https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/index.html.
The same website also provides a subsection hardware reference, but for the start it might be easier to search for suitable pinout graphics for the dev board that you are using at https://www.google.de/search?q=ESP32+pinout (Images).

1 Like

Hi, Usama! Iā€™m Ezic, a developer from Espressif. Iā€™m trying to apply MicroROS to ESP32 early this year, controlling a (MicroROS) car using ROS2 turtle node. Hereā€™s some tips:

  1. After a long time of browsing and trying, I found that MicroROS do not support much features in ROS2, and itā€™s hard to use great packages in ROS2(esp32 cannot run packages written in Python, or you can spend some effort to use micro-python). Basically, you can build one esp32 as one node in your ROS2 network(not like Raspberry), a bit samilliar to ROS-Serial in ROS.
  2. If you want to use esp32 to control motors or output PWM signals, you can refer to ESP-IDF documents PWM, control servos by mcpwm, step motors. You can use idf APIs in your codes.

Thatā€™s my opinion after practcing. Please point out if something is wrong. :smiley:
Iā€™m now developing a new esp32 quadruped robot. We can keep in touch if you need help or communication.

2 Likes

I am very thankful to both of you guys, as this information drove me in the right direction.
@zzMiao123 my approach will be:-
I will make a node in esp32 and create
Subscriber: cmd_vel
Publisher: odom, imu

The link you provided seems quite helpful. But I also get confused that this code is written in CPP. Will that be okay? because we use C in esp32.

I will inform you about the progress :grinning:. And thanks again.

1 Like

I had put this code in my project, and they ran very well in esp-idf framework. (Actually they were written in C)
Happy for you! :wink:

1 Like

Iā€™m trying to get Linorobot2 running on ESP32. Any help with that would be great: linorobot2_hardware/firmware at galactic Ā· rosmo-robot/linorobot2_hardware Ā· GitHub

1 Like

:robot::art: Unleash Your Creativity with the Lineturtle Drawing Robot! Dive into the exciting world of robotics as you learn to build a drawing robot powered by ESP32, MicroROS, and ROS2. Join our comprehensive guide/course to discover how to interface sensors, control actuators, and master the art of creating intricate designs on any surface. Whether youā€™re a beginner or a seasoned enthusiast, this journey promises hands-on learning, innovation, and endless fun. Letā€™s draw, create, and explore robotics together! :rocket::link: Course

1 Like