GoPi5Go-Dave Thought He Was A TurtleBot

Last year GoPiGo3 ROS 2 Robot “Humble Dave” managed to figure out how to generate a map from wandering with the LIDAR active, but did not succeed with learning to navigate.

Today, while following the ROS2 Nav2 - Navigation Stack in 1 Hour [Crash Course] which uses the TurtleBot3 Gazebo simulated robot, I heard GoPi5Go-Dave inching along the floor behind me. Dave was “hearing” the /cmd_vel topics sent from the turtlebot3_teleop keyboard node that were driving the simulated TurtleBot3 in Gazebo.

I quickly changed the ROS_DOMAIN_ID for my turtlebot3 nodes to be on a different domain from the default domain GoPi5Go-Dave is using. I drove GoPi5Go-Dave back to his “ready_to_dock” position using his joystick controller and he continued to function autonomously without thinking he was a Turtlebot3 any longer.

2 Likes

Sounds interesting.

Can you break this down into more understandable chunks?

What was the (dis)advantage of “thinking he was a turtlebot”?

1 Like
  1. Roughly three years ago I created the ROS 2 GoPiGo3 sdCard image with a basic hands-on intro to remote driving a stock GoPiGo3 (no LIDAR) with the ROS 2 teleop_keyboard node. (I did not create a ROS-GoPiGo3.sdf definition file for use with the ROS 2 Gazebo simulation program.)

  2. Also in 2021, I participated in the iRobot Create3 ROS 2 software beta test where a simulated Create3 ROS 2 robot ran in the ROS 2 Gazebo simulation world.

  1. Subsequently I created “Humble Dave” based on my ROS 2 Humble GoPiGo3 sdCard image, and got frustrated by odometry poor accuracy of the GoPiGo3 as a ROS 2 robot.

  2. The $1100 ClearPath TurtleBot4 was released (basically an iRobot Create3 robot with a LIDAR, Oak-D-Lite camera, and “TurtleBot software stack”). I was one of the very few, perhaps the only non-University to buy one. It arrived scratched and the camera mount was twisted. I returned it immediately for full refund. I later learned the university users were having serious trouble with the TurtleBot4 performance. (The TurtleBot software stack includes tutorials, a very simple turtlebot simulation, a very complex Gazebo application simulation, and full controller software for a Raspberry Pi 4 to perform mapping and navigation with any model of Turtlebot in production.)

  3. I returned to advancing my ROS 2 adventure with GoPiGo3 Humble Dave and used ROS 2 slam_toolbox package to map my kitchen with the LIDAR.

  4. Having created a map of my kitchen, I attempted to configure and use the ROS 2 Navigation package to give Humble Dave a goal to move to the other side of the kitchen and turn around to face me. Dave was having none of it.

  5. One of the talks presented at ROScon that year was about how iRobot had diagnosed and optimized the performance of the Create3 ROS 2 robot, and the iRobot Create3 was then $50 off making it $400 for a robot that could find its dock and recharge, had bumpers, obstacle sensors, built-in wall-following and obstacle avoidance, and developers answering questions and fixing bugs on a daily basis. It seemed the perfect robot. I built Create3-WaLI (WallFollower Looking for Intelligence) and indeed it could map, and navigate to the kitchen and return to its dock. The Create3 powersupply also easily supported the Pi5 power needs and had aux power for accessories. (This formed my introduction to running ROS in Docker on the Pi5.)

When I tried adding vision, my dreams were shattered. The internal processor of the Create3 was already running at 90% before the ROS message channel exploded with visual and 3D data being sent to the ROS 2 RTABmap package (none of which were relevant to the Create3 but somehow could not be ignored by the Create3 processor). The Create3 would halt, crash, and require a lengthy reboot. The developers were giving me daily private builds and config changes to try, but I got frustrated having to work on the platform instead of learning how to use vision in my robot programs.

I wanted my money back. They offered a refund and wanted me to keep the robot to help them. I put WaLi on my bookshelf and sent the congenitally defective Create3 back to iRobot just as they were announcing a corporate pullback on “educational products”.

  1. Returning to the GoPiGo3 platform, which was at 100% RPi4 processor load performing the non-working navigation, I rebuilt Humble-Dave as GoPi5Go-Dave with the Pi5 and ROS 2 Humble and the GoPiGo3 API running in Docker.

  2. Now that I have GoPi5Go-Dave docking and undocking, it is time to revisit ROS 2 navigation. I found a 1 hour YouTube that used the TurtleBot3 Gazebo simulation to demonstrate ROS 2 navigation, and was able to reproduce the video simulation on my Mac.

Turtlebot software is all open source, so my thought is to learn on the Turtlebot simulation and then “change the names and faces” to GoPiGo3.

He was wandering away from his dock without knowing how to “navigate” home.

Technically - the ROS navigation program was sending /cmd_vel messages to the Turtlebot3 running in the 6 by 6 meter Gazebo simulated turtlebot3_world, but GoPi5Go-Dave was “overhearing” the commands and executing them in the real world that does not match the turtlebot3_world. Since Dave did not have his Lidar running, he could not sense when he was about to crash into a wall or furniture.

1 Like

It is of note that in the nine months of 2024 so far, only six questions have been posted to the TurtleBot4 discussion forum, none of which were answered. (actually one question was answered by the asker, and another was my question which I closed unanswered, leaving four active unanswered.)

1 Like

That’s worse than us!

1 Like

What a disaster!  :man_facepalming:

Over a thousand smackers for a robot that can’t get outta’ its own way?  Sheesh!

Maybe our problems with Bookworm aren’t so bad after all?

I still stand by my statement that the GoPiGo robot is one of the better platforms out there.[1]  It has its issues, but - bottom line - it seems like you get more done with the GoPiGo in 15 minutes than all the fancy-schmancy stuff in 15 weeks!

[Charlie and Charline sittting there smirking and snickering at the fancy robots that can’t get outta’ their own way!]

Sure, we have had our problems but, (at the very least), we’ve been able to do useful work on our various projects and contribute to each other’s knowledge.

I’m not so sure about the Turtle-bot/Create3 world though.

(Man pounding head against wall)

=============== Footnotes ===============

  1. Right now, the GoPiGo’s biggest problem seems to be the acrylic chassis parts cracking under stress.  I have mitigated this to some extent with fiber spacers.
     
    There seems to be an additional materials problem with the later (Charline era) acrylic chassis parts “over-curing” over time and developing stress-cracks.
     
    This might be a bad batch of parts, but it’s something I think MR should research.
1 Like

What is this?
[Twenty characters]

Turtlebot3 is the robot base produced by ROBOTIS:

  • Turtlebot3 Waffle $1600
  • Turtlebot3 Burger $650

Gazebo is an open source ROS robot simulation application currently maintained by the non-profit Open Robotics. Open Robotics is also the primary maintainer of the ROS base and “ecosystem”. Gazebo simulates robots, sensors (bumpers, distance, cameras), and the environment.

ROBOTIS created extensive documentation, tutorials, and open source (Apache licensed) ROS software for their robots. They also created special “Turtlebot3 ROS packages” that hide the complexity of installing, configuring and running other folk’s ROS packages with the ROBOTIS robots.

“Turtlebot3 Gazebo” consists of the Open Robotics’ “Gazebo Classic” ROS simulator combined with some simulated worlds (turtlebot3_world, turtlebot3_house, and more) and the simulated Turtlebot3s (waffle, burger, waffle_pi)


This video (1min 43sec) shows the ROBOTIS Turtlebot3 offering, and I have marked it to start at a 15 second segment that shows the Turtlebot3 Gazebo simulator. After watching the 15 seconds, rewind to the beginning for a quick intro to the Turtlebot3 robots.

Gazebo Classic that the “Turtlebot3 Gazebo” installs is slated to EOL this coming January

So it is crazy of me to be creating a “GoPiGo3 Gazebo” package from “Turtlebot3 Gazebo (Classic)”.

1 Like

I am still a bit confused about what it does and why it’s important.

1 Like
  • creates a virtual 3D world
  • with a virtual 3D ROS 2 robot
  • with virtual sensors
  • displays everything on a monitor from any view angle

Gazebo Simulation:

  • Allows learning about ROS 2 and writing ROS 2 code without needing a physical robot
  • Allows testing ROS 2 code without risking damage to an expensive robot, or the environment
    (Especially testing code changes on an autonomous air vehicle, or autonomous underwater vehicle, or autonomous Mars Rover)
  • If an easily installable, latest ROS 2 version GoPiGo3 robot simulator existed,
    it might encourage “cost-conscious” ROS NOOBs toward the GoPiGo3 has been my thinking.

Simulation is not important to GoPi5Go-Dave or to my robotics software workflow.

1 Like

So. . . .

That thing that looks like the pool at a resort with several swim-up tiki-bars and pillars in the center is the gazebo?

1 Like

Now that you mention it :yum:

No, “Gazebo” is the name of the simulator. Since it is open source folks can offer customized versions.

“That thing that looks like the pool at a resort” in the just prior post is the “turtlebot3_world.world” displayed by the TurtleBot3_Gazebo simulator application.

In the first post of this thread, “That thing…” is the “gpg3_world.world” displayed by the GoPiGo3_Gazebo simulator application.

1 Like

Oh, silly me!

I always thought a “gazebo” was a free-standing structure.  Perhaps containing a swim-up tiki-bar at a resort. :rofl:

1 Like