Atlanta next week. I plan on posting more about what I've learned from mentoring those two teams this year after their seasons are over.
the new project
Even though I've been busy, I couldn't resist taking on another project - the Make Robot Build contest. The challenge is to build a robot that can navigate through a space avoiding obstacles using 2 coaster-ized CDs as the main chassis components. You can read all about the challenge here. The small footprint is a challenge - after looking at the start of my chassis, one of the kids on the Robofest team suggested trying 2 LPs instead. I was surprised they even know what an 'LP' is!
My plan is to stick with a pretty conventional mechanical design - 2 wheel differential drive, PWM speed control, a trailing caster, contact switches for bumpers. For expandability (one of the judging criteria) I'll be using 2 Arduino Pro Minis - one dedicated to motor control, the other for sensor input and overall robot control. At this point, I could do all control using a single Arduino, but once I add sensors and more sophisticated motor control, I want to be able to split up the work. The Arduinos will communicate using I2C or serial - I2C makes it easy to add more nodes on the bus, and I want to learn how to use the Arduino 'Wires' I2C library, but I may go with serial for now if I get short on time.
To keep the cost down to zero, I'm using components already on hand:
- 2 coaster-ized CDs
- 2 Lego RCX motors
- 2 Arduino Pro Minis
- 1 L298N Dual Motor Driver and Sparkfun breakout board
- 2 breadboards
- 1 Tamiya Ball Caster
- Various Lego gears, wheels, plates, and beams
- Scavenged switches for bumpers
- XBee module for transmitting navigational info to a remote computer for analysis (one way communication only, the robot will be autonomous)
I guess it's easy to keep the cost down when you have a lot of stuff lying around already.
The bottom coaster carries the drivetrain - motor battery pack on the bottom, breadboard for the slave Arduino and motor driver, and the drive motors on top. The ball caster attaches to the back of the bottom coaster. There's room on the bottom coaster to add some kind of wheel rotation counters for PID control and
distance measurement in the future.
back view of drivetrain. cross brace between tops of motors for support until top coaster goes on.
bottom view of the drivetrain coaster. got to get some shorter bolts....
The top coaster will carry the master controller and sensors - the second breadboard on top for the master Arduino and possibly a 5V regulator for logic power; bumper switches and possibly batteries for logic power on the bottom. There's even a nice pre-drilled hole in the middle of the top coaster for passing wires through to the drivetrain controller!
The top coaster will have room for more sensors - IR and/or sonar distance, accelerometer, gyro, compass, vision (OK, I probably have too much stuff 'lying around'). My main interest is in navigation - integrating all the various sensors into a position estimate and mapping the environment around the robot. Eventually that leads to learning how to use the Kalman filter (I haven't seen notation like that since college, and I certainly don't remember it!).
The basic build is relatively straightforward. Coding is another issue....
Brian
The Black Dog
Really nice info.... Thanks for sharing....
ReplyDeleteOTDR
OTDR FIBER TESTER