Let's Make Robots!

RBS Tadpole with Encoders

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

Introduction

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!

Comment viewing options

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

like how you used robotc program. or atleast that looks like the code style

It's not Robot C. Just plain old Arduino.

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!

Thanks for sharing your code. Good to see how you implemented the interrupts - I'm still cloudy on the Arduino method of it.

Doing similar here - want to convert my old BX24 odometry code over to Arduino and use PID and X/Y/Theta position tracking to play with.

When you get the X/Y angle code working be sure to post it - :-)  - If you use a directional varable for each wheel you have an SOME idea of which direction the wheels are supposed to be traveling you can start getting some odometry working without quad encoders. I know it's not perfect and you have to be careful with roll out from when you tell it to stop but it doesn't stop but it is better than nothing IMHO.

I actually have roughed out the translation but don't have a platform setup to run it on yet - need to pull my old ProtoBox back out and convert it I guess.

Again - thanks for sharing!

 

-Stephen

 

With the Tadpole being so small and lightweight, I think roll out won't be a problem. Plus the MicroMagician's onboard h-bridge includes the ability to use breaking, rather than just coasting to a stop.

As I posted above, I just discovered the Arduino PID library, which may take me in a new direction for the code. Although it was educational for me to figure out my own algorythm.

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! 

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