Thank You Dexter Industries for Open Sourcing GoPiGo software


#1

Thank you Dexter Industries for open sourcing the GoPiGo software. I am so happy to have found a common platform to build robots upon, and to be able to leverage your community to learn.

My bot is 17 years old, but is moving and thinking like a youngster GoPiGo. A robot lifetime ago (20 years) the smart folks at MIT needed a common robot to teach robotics to their students. Joe Jones, Anita Flynn, and Bruce Seigler created the Rug Warrior and then Rug Warrior Pro robot based on a 68HC11 processor. The kit ($600) was offered outside of the university by Klaus Peters, and many people enjoyed building, programming and competing with these bots. Eventually, 32K bytes and 2MHz proved too limiting and the community fled the scene.

Two years ago, hearing about the Raspberry Pi, I decided to give my Rug Warrior Pro robot a brain transplant. Unfortunately, that meant starting from scratch and doing nearly everything myself.

Last week, I decided to create a Rug Warrior (w/ William Hennings’ Pi Droid Alpha) version of the gopigo.py interface layer named goRWpigo.py. I created a rudimentary spidev.py simulation and pigpio.py simulation so that I could exercise my layer easily. I just finished testing my layer with the GoPiGo sample program us_servo_scan.py with only one change (from goRWpigo import *) , and my heart is so happy I am going to explode. (Don’t tell my wife - I’m 64 and she worries about such things!)

I have lots of ideas for projects after I finish my interface layer fully, so I will be able to give back eventually. For the time being - I can only offer a thank you.

A big THANK YOU to you all,

Alan


#2

So your modifying the GoPiGo module to work with your robot?


#3

Not exactly.

From what I have seen so far of the examples, and “test your bot” samples, they all sit above (import) only gopigo (gopigo.py) and use the gopigo “API”. My goRWpigo offers the same API, without touching the official gopigo.py code.

So “modifying gopigo” -no, “implementing the same top level functions, with the same parameters, defaults, and units” is the exact description.

I could probably have kept the name gopigo.py since my version is always in the same directory as where I execute the samples, but I didn’t want to risk getting confused by the name.

I have not attempted to simulate or use the Raspian for Robots environment, only the GoPiGo Hardware interface layer, at this point, which allows me to run the (basic) examples. (I am running over Jessie-lite on a RPi3.)


#4

So you basically made a module that works like the gopigo module but runs your robot.


#5

“made”

In progress - testing motor funcs, us_dist(), pan servo funcs at the moment.

(Also testing a “gopigo like” tilt servo interface at the same time. -45 deg to +90 deg instead of the all positive gopigo pan angle interface. I had not decided prior what API to put on the tilt/pan sensor platform of my bot, so choosing the GoPiGo API got me thinking about it.)

I don’t have the encoders and timeout funcs integrated yet - those need thread management so left them for last.

Alan


#6

Very cool to see, do you have any pictures of your robot?


#7

Awesomeness! :slight_smile: Looks like a cool project!