micro-ROS application ?

67 views
Skip to first unread message

Bob Smith

unread,
Jan 12, 2022, 2:57:00 PM1/12/22
to hbrob...@googlegroups.com
While most think of micro-ROS as a ROS-serial bridge it is, or can be,
a standalone application framework. Take a look at the architecture
diagram on the micro-ROS home page.
https://micro.ros.org/img/micro-ROS_architecture.png

There is the CPU, a Posix kernel (typically), middleware for IPC, and
a C API on top. Most people stop at the middleware layer to tie the
device to a full ROS2 installation.

In theory you should be able to build a small ROS application entirely
on micro-ROS, for example, a line following robot should be relatively
easy to do on micro-ROS.

Has anyone build an entire application on top of micro-ROS?
If so, do you have any advice on the easiest way do do so?

thanks
Bob

Mark Womack

unread,
Jan 12, 2022, 3:09:19 PM1/12/22
to hbrob...@googlegroups.com
What processor/platform would you use to run the standalone framework? It seems like it would have to be more than just the simpler microcontrollers?

-Mark

--
You received this message because you are subscribed to the Google Groups "HomeBrew Robotics Club" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hbrobotics+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/hbrobotics/b752ff86-f148-16fc-8fd8-b80f74b7e991%40linuxtoys.org.

Chris Albertson

unread,
Jan 12, 2022, 3:17:02 PM1/12/22
to hbrob...@googlegroups.com
Not yet.

My goal is a kind of hierarchical approach.    The robot will be able to do something with just micro-ROS running on maybe an ESP32 or Pico.    Maybe all it does is teleoperation, battery monitoring, and basic obstacle detection.    Then I can connect it to a full ROS2 system that runs on a Pi4 that can navigate and be a little smarter.   This means I can test the system out with the Pi4 disconnected.   

You can continue this to another level and the Pi4 can connect to other nodes that run on a larger server-class PC where tasks such as natural language and database run.

In any case, my goal is that something reasonable can be done by a system that has the higher level disconnected.   Three levels seems about right.

But first I need to get this walking robot on its feet. 

--
You received this message because you are subscribed to the Google Groups "HomeBrew Robotics Club" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hbrobotics+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/hbrobotics/b752ff86-f148-16fc-8fd8-b80f74b7e991%40linuxtoys.org.


--

Chris Albertson
Redondo Beach, California

Chris Albertson

unread,
Jan 12, 2022, 3:26:06 PM1/12/22
to hbrob...@googlegroups.com
On Wed, Jan 12, 2022 at 12:09 PM Mark Womack <mwo...@gmail.com> wrote:
What processor/platform would you use to run the standalone framework? It seems like it would have to be more than just....

MicroROS runs on only a shortlist of microcontrollers.      The smallest might be a Raspbery Pi Pico.  It runs well on the ARM Cortex M range and also on ESP32.      You also have the choice of using one of a couple of RTOSes or using their bare metal implementations.   I think "bare metal" is popular unless you need the drivers that come with say FreeRTOS.      Pico is reasonable but if you want Blue Tooth/WiFi then ESP32.

So, yes you can run multiple ROS nodes on a bare metal, $4 "Pico" board.   This could run a typical differential drive teleoperated robot very well. But if you need floating point math yo might have to move up to the "Teensy" board or the ESP.


On Wed, Jan 12, 2022 at 2:57 PM Bob Smith <bsm...@linuxtoys.org> wrote:
While most think of micro-ROS as a ROS-serial bridge it is, or can be,
a standalone application framework.  Take a look at the architecture
diagram on the micro-ROS home page.
  https://micro.ros.org/img/micro-ROS_architecture.png

There is the CPU, a Posix kernel (typically), middleware for IPC, and
a C API on top.  Most people stop at the middleware layer to tie the
device to a full ROS2 installation.

In theory you should be able to build a small ROS application entirely
on micro-ROS, for example, a line following robot should be relatively
easy to do on micro-ROS.

Has anyone build an entire application on top of micro-ROS?
If so, do you have any advice on the easiest way do do so?

thanks
Bob

--
You received this message because you are subscribed to the Google Groups "HomeBrew Robotics Club" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hbrobotics+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/hbrobotics/b752ff86-f148-16fc-8fd8-b80f74b7e991%40linuxtoys.org.

--
You received this message because you are subscribed to the Google Groups "HomeBrew Robotics Club" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hbrobotics+...@googlegroups.com.

danie...@aol.com

unread,
Jan 12, 2022, 3:40:02 PM1/12/22
to hbrob...@googlegroups.com
I wanted to use micro-ros on two robots in a peer-to-peer configuration.
After reading through some of the docs and examples it didn't look like this is possible.

Can anyone fill me in on how to do peer-to-peer communications in micro-ros without Linux or Windows getting involved.
Thanks,
Daniel


Bob Smith

unread,
Jan 12, 2022, 4:01:55 PM1/12/22
to hbrob...@googlegroups.com
On 1/12/22 12:09 PM, Mark Womack wrote:
> What processor/platform would you use to run the standalone framework? It
> seems like it would have to be more than just the simpler microcontrollers?


> On Wed, Jan 12, 2022 at 2:57 PM Bob Smith <bsm...@linuxtoys.org> wrote:
>> Has anyone build an entire application on top of micro-ROS?
>> If so, do you have any advice on the easiest way do do so?

A Raspberry Pi Zero. Too small/slow for a full ROS installation but should
be more than enough for micro-ROS. Right?


Mark Johnston

unread,
Jan 12, 2022, 6:02:34 PM1/12/22
to HomeBrew Robotics Club
I have put together a micro ros motor controller subsystem on top of an esp32 cpu.  I don't think that would qualify as what this discussion is calling a full app but it certainly is an app with multiple thread although it is in fact meant as a subsystem for a full bot.    I have so far found it to be very 'clunky' and unclean in terms of how the code looks so was a bit disappointed it was so complex in how it looks in the code.    Anyway, I talk to this  micro-ros motor node over Ros2 on a Pi4 so my real full robot app is in fact on the Pi4 and I am using micro-ros to be more ros-like than older bot of same chassis where it was all ROS (1)  and serial to this same style Esp32 motor node of mine.

I discuss this bot here:    http://www.mark-toys.com/DroidBot2_Ros2.html

Chris Albertson

unread,
Jan 12, 2022, 7:39:18 PM1/12/22
to hbrob...@googlegroups.com
The Pi Zero could work.  One of the official platforms for Micro ROS is Linux.   But typically you use the Linux version of MicroROS only for test and development or for learning Micro ROS.  If you have a Pi Zero, I think you'd just use the normal ROS.   I don't see why the Zero is too small.  Yes it is too small to run a full navigation stack with rviz.   But it could run a base controller or a camera controller.    


--
You received this message because you are subscribed to the Google Groups "HomeBrew Robotics Club" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hbrobotics+...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages