I was asked to show a picture of my RugWarrior GoPiGo mashup. I’ll use this thread to post info that is specific to my “GoPiGo” compliant robot, the GoRWPiGo.

The RugWarrior and RugWarriorPro was an attempt, 20 years ago, to create an educational robot product. Creating a robot is simple, creating a robot product is phenomenally hard!

This was my My RugWarriorPro named “Pogo”.

Two years ago, I decided to upgrade the “brains” of my robot. After a lot of research on the options, weighing the pro and con of every combination against my goals, I chose the Raspberry Pi as the processor, and the Micronauts Pi Droid Alpha motor and sensor interface card.

This was the result (Pogo with a Raspberry Pi) “Pigo”

The biggest problem with Pigo is that it is a totally new robot species - meaning that I have to design every electrical, mechanical, and software aspect. To build a simple robot is simple, to integrate motors and sensors as an intelligent robot is not simple, and takes more time and knowledge than my cyclical obsessive dedication to my robot was producing.

In the interest of enabling my robot to use other people’s software, (and perhaps feeling part of an active community), I decided to implement the GoPiGo API (Application Program Interface) over my Pigo with the idea that programs that import gopigo could run over my RugWarrior robot with a single line change to “import goRWpigo”.

Commercial robots such as the GoPiGo have solved some of the problems, that home-grown robots have not even thought of. My PiGo robot had the camera on the tilt/pan sensor platform. When I attempted to run my very first GoPiGo program, us_servo_scan.py, the camera cable prevented the pan range to 70-110 degrees, so I moved the camera (and IR distance sensor) off the platform allowing success.

This is my GoRWPiGo (GoPiGo compliant RugWarrior)

My bot has a few features beyond a GoPiGo, such as more inputs and outputs, a full skirt for bump detection, a speaker connected to the audio jack, a tiny USB microphone, the tilt servo, and a current sensor, BUT my focus for the coming year is going to be restricted to the “GoPiGo with pan servo mounted ultrasonic sensor, and Pi Cam” as a standardized, common platform. If DI would define that platform as the “GoPiGo Pro” or some named configuration, it would be easier to discuss and to write software for.

This should allow any program for the “GoPiGo Pro” to run on my bot, and any program I create to run on official GoPiGo robots.

More thoughts later…


That is cool! What if there was a standard robot control API? For example the GopiGo has a completely different API then the BrickPi. But what if all robot kits had the same API…