Hands on ROS: Chapter 9 part 2- more on Navigation

I got the GoPiGo3 specifically to learn ROS, and have been happy with it as a learning platform. But there really is a lot to learn with ROS. As I played around with SLAM and AMCL navigation I decided it would be easier to learn if I had a more controlled environment than my den/kitchen/etc. (chair legs seem to be an issue for the LIDAR since they’re small). So I used some plywood I had in the basement to make a small arena for learning.

I’m able to set goals, etc. Will be adding internal obstacles soon in order to learn how to tweak the local and global maps. One thing I noticed running AMCL was that the robot seemed disproportionately large.

The robot doesn’t take up 1/3 the width of the arena at that point. Looking at the gopigo3_actual.gazebo file, the dimensions in the URDF did seem to be larger than the physical robot. I tweaked the dimensions so that ROS would have a clearer idea of my robot’s actual size once I start to include obstacles.

I’ve attached my current version of the .gazebo file (with an extra .txt extension so the forum will allow the upload) in case it’s of interest. It seems better, but I’m sure it’s still not quite correct. I’ve started working through the tutorials at the Robot Ignite Academy so that I have a deeper understanding of what I’m doing. If I tweak the file further I’ll provide updates here.


gopigo3_actual.gazebo.txt (12.8 KB)


Very nice setup you created!

If you want to share your work “officially”, you can do a PR here:


Ooh. Hadn’t thought of that. I’ll look more closely at the GitHub. Not sure that anything I’ve done yet is production-ready. But hopefully one day :robot:

1 Like

One other note in case it happens to you. I had launched the YDlidar launch file on the robot, and then delayed the launch file on my laptop. When I finally ran it I got errors that there was no transform between my robot base and the map. What finally solved that was shutting down ROS on the robot (ctrl-c in the launch terminal), and then starting the robot launch file and the laptop launch file in quick succession. Not sure why that makes a difference, but it seemed to.