LTBot2 - Netbook Powered Remote Controlled Mobile Platform (RIP - Rest in Pieces)
Update: 9/3/2013 Rest In Pieces LTBot
Just wanted to "complete" this one and move him on to the next reincarnation. For LTBot2 that is likely a semi-autonomous weed eater / trimmer project. I really thought I'd love the remote access, drive around the house when I'm gone, and roll back on the charger option but after the new wore off he sat on the charger all the time. On to more useful solutions.
September 22, 2012 Update - Bumpers / Drive Up Charger / Motor Relay Power
Spent a little time this weekend finalizing a few needed items to make LTBot2 useable at anytime from anyplace. At this point I am now able to undock the robot, drive it around as desired, and then re-dock it when the laptop gets low on battery pretty easily from the office or on the road via an iPad.
Bumpers / Charging Plates: I’m not a big fan of bumpers but realize the necessity of them at least for my projects. However, these bumpers provide a triple service: 1) they are normal bumpers during driving that stop and auto-correct the bot if I run into something I can’t see (or during future autonomous mode operation), 2) they are “charging plates” connecting the robot to the charging base when driven into it, and 3) provide feedback during “docking mode” to insure the charging plates are connected to the base. I have to have two separate sets of contacts to charge both the laptop and the motor battery thus the inner and out bumpers. This could come in handy, however, during autonomous mode to determine how bad the bump is (inner or outer) and take appropriate actions, i.e. big backup and turn if inner bump.
Docking / Charging Bay: The dock is quite simple; a piece of wood with aluminum vertical plates connected to the chargers that intersect with the horizontal bumpers to make connections. I’ve spaced the plates to try to keep any cross connections from occurring although that still could happen due to the width of the inner bumpers. I put a center strip on the board to allow my camera to see the center line during approach (and possibly a line follower sensor if I try to make any autonomous docks). I had an old retro DC volt meter I mounted at the back so I can see the motor charger voltage on the camera so I know once I power the motors down the connection is really, really there as the charger loads down.
Motor Relay Power Board: I used a Sain two relay board instead of building my own as it was under $13 on eBay and provided double throw, double pole relays at a higher amperage than I had on hand. I power the relay board off the regulated output of the Maestro controller so I can turn them on/off even if the motor/servo power is not there – which is isn’t when I power them down.
Docking Process: the process is pretty simple; Put the robot in “docking mode” that turns off driving assistance and makes the bumpers normal contact sensors. This also faces the IR sensors directly forward to read the distance to the center charging plate lips for help knowing where I’m at. Then it’s just line up with the dock from a few feet back, go forward with minor corrections keeping the center guidance line in the middle. Once I’m close enough I use the “Fine Forward” command that creeps the robot a few inches at time until I see the bumpers have switched on and the laptop battery icon changes from batter to AC charging. Then I power down the motor relay and check the voltage meter to see if it loads down charging.
Next Up - Front light power, text to speech option using my old SayIt program, more I/O as I'm full up and still have two bumpers to connect.
A Little History
After a 10 year lapse of really not doing anything robotics related, I got the bug again recently and decided to pull out my old parts, platforms, and junk. After trying various microcontroller based bots in the past and consistently running out of resources (due to my poor coding skills I am sure) I always wanted a laptop controlled platform. The original LTBot was supposed to be just that platform but various problems finally killed my interest and other time consuming hobbies took over (69 Mustang, 85 SVO, Home Automation, life, etc).
Having a left over netbook laying around at work rekindled the thought of a LapTop Bot. First I tried a little GearBox (GB) platform I had but ran up against size and motor issues so I moved the servo controller and ESC's over to this old platform and it worked quite well.
Thus LTBot2 was born…
The raw platform is a sheet of 1/8 aluminum (ok, it's from an old street sign) that I cut up to match the garden store mower wheels I purchased and mounted (I mean forced onto) the motor output gears. The gear motors are some model of Global from a decade ago that use a planetary head and run quite smoothly. They DO have encoder outputs but I do not have anything to read the outputs at this time.
Personally I like the larger wheels and nice ground clearance as the bot can handle driving across grass, sidewalks, etc (on purpose or not as I found during initial testing). It’s not the fastest thing around as the motors are 12/24v and I’m running them at 7.2 but the gearheads provide all kinds of torque moving through terrain.
The platform is currently coded in a simple JustBasic program that reads key/click inputs and drives the servos / ESCs for movement. For remote access I use LogMeIn which allows access to the bot from nearly any location or solution including desktop or ipads. Key layout is the old standard “ijkl,” forming a triangle control on the keyboard (not so much on the iPad but that figures). I may port everything over to VB.Net Express at some point but this is working for now.
I am using a Pololu Maestro 12 to do the input / output needs controlling six (6) servos and using the A/D input options to read the IR sensors. Sonar is now mounted on the camera but not feeding data yet. LTBot2 also has a working Pharos 360 GPS unit mounted on its tail but no coding is taking advantage of the data, simply reading it for now. GPS accuracy may be useable for outside functions but inside it's around 10-15' which doesn't help much.
The program also reads the GPS and Analog Input data and does have some “Assisted Driving” features that fine turn the bot away from obstacles that the IR sees that I may not see in the narrow vision front mounted webcam.
I have a relay board that will allow turning on/off the ESC units to allow for battery saving and charging needs. The same relay board will allow turning on/off the LED headlight attached to the webcam. I am waiting for the board to come in at this time. A backup battery will power this board as the ESCs provide power for the servos and other inputs.
Drive Up Charging – the Next Project
In order to be anywhere near self-sufficient as a remote tele-presence platform, self charging is must so a drive up charger is the main next step. I will have to charge both the laptop and the 7.2v motor/servo battery so a dual connection setup will likely be used. My thoughts are simply brass strips on the platform with spring loaded (small bolts with springs) charging ports that I can drive the platform up into/on/etc.
Once the charging base is working, I hope to be able to remote in, turn on the motors and sensors via software, undock, cruise around as desired and then re-dock the robot for charging.
Once the platform has proven stable I can take a stab at some autonomous coding to see how well I can use the existing IR and GPS sensors to avoid obstacles or look at some image processing options. Long term stuff at this point.