Let's Make Robots!

RBS Tadpole with Encoders

Mobile test bed for my Control of Mobile Robots grad course
Tadpole_Moble_Robot_Testbed_v1.zip4.54 KB


I am using a Rocket Brand Studios Tadpole as a platform for experimentation. I'm taking the Open Robotics University Control of Mobile Robots course, and I wanted to try implementing some of what I am learning.


The Tadpole can be ordered with various options and add-ons, but this is how I outfitted mine.

  • Laser cut acrylic chassis
  • Two DC gearmotor differential drive
  • Optional wheel encoders (hall effect sensors with 8 ticks/revolution)
  • Analog IR obstacle sensor (6 IR LEDs and 3 IR sensors for left-center-right measurements)
  • Arduino compatible MicroMagician robot controller (similar to an Arduino Pro Mini, but with features noted below*)
  • Supply voltage from 4.5V to 9V with 3.3V regulator and reverse polarity protection*
  • ATmega168 or ATmega328 MCU at 8MHz*
  • Dual 1A FET “H” bridge with electronic braking, current limiting and overload detect*
  • 3 axis accelerometer with 0G detection and either 1.5G or 6G full range sensitivity*
  • 38KHz IR receiver with signal detection LED*
  • Up to 8 servos can plug directly into the controller when V+ is set to Battery*
  • 3.3V and GND outputs available for powering sensors*
  • All I/O pins (except D4) have both male and female header pins*
  • 4xAAA batteries for power


I'll post code I develop here, and anyone is free to use it. I started from the example programs provided by Chris the Carpenter.

  • Tadpole_Mobile_Robot_Testbed_v1: Includes obstacle avoidance (RBS IR sensor), drivestraight function using DAGU encoders. Next step is connecting the bumper switches.

I also just learned that there is a PID Library for Arduino. How easy is that? I have to download it and give it a try!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Any issues with the distance sensor "seeing" the bump switches?

Not a bit; they seem to be low enough to avoid interferring with the IR sensor.

The bumpers should help with low obstacles. I may add a flexible actuator to connect the two bumpers and ensure they cover the width of the robot.

I tried fastening a zip tie across the two bump switches so they would catch low objects in between and also stretch out to cover the whole width of the robot. I found that this DID interfere with the IR sensors. 

I may try mounting the switches under the mounting plate. This will give very little ground clearance, but might allow me to use my zip tie trick. I'll try and let you know.

Long term, I'm going to pull the bumper switches off and try the MicroMagician's accelerometer for detecting bumps.

Laser cutters rule, and those wheels...
You should make a competition where you can win those wheels!

And that bot: Looks so clean and well organized! 

Those wheels will be available a la carte very soon. I am going to carry the same wheel in a 40, 50 and 65mm sizes (1 1/2, 2, 2 1/2) as well as a set of wheels that fit those little $5 stepper motors.

Coming soon!

They are pretty sweet. I measured these at 53mm diameter with the o-rings on.

Do you think that 8 counts/rev would be enough for a proper PID control?

I'm trying to create a compatible robot for the course as well but i didn't score a good response with this low resolution (encoders from magician chassis)

Mine seemed to work well enough to compensate for small errors. My motors are seriously mis-matched, and I wrote some simple PID code to fix that. It works fine.

I plan to implement the Arduino PID library, which should work even better. The encoder kit is only $15 for a pair, and can be used with other hobby motors, so it is well worth trying. 

I'm trying to use now a diferent approach: I'm using optical encoders in the motors back shaft. If this won't help I'll buy the pololu geared motor with encoder (37D) just to try a cascade pid :)

Thanks for the ideas!