Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ROS2 networking via MicroROS #8139

Open
hierophect opened this issue Jul 3, 2023 · 1 comment · May be fixed by #9955
Open

ROS2 networking via MicroROS #8139

hierophect opened this issue Jul 3, 2023 · 1 comment · May be fixed by #9955
Milestone

Comments

@hierophect
Copy link
Collaborator

hierophect commented Jul 3, 2023

ROS - the Robot Operating System - is a powerful open source collection of software for the development of advanced robotics. The core appeal of the system is that it can tie many different pieces of robotics software together across a shared network, such as navigation, prediction, machine learning, motor control, etc, without needing a bunch of custom communication software. This is obviously super important for commercial robotics teams, but it's also used by smaller robotics dev groups in research or hobby spaces.

I'm interested in attempting to create a ROS2 module for Circuitpython, using a project called MicroROS, which implements the networking stuff required for a microcontroller such as the ESP32, RP2040, or various ST devices to talk to other ROS2 "nodes". This would allow you to do things like run ROS2's navigation, computer vision, and simulation software on a host computer, but have your embedded devices running things like sensors and motors on the same network, all without having to know anything about embedded C or C++ programming.

For example, I could have an ESP32S2 running a drone, connected to wifi. It sends accelerometer and camera data to ROS2 software on a host computer, which runs SLAM algorithms, does navigation, etc and sends movement instructions back on the same network.

The core API for this would be pretty simple, basically a bunch of communication functions for sending and receiving data in ROS2's publish/subscribe structure. The tricky part would be including MicroROS, which substantial enough it might want to be cordoned off with a build flag.

Anyway, anyone interested in this? It's not super beginner software, but at least in my local maker circle, there's a lot of enthusiasm for learning more about ROS since it's so common in robotics. I hope it'd make it a bit easier to get started.

@casainho
Copy link

casainho commented Jul 5, 2023

It is on my plans to learn ROS. The idea to use an ESP32 with CircuitPython for reading sensors and send to ROS, is great!! Even because if I understand correctly, ROS can be programmed in Python also.

Note that CircuitPython do not support Bluetooth on ESP32. The wireless communications can then be wifi or ESPNow. I am being using ESPNow on CircuitPython and works very well.

The most cheap ESP32 I am being using is the ESP32-S2 Lolin mini board.

@dhalbert dhalbert added this to the Long term milestone Jul 5, 2023
@hierophect hierophect linked a pull request Jan 12, 2025 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants