Contents
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
Software libraries for Python, NodeJS, Java, C/C#, NodeJS, Go and Scratch
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 packages organized by chapters (both for the robot and remote laptop): https://github.com/PacktPublishing/Hands-On-ROS-for-Robotics-Programming
ROS packages to be hosted in the Raspberry Pi (SBC of GoPiGo3): https://github.com/ros-gopigo3/gopigo3-pi-code
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.
1. ROS basic concepts with GoPiGo3
ROS Programming from the Beginning
2. Kinematic simulation using RViz
Getting Started with Virtual GoPiGo3
3. Dynamic simulation using Gazebo (next)
4. 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
1. Practical articles to come
ADVANCED PATH
1. 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: