Is ROS2 ready for prime time?

113 views
Skip to first unread message

Osman Eralp

unread,
Aug 23, 2021, 7:40:01 PM8/23/21
to HomeBrew Robotics Club
I'm finally going to learn ROS! I've seen a few threads about ROS2. For someone just starting out with ROS, does ROS2 have everything I'll need for a basic Turtlebot-style robot, or is original ROS still the way to go? TIA.

Wayne C. Gramlich

unread,
Aug 23, 2021, 9:02:38 PM8/23/21
to hbrob...@googlegroups.com, Wayne Gramlich
Osman:

The learning curve for both ROS and ROS2 is still pretty high. I'd go with ROS2.
Alas, the ROS2 documentation is not as good as the ROS documentation. This is a
reasonable place to ask questions. Also, there is the weekly ROS zoom meetup where
you can ask questions. There are other oddball ones, but I would skip those. HBRC
seems to be transitioning from ROS to ROS2.

Regards,

-Wayne

On 8/23/21 4:40 PM, Osman Eralp wrote:
> I'm finally going to learn ROS! I've seen a few threads about ROS2. For someone just starting out with ROS, does ROS2 have everything I'll need for a basic Turtlebot-style robot, or is original ROS still the way to go? TIA.
>
> --
> 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 <mailto:hbrobotics+...@googlegroups.com>.
> To view this discussion on the web visit https://groups.google.com/d/msgid/hbrobotics/5734ccd6-1795-4d18-a1c6-1f0bc08ee682n%40googlegroups.com <https://groups.google.com/d/msgid/hbrobotics/5734ccd6-1795-4d18-a1c6-1f0bc08ee682n%40googlegroups.com?utm_medium=email&utm_source=footer>.

camp .

unread,
Aug 23, 2021, 10:04:44 PM8/23/21
to HomeBrew Robotics Club
> ...does ROS2 have everything I'll need for a basic Turtlebot-style robot, or is original ROS still the way to go?
 
The Neato Botvac package is on ROS2 thanks to James Nugen and others.
 
cpeavy2/botvac_node
 
Join our Tuesday ROS Discussion Group @ 7pm Pacific Time.
    I would like very much like to recreate the original TurtleBot on ROS2. We've got the Botvac base mapping and navigating fairly well. We need some kind of sensor to cover the additional 2' height. I'm working on using a 2nd Raspberry Pi, ultrasonics, and PiCam for the top. To answer your question ROS2 is where you'll want to spend your time...
 
- Camp

On Monday, August 23, 2021, 07:46:57 PM EDT, Osman Eralp <osman...@gmail.com> wrote:


I'm finally going to learn ROS! I've seen a few threads about ROS2. For someone just starting out with ROS, does ROS2 have everything I'll need for a basic Turtlebot-style robot, or is original ROS still the way to go? TIA.

--
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/5734ccd6-1795-4d18-a1c6-1f0bc08ee682n%40googlegroups.com.

Sergei Grichine

unread,
Aug 23, 2021, 10:49:17 PM8/23/21
to hbrob...@googlegroups.com
Making a "basic Turtlebot-style robot" can be fairly easy, or could turn into a nightmare. It all depends on how well your hardware is supported by ROS2 at the moment. Every piece of your hardware should have a proven ROS2 node, and you should be able to see its messages and otherwise prove it to be operational. Ask for recommendations here. Smooth sailing!

Best Regards, 
-- Sergei Grichine 

Chris Albertson

unread,
Aug 23, 2021, 11:50:48 PM8/23/21
to hbrob...@googlegroups.com
I would not start a new design using ROS 1.   There is already a planned end of life for ROS 1 support.   It is not time yet to start converting ROS1 robots to ROS2 but new projects need to be ROS2.

People say the learning curve is steep.  But it might just be that people have not much experience with C++, Python, computers, and Linux and have to learn all this at the same time as leaning ROS.   If you already have experience with large software projects just work through the ROS2 tutorials on the link below.   Those who say "ROS is hard to learn" likely did not work all the tutorias and jumped straight into getting their robot to run.  Don't skip ahead.

To answer if ROS2 can run something like a Turtlebot, there is a ROS2 running a Turtlebot example and you can read all the source code and see it work. Notice that five of the demos are Turtlebot. https://docs.ros.org/en/foxy/Tutorials.html

On Mon, Aug 23, 2021 at 4:40 PM Osman Eralp <osman...@gmail.com> wrote:
I'm finally going to learn ROS! I've seen a few threads about ROS2. For someone just starting out with ROS, does ROS2 have everything I'll need for a basic Turtlebot-style robot, or is original ROS still the way to go? TIA.

--
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/5734ccd6-1795-4d18-a1c6-1f0bc08ee682n%40googlegroups.com.


--

Chris Albertson
Redondo Beach, California

Bob Smith

unread,
Aug 24, 2021, 1:46:42 AM8/24/21
to hbrob...@googlegroups.com
On 8/23/21 8:50 PM, Chris Albertson wrote:
> but new projects need to be ROS2.

I ask as a question:

ROS comes bundled with OpenCV. Between ROS, OpenCV, Boost,
and all the dependencies for OpenCV, installing ROS from
scratch is nigh impossible. Almost everyone uses a docker
image or some pre-canned verion of ROS in order to avoid
dependency hell.

Would it be easier for Osman to learn micro-ROS before
diving into full ROS? Are the two are so similar that
learning micro-ROS would go most of the way toward ROS?

Micro-ROS can run entirely on a microcontroller and you
can use C in addition to Python and C++, right?
I wonder if if ever makes sense to run micro-ROS on a
Raspberry Pi just to make debugging your applications
that much easier.

Bob

Chris Albertson

unread,
Aug 24, 2021, 2:45:21 AM8/24/21
to hbrob...@googlegroups.com
First off, Micro ROS will not run native on the Raspberry Pi.  Well, yes there is a way to build Micro ROS apps on Linux and Linux runs on the Pi but you don't get real-time like if running on a microcontroller.   They say it is just for initial testing and debug.     Rather then a Pi, why not on a Linux PC?

If you read about running Miro ROS on a Pi, I think they mean a Raspberry Pi Pico.   The Pico is really a great microcontroller but it is totally unlike the Pi4.

The other answer is "No."  People wanting to learn ROS are likely wanting to lean to run the many tools and existing packages ROS2 comes with.  With Miro ROS all you get is the programmatic interface (The API)   The best learning platform is a reasonably powerful Linux PC with good graphics and a large screen

I've never had a problem installing ROS on the recommended system.  For example Foxy installs on a "clean" Ubuntu 20 using apt get.   People who run into problems typically are trying to install on an unsupported platform.

--
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.

Mark Johnston

unread,
Aug 24, 2021, 3:17:33 AM8/24/21
to HomeBrew Robotics Club
Chris beat me to the reply.   I agree fully Osman:  If you are just starting now go ROS2 even though it is not as well documented with anywhere near as many projects to find on the web it is the thing to learn at this point.    

Anyway here is an interesting perspective on the combination of ROS2 and micro-ROS.

Few months back I showed my DroidBot latest incantation that was ROS2 for the Pi and then my micro-ros port of my motor controller node to my Esp32 board.  I did a demo on a virtual HBRC meeting and even though it just poked around I can assure you it was a MEGA-TON of effort for the full port of working DroidBot  on ROS1 and my custom Esp32 motor controller to get all over to ROS2 and micro ROS for ROS2 usage.  

Not exactly ready for being a 'shippable product' but my observations included the following:
- I had a bit of a time then getting twist to run on ROS2 but by now it may be more included than at that time.  I did get it to run. I bet this is all smoothed out by now.
- Microros was much more complex to implement on the Esp32 (or any micro I might add) than just plug it in and it works.  It takes a bit of its OWN learning cliff.

That being said and done I would still go with this use of micro-ros on embedded subsystems simply because your ROS2 overall architecture will be more ROS-Like than if you invent your own protocols and wrap them in your own node on the host side that understands your custom serial or whatever.  

Micro-ros offers the ability to have some subsystem be much more  'Topic Central' and thus ROS like.  Thus micro-ROS has a place in the world although it too is rather 'new' and thus not a seamlessly easy thing to work with.   In a year or so it just might 'rock'.

Mark

Wayne C. Gramlich

unread,
Aug 24, 2021, 11:16:47 AM8/24/21
to hbrob...@googlegroups.com, Wayne Gramlich
Bob:

You need to be careful about using the terms ROS vs ROS2. ROS1 is the version 1
of ROS and ROS2 is version 2. The ROS (version 1) communication layer is layered
on top ROS core (a custom home grown communication layer.) ROS2 is layered
on top of DDS (an industry standardized communication layer.) Both ROS and
ROS2 support both Python and C++. For ROS, the Python and C++ layers are
completely separate implementations, but for ROS2 there is a common library
written in C that both the Python and C++ layers talk through.

I must confess, I've never had any problem installing code for ROS2.
I just followed the instructions. I was also able to run through
all of the tutorials. (BTW, I have a shell script that runs all of the
ROS2 tutorials.)

micro ROS really should be called micro ROS2, since it is designed to work
with the ROS2 DDS layer. It is written in C and can run with several of the
of the C based real time operating systems out there, in particular, FreeRTOS
and Zephyr. Thus, micro ROS (should be micro ROS2) only talks ROS2. The next
issue is that Micro ROS is not an Open Robotics project, it is a bunch of
people who did the code and I think they provide consulting services. It
is open source though. To be honest, I bounced on micro ROS the first time
I tried it due to the weak documentation. (BTW, I do have a shell script that
build all of the examples though.)

Debugging code on a microcontroller is very challenging. I have gotten to
the point where I can use my desktop machine to download and debug code on
an STM32F767. This is done over wifi to a Raspberry Pi, where an ST-Link
is plugged via USB and connects to the appropriate ST-link connector on the
microcontroller. It is not easy, but I did succeed. The next issue is being
able to single step through code in a FreeRTOS task while letting the other
FreeRTOS tasks run in parallel. It think it is possible, but not with an ST-link.

Regards,

-Wayne

Sergei Grichine

unread,
Aug 24, 2021, 6:31:39 PM8/24/21
to hbrob...@googlegroups.com
Diving into tutorials....   https://docs.ros.org/en/foxy/Tutorials.html

For Turtlebot:

"This repository contains the code and supporting files to run TurtleBot 2 demos using ROS 2. Due to reliance on existing Linux-only code and dependencies, these demos are intended for use only on Linux (that could change in the future).

The following instructions are for ROS Bouncy, if you are using ROS Ardent please refer to these instructions.

This demo assumes that you have an Orbbec Astra depth camera. Extra work would be required to use the Kinect or Asus Xtion Pro. Without an Astra, you can still do joystick teleop. For instructions on how to setup your turtlebot please see Setup your turtlebot2"

- you must have specific hardware, and ROS Bouncy is several releases back. Here starts the "nightmare" part. Did anyone here actually build a Turtlebot 2 on Foxy or Galactic following these instructions? Any lessons learned?

Don't read me wrong, I am all for ROS2, just trying to clear path for Osman. Reminds me of my turtlebot pains years ago. Was a lot of fun though.

Best Regards, 

-- Sergei Grichine 
--
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