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: https://github.com/rosmo-robot/linorobot2_hardware/tree/galactic/firmware

1 Like

:robot::artist_palette: 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