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.
Features
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
Software
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!
Mobile test bed for my Control of Mobile Robots grad course
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.
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 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.
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