Happy National Robotics Week 2022

Huh?

It comes with a Pi, and has Pi-power specifically built in.

Supposedly not only does it have built-in sensors, etc. - it has a cargo bay and, (if I read the article correctly), it has the ability to add more stuff - including articles on how to do it.  And!  It already has the ROS nodes for everything built-in to its version of ROS - which as I remember was a large chunk of getting ROS to work on the GoPiGo.

Maybe Keith and yourself can convince M/R to open an ROS repo, or create your own special ROS on GoPiGo-3 repo, and upload stuff to it so that the next poor sod doesn’t have to re-invent the wheel, 'eh?

1 Like

Charlie was shouting “Get that blinkin thing away from me!” Looks like he needs a “motor box” for protection:

1 Like

Nah, he like’s ‘em swingin’ free in the breeze - it’s cooler that way.  (Sitting near a radiator that’s active almost 9 months out of the year!)

Also, he’s a strictly indoor 'bot.

2 Likes

No RPi included.

Sure, after you add a RPi you have the RPi GPIO. And there is no fan in that cargo bay, so better plan for cutting a hole in that cover for one of those fancy lighted fan liquid coolers.

Actually, installing the GoPiGo3 library onto the ROS2 required Ubuntu 20.04 OS version was the difficult part back then (Python3 install failed). Now that that works smoothly, bringing up a ROS/ROS2 GoPiGo3 is relatively simple:

  1. Install Ubuntu
  2. Install GoPiGo3 API
  3. Install ROS/ROS2
  4. Download GoPiGo3 ROS or ROS2 nodes from GitHub
  5. “Build The Node”
  6. Run the node

The hard part now is learning how to set up your laptop or desktop with ROS/ROS2 for all the nodes that consume the GoPiGo3 (or Create3, or Turtlebot) node’s messages and do something with the data.

2 Likes

They do have a blockly-like environment for the Create, as well as Python (and ROS2 as a 3 choice for the most advanced students). And I thought I saw they had lesson materials.

seconded

Sounds like an interesting thread. At least for me Python gets so much right that I’m willing to overlook the parts that annoy me. ROS is more of a mixed bag, but still I think it’s mostly right.

/K

2 Likes

Weeelll…

That’s like music - everybody’s tastes are different.

The “few” things that Python gets wrong are, (for me), such stupid omissions that it really takes away from the language.  (I don’t remember them right now - selective amnesia?) - but when I work on things of any complexity at all, it drives me nuts!

ROS scares me because so much isn’t done and I really don’t have an idea where to begin.  Then again, after some of the other stuff I’ve done, maybe it’s worth a try down the road?

As I see it, comparing ROS, not even to GoPiGo O/S, but to Legacy Raspbian with the GoPiGo stuff curl’d in, is like this:

Building a house in Legacy Raspbian:

  • Pre-fab pieces.
  • Lumber and materials for options are cut to size.
  • Plans include pictures and assembly guides.

Building the exact same house in ROS:

  • A set of blueprints.
  • Logging rights in a forest.
  • A penknife.
  • (Optional accessory)  An axe.

At least this is how I see it based on what you two had to go through to get the 'bot to even think of itself as a robot - forget the LIDAR and stuff - just the basic 'bot coming on line was a major undertaking.

1 Like

No disrespect intended but. . .

Why isn’t Dave dancing jigs, walking on water and talking to the angels - and why do you need a “Legacy” install for Dave to be useful for a lot of the stuff you have him do?

I AM still curious about ROS/2, but, (as far as I can see), if I load up Legacy Raspbian and curl the GoPiGo stuff in - I’m done!  All my stuff runs, and - with the exception of things that require a secure cert installed and changes to the hosts file - Charlie’s a happenin’ thing.

I’m not there and maybe I don’t remember rightly, but even with a separate 'bot dedicated entirely to ROS, Dave can’t even dock himself - right?  And compared to what Carl can do, it seems like Dave has a walker and a handicap placard.

Not wanting to diss Dave, but (so far) it seems like your merry trip down ROS lane has been more frustration and less victory than it’s worth.

So, what am I missing?

P.S.
A moniker for Dave’s home placard:
Dave, A Valiant Endeavor
(and it’s even recursive!)

1 Like

ROSbot Dave could be considered “done” from the standpoint of what is typically installed on a ROSbot mobile platform. Dave is able to see, walk, talk, and ready to dance! … If the distributed parts of ROS/ROS2, the brainy parts, were not so flexible as to be nearly useless out of the box.

For me the ROS2 world is a smelly pile of software items grabbed from various 2nd hand stores that must be washed and color coordinated to make ROSbot Dave perform a particular dance at a particular event. I thought all the outfits for the fun dances had been figured out, cleaned and ready for “ROSbot Dave” to wear. The ROS2 world is huge, and quite real world-ish.

If I had followed the previously traveled path of ROS instead of ROS2, I would not have had to synthesize a path. I did that to myself - no fault of ROS.

I use Legacy Dave when I specifically need to use the latest version of the GoPiGo3 API, or run forum posted code on a simulated GrovePi or BrickPi environment running Legacy PiOS. I like the Legacy PiOS. It is an officially maintained OS from the Raspberry Pi foundation specifically for the RPi.
(Ubuntu being an “also runs on RPi” OS is much like ROS is an “also runs on RPi” but RPi is not really at the top of the “we care” list for the Ubuntu folk.)

I use GoPiGo OS Dave to repro forum posted code and just to be somewhat familiar with it. I don’t want to update it and be different than other users. I also hate having to fire up my iPad to disable the access point mode and configure the networking the first time, but I do it. (and that garbled audio drives me crazy as well.)

For pure Python investigations, like multi-processing or multi-threading, I tend to just use Carl because he is always awake.

At some point, I want to move Carl off Raspbian For Robots onto Legacy PiOS, (and I might even change his battery chemistry someday and re-write the “Juicer Rules”, if Dave doesn’t burst into flames unexpectedly.) I don’t like that I can’t update Carl’s OS without breaking the working audio, perhaps moving Carl to Legacy PiOS will get me past that issue.

And when Keith makes the jump to ROS2 next year, I will have someone to follow behind in ROS2. Maybe I’ll get out of my slump and forge into mapping and localization myself but it just seems like too much work to figure out the ROS2 Nav2 stack myself. There are tutorials, but I haven’t had the strength to jump into them. I have never wanted a remote controlled robot, but I have wanted to benefit from other people writing robot behaviors.

Some folks like big cars, with big engines. I prefer little cars, little gas tanks, and a long time between fill-ups. Some folks like to mod their car. I just prefer to drive and a “stock” car at that.

“Worth” is pretty hard for me to judge. I’ve had fun with ROS2 so far. I managed to create a ROS2 GoPiGo3 node, a Dave visual model, and connect ROSbot Dave to the remote visualization tool. (It was seeing the “black holes” in the LIDAR scan in rViz2 that clued me into the DI Distance Sensor “off angle” limitations.) I got ROSbot Dave through a “1K ROS2 Run.” True, there has been frustration; Mostly from thinking I could “do it on my own”, skip the training wheels, go straight to mapping the house and find his way back to his charger, then squeeze the fluff out to bring it all “on-board”.

In the meantime I have seen several new ROS2 tutorials that probably could have me mapping the house, avoiding obstacles, estimating location, and navigating to a goal with a few days diligence. I just haven’t had the motivation to invest yet.

Cute.

2 Likes

The Python programming for the Create3 forces neophytes to learn asynchronous programming from the very start, which might be smart but seems scary to me having always to struggle to break out of sequential thinking.

Set up some event responses, then hit “Play” and wait till things “happen”:

# Licensed under 3-Clause BSD license available in the License file. Copyright (c) 2021 iRobot Corporation. All rights reserved.
#

# Very basic example for avoiding front obstacles.

from irobot_edu_sdk.backend.bluetooth import Bluetooth
from irobot_edu_sdk.robots import event, hand_over, Color, Robot, Root, Create3
from irobot_edu_sdk.music import Note

robot = Create3(Bluetooth())
speed = 10
th = 150


async def forward(robot):
    await robot.set_lights_rgb(0, 255, 0)
    await robot.set_wheel_speeds(speed, speed)


async def backoff(robot):
    await robot.set_lights_rgb(255, 80, 0)
    await robot.move(-20)
    await robot.turn_left(45)


def front_obstacle(sensors):
    print(sensors[3])
    return sensors[3] > th


@event(robot.when_play)
async def when_play(robot):
    await forward(robot)
    while True:
        sensors = (await robot.get_ir_proximity()).sensors
        if front_obstacle(sensors):
            await backoff(robot)
            await forward(robot)

robot.play()

YUCK!

python.irobot.com:

@jimrh After seeing this, do you still think the GoPiGo3 needs to up its game? I think not.

2 Likes

You all make good points and, as @cyclicalobsessive said, (sort of), not everyone likes the same flavor of ice cream.

It sounds to me, based on what you all have said, that the ads for the “i” Robot, are more fluff than substance.  Yes, you get a bot that can do a lot of things, but like an old VW bug I bought years ago, you’d have to:

  • Add an engine.
  • Convert the car from 6v to 12v.
    (The previous owner was a total wanker and converted a perfectly good 12v beetle into a difficult-to-maintain 6v version.)
  • Drill the transmission and install a custom bushing so the starter would fit. (6v and 12v starters had a different shaft diameter.)  I couldn’t just swap the starters as the starter mount on the transmission/engine was different too.
  • Majorly rewire the dashboard.
  • Re-lamp everything.
  • Add certain essential dashboard gagues that were missing.
  • Replace those gages that were 6v specific with 12v versions.
    (Including things like the fuel level sensor and the blinker.)
  • Re-do the headlamp and tail lamp wiring.
  • And a bunch of other things I forgot.

I was lucky that I had access to a lot of parts from some earlier cars we bought just for the parts as the bodies were rusted out beyond any reasonable attempt to repair - so we got 'em cheap.  I was also a college kid short on funds and long on time.

The next car was more like a GoPiGo.

All I had to do was:

  • Pay money.
  • Sign registration and title applications.
  • Turn key.
  • Drive to gas station and add fuel.
  • Drive home and enjoy the car.
2 Likes

I dunno. The Create really comes with pretty much everything in one already integrated package - seems to be closer to your second description.
/K

2 Likes

That’s what I thought too.

@cyclicalobsessive mentioned that it was more of a half-baked solution, so I figured that I’d missed something.

1 Like

Just need to add

  • Raspberry Pi 4
  • Short USB-C to USB-C data cable
  • 4 standoffs
  • LIDAR
  • screws to hold LIDAR TO top plate
  • USB-C y data y cable
  • USB-A to USB-A micro cable
  • PiCamera
  • piCamera mount
  • PiCam cable
  • A little drilling to the top plate,
  • mod the sDF/URDF for the LIDAR and PiCam
  • install Ubuntu to SDCard
  • install ROS to RPi
  • install/build LIDAR node
  • install/build PiCam node
  • setup laptop with Ubuntu
  • install ROS to laptop
  • get stuck where I am install Nav2 and mapping

And you have a Complete ROS robot IMO

… and there is no iRobot Create3 specific user forum last I was looking

1 Like

Didn’t know Charlie was a Scot

I didn’t realize that. Definitely not for newbies, but the stated audience is for upper high-school and college.

Yeah - that is actually true. The Create3 is more for programming straight out of the box.

Maybe not - there are a lot of mounting holes already on the top plate. I had to follow many of those steps to add the lidar to my GoPiGo3.

The Turtlebot 4 will be built on the Create3 chassis - will be interesting to see what that price point will be. That will be a more complete ROS robot.

/K

2 Likes