ROS2 for BrickPi3

Dear all,

I have developed ROS2 packages for the BrickPi3. It has been tested on a Raspberry Pi 3 Model B+ running Ubuntu 22.04

There is a package for sensors and includes all the standard EV3 sensors plus a battery node, a HiTechnic Compass sensor and Gyro sensor.
There is a package that provides a ROS2 control hardware plugin (motors) for the BrickPi3.

There is also a demo package with an example launch file to launch ROS2 control and configure the plugin to use the ROS2 control differential driver controller (so you can drive the motors). The ROS2 control differential driver controller (part of ROS2) accepts Twist messages, and in this example configuration drives the EV3 motors.

I hope this may be of interest to the community and I welcome feedback.

The code is hosted on github and is available here: ROS2_BrickPi3

Kind regards,
Julian.

3 Likes

Wow @julian.w.francis this is so cool!

Love that you chose to build on the ROS 2 Humble stack. Your architecture demonstrates great design principles in ROS - lots that folks can learn from. Really super, and your documentation is tip-top.

2 Likes

Hysterical that you named your demo robot “Charlie”.

My robot is also named Charlie.

He has two sisters; Charline, (another GoPiGo-3), and their little sister Cindy, (a Dexter Industries GiggleBot).

3 Likes

@julian.w.francis

I hope you will continue to visit these forums and keep us up-to-date on your BrickPi adventures.

We really need someone here who is a subject matter expert on the BrickPi, as none of us regulars have one and it’s difficult to just “wing” answers.

Thanks!
Jim.

2 Likes

Hi Jim,

My robot was originally going to be called Thomas, but in the end I decided to reserve that name for a tanked or tracked vehicle.

Best wishes,
Julian.

Post Scriptum: Charlie has asked me to send his warm regards to his namesake and their siblings.

3 Likes

Hi Jim,

Regarding the forum I do plan on keeping in contact. I am not a BrickPi3 expert, for writing those ROS2 brickpi3 packages, they basically rely on the BrickPi3 github libraries (both their Python and C interfaces) to control the BrickPi3 board. The ROS2 brickpi3 packages that I wrote are just glue logic to tie ROS2 to the BrickPi3 library code. But I am happy to chip in with what I know.

I’ll be adding a YouTube link from my git hub repo (ROS2_BrickPi3 over the next day or so, if you are interested. (I have already made several versions of the video I am just deciding which one is best).

Kind regards,
Julian.

3 Likes

This is just a comment intended for those who are thinking about ROS2 but are not that familiar with it.

This is just my personal opinion, but my thoughts are that ROS2 is quite a complicated system, and for those who just want to get a robot up and running, reading some sensors and driving around; ROS2 is probably overkill. However for those who are feeling super ambitious, ie wanting navigation (SLAM), sophisticated object detectors, needing more compute than the Raspberry Pi can provide, therefore needing a distributed compute system…etc etc, ROS2 is the way to go.

3 Likes

Exactly agree. Unless trying to get hired by one of the 900 companies actually using ROS, or wanting to get a head start for a masters level degree in robotics, choosing to use ROS will complicate progress. (Or in my case really want to access visual SLAM with dynamic navigation to make my home robot “aware” and safe when exploring its surroundings.)

3 Likes

That was my impression.

I remember reading here someone said that the ROS paradigm is very simple, but actual programming to implement sometimes was quite difficult.

Viz.:


 

Programming ROS: =>  picnic

However, it seems that the only one interested in GoPiGo O/S is me - everyone else is ROS this, ROS that, and ROS something else.

So, I figured that I should, at the very least, try messing around with ROS.

I still believe that there’s still “a lot o’ meat left on them bones” regarding GoPiGo O/S and I still have a long way to go before I run out of things to do with it.

I am absolutely sure that this can be done in GoPiGo O/S with no more difficulty than ROS.  Perhaps even in Bloxter?

3 Likes

I completely agree with both of your comments. Jim I liked your cartoon. I think I know that feeling.

I did a short youtube video: ROS2 brickpi3

1 Like

Yes, That multi-color LED (turning off the WiFi indication) makes a great color ID that can be seen by a PiCamera. (and I built a GoPiGo3 recognize color “sensor” that should be much easier to use than ROS!)

1 Like

@julian.w.francis,

I don’t think anyone here is an “expert”, (with the exception of @cleoqc, who’s the relevant engineer at Modular Robotics!)

We’re all just people who find robotics interesting and stimulating, and find that the GoPiGo provides the best bang for the buck.

I also have a GrovePi+ to experiment with, (though I haven’t even unpacked it yet! :man_facepalming: )

Regarding expertise:

  1. @cyclicalobsessive and @KeithW are the local “experts” on ROS, alternative operating systems and getting things to work.  You would do well to go back and read anything they’ve posted, as well as cloning their GitHub repos.

  2. My own expertise is primarily hardware, multi-booting the Raspberry Pi, and the various flavors of Dexter OS, Raspbian for Robots, and the newer GoPiGo OS.

  3. @cleoqc is the resident engineer for everything that is related to Dexter Industries’ products before they were subsumed by Modular Robotics.  She’s forgotten more than we’ll ever know.  She also maintains the distributions of GoPiGo OS and the Master Dexter Industries GitHub repos.

We need “resident experts” in the Brick Pi and GrovePi.

Anything you can provide would be gratefully appreciated!

2 Likes

Hi Jim,

Thanks for the tips. I didn’t see any reference to cyclicals or Keiths github repo’s. Would definitely be interested in checking them out. I thought it might be on their profile’s, maybe I am looking in the wrong place.

1 Like

@cyclicalobsessive’s repo goes under the name “Slowrunner” (or something like that, I’m not in front of my computer right now.)

1 Like

Hysterical!

I love it!

2 Likes

All my brain is splattered upon the bits at

1 Like