Choosing a ROS2 on GoPiGo3 Learning Path

Options for learning ROS2 (on the GoPiGo3):

ROS2 Course (not GoPiGo3):

I looked at the Python course plan. I was hoping it might give some experience processing array data, but it doesn’t specifically say if it does. (To really understand ROS, I have the impression I need to fill the gaps in my matrix math abilities.)

MR intimated that there is a new ROS for GoPiGo3 book in the works, but did not know if it was going to be ROS2.

I am contemplating following your posts and corrections to the “Hands On ROS” book, but attempt to do it all in ROS2.

2 Likes

I haven’t found that I need to use a lot of matrix math, at least not at the level I am. I’m sure some of the packages take care of that for me.

That seems to be as good a starting point as any. I’ve done absolutely zero ROS2, so I have no idea how likely that approach is to work. But certainly worth a try.
/K

2 Likes

I probably will try the “official” ROS 2 Tutorials before diving into the “Hands On ROS for GoPiGo3” book. I not sure if the ROS 2 Tutorials cover rviz and gazebo.

I still have to tackle getting ROS2 up on the RaspberryPi before I have options to consider.

ROS2 Tutorial

Beginner: CLI Tools

Beginner: Client Libraries

Intermediate

1 Like

The ROS1 tutorials were all good. My only problem with them was that they were pretty lean in terms of content, and there’s no great mechanism for answering questions/correcting silly mistakes.
/K

2 Likes

Did you use the $10/month packt subscription or just purchasing the book entitled questions?

1 Like

I just bought a paper copy of the book on Amazon - easier to make notes in a real book. I haven’t looked at the Packt subscription, and don’t know what their forums are like.

For basic ROS I’ve subscribed to The Construct. Their the forums are focused on specific courses, but for now that suits my needs. There is a ROS Answers site - I’ve found answers there a few times, but don’t think to check it regularly. That may be the best place for questions about the official ROS tutorials.

/K

2 Likes

I favor e-books these days, so I can search and copy/paste.

Question - Section 3 of the “Hands On ROS Programming (for GoPiGo3)” talks about learning JupyterLabs. Did you use JL alot? Were the code samples free text or embedded in JupyterLabs?

When I built the ROS2 on Ubuntu Server (with GoPiGo3 code), I didn’t install any desktop/x-windows, so Jupiter Labs would be a real stretch.

1 Like

I mostly read e-books, but in this case I wanted it open next to me, and I scribbled in notes as I went. All of the code can be downloaded, so there’s no need to cut-and-paste that.

I don’t remember that at all. I’m travelling now so I don’t have the book handy - I looked at the TOC on Amazon and don’t see anything to spark my memory. On my robot I’m running Ubuntu Mate without a desktop, so that’s not a problem. On my laptop I do have a desktop. Regardless, I don’t recall running a Jupyter notebook for any of the ROS stuff.
/K

2 Likes

I found a hack for accomplishing the HandsOnROS JupyterLabs stuff w/o JL!

Browsing JupyterLab encased content on GitHub displays it, so simply starting python3 in a shell and typing the content of the JL allows performing the exercise:

For example: Viewing servoCalibration.ipynb on GitHub

Shows:

So in an ssh session it looks like:

pi@Carl:~/Carl $ python3
Python 3.7.3 (default, Jul 25 2020, 13:03:44) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import easygopigo3 as easy
>>> my_gpg3 = easy.EasyGoPiGo3()
>>> servo = my_gpg3.init_servo()
>>> servo.rotate_servo(0)
>>> servo.rotate_servo(180)
>>> servo.rotate_servo(90)
>>> servo.rotate_servo(88)
>>> servo.rotate_servo(89)
>>>   (Control-D)
pi@Carl:~/Carl $ 

(That was on Carl. ROSbot arrives today and will sport Python3.8 but work identically.)

1 Like

I’m home now. Yeah - that was all in DexterOS, not ROS, as part of the initial set up. I had forgotten about that.

Your work around is a good one - highlights the utility of Python’s interactive REPL shell.
/K

2 Likes