ROS Software Maintainer: Bernardo R. Japon

Overview

GoPiGo3 is a differential drive robot manufactured by Dexter Industries, that offers a wide range of sensors and actuators to assemble on it. The robot is intended to be used as an educational kit for learning about both robotics and programming, two complementary perspectives that clearly show the transversal knowledge you should acquire to become a robotics engineer.

The manufacturer developed a very complete set of libraries to run software in several languages: Python, Scratch, C, Javascript and Go. Anyway, in order to be really useful also for research and professional training, ROS support is nowdays a must. And this is what we are glad to share now with the ROS community.

Dexter Industries manual

ROS packages

  • ROS GoPiGo3 basic bundle. It includes the following packages:

    • gopigo3_description provides the URDF model of the robot that you can use to perform simulations.

    • gopigo3_fake allows to experiment with the robot without needing the physical one. Yo can, for example, explore its kinematics with RViz tool

    • gopigo3_bringup allows the user to operate the physical robot including the distance sensor and the servomotors of the wheels.

    • Tutorial on this package: Learning Robotics with ROS made easy

Book

There is a book- also authored by the ROS package maintainer- to guide through your learning experience of ROS with GoPiGo3: Hands-on ROS for Robotics Programming The book phylosophy is learn by example and there are plenty of examples to learn ROS from scratch to the more advanced features, i.e. Robot Navigation, Deep Learning and Reinforcement Learning (find a brief summary of the scope in this article).

Regarding the source code, there are two repositories:

ROS Melodic image for GoPiGo3

You can download this pre-built image from here. Its characteristics are:

  • OS Ubuntu Mate 18.04
  • ROS Melodic distribution
  • Compatible with Raspberry Pi 3
  • Pre-built catkin workspace including GoPiGo3 source code

NOTE: In the source page you also have the complete list of downloads for GoPiGo3.

The image contains ROS Melodic including the code needed to run the examples of the chapters that involve the physical robot:

  • Chapter 7: Robot Control and Simulation

  • Chapter 9: SLAM for Robot Navigation

  • Chapter 10: Applying Machine Learning in Robotics

After downloading the image file you just need to burn the image to the micro SD card of the GoPiGo3 Raspberry, using the friendly Balena Etcher app (it lets you skip the extraction process, i.e. you can add directly the compressed tar.gz file).

Latest & advanced tutorials

You can get related material and advanced tutorials in the maintainer's website TheRobotAcademy.com. Here is where readers who finish the book should keep on improving their ROS skills with the little GoPiGo3.

Learn ROS by Example

This serie of tutorials is intended to learn ROS from scratch using GoPiGo3, both hardware and simulated versions. It goes from the basic concepts to the advanced topics dealing with SLAM, Robot Navigation, Deep Learning and Reinforcement Learning.

NOTE: This is a work in progress, so you may re-visit this page from time-to-time in order to find the new tutorials. Coming deadlines are offered for the interested readers

BEGINNERS PATH

In this first stage, all the tutorials refer to the virtual model of GoPiGo3. This way you avoid dealing with robot hardware issues, and may focus on ROS concepts applied to a real robot.

ROS basic concepts with GoPiGo3

ROS Programming from the Beginning

Kinematic simulation using RViz

Getting Started with Virtual GoPiGo3

Dynamic simulation using Gazebo (next)

More basics to come ...

INTERMEDIATE PATH

In this second stage we introduce the robot hardware, and you will use ROS to run the same software both in the simulated

Practical articles to come

ADVANCED PATH

Deep-dive articles to come

Tutorials & Articles

It follows the list of related ROS with GoPiGo3 articles published in the Medium blog of the maintainer of the ROS packages:

Wiki: Robots/gopigo3 (last edited 2020-11-09 15:18:13 by BernardoRonquillo)