RC truck robot conversion
This project covers the conversion of a cheap off-the-shelf RC truck into a powerful robot vision platform capable of ball following, etc.
I always like seeing the projects around the world using expensive robots, running complex vision processing software and dreamt of the day I would have my own to play with.
Win the lottery or build one on the cheap?
Cheap wins every time.
I say cheap, but what I mean is cheap-ish. It depends on how complicated you want it to be and how much you have lying around. Maybe it should be "cheap compared to a Corrobot or Whitebox robot" (although they have much more functionality)
Toyabi Skullcrusher RC monster truck
SSC-32 for webcam tilt
Logitech Pro 9000 webcam
Sabertooth 2x10a speed controller
Dell C610 laptop system board + proc + memory + wireless
12v - 19v converter to run laptop from 12v SLA battery
12v battery (I used a 12v SLA 7ah but its a bit too heavy, maybe a LIPO?)
RS232 - TTL converter (homemade or Ebay) for Sabertooth
USB - RS232 converter for SSC-32
Remote control unit and keyfob (homemade or Ebay) - this is a failsafe so I can cut power to the Sabertooth
Old satellite set-top box - emptied this and used it as a box to house it all in.
Sourcing the RC truck
Whilst surfing Ebay one day I came across new RC monster trucks selling very cheaply. The interesting thing about them was that they had tank-style steering instead of the normal Ackerman steering like most RC trucks.
They can be bought in Europe from Seben racing and in the USA from Amazon and are called "Skull Crusher" from Toyabi.
[ame="http://www.amazon.com/Remote-Control-Scale-Monster-Yellow/dp/B000ODT7RK"]Amazon.com: Remote Control 1:6 Scale Monster Truck 27 MHz - Yellow/Black: Toys & Games[/ame]
Here are some videos of the trucks in action
I had a good robotty feeling about these asked my better half to get me one for my birthday.
The truck is HUGE and comes with a simple speed controller which is on/off rather than proportional, still, it was amazing what could be achieved with such a cheap model.
Stock, it will spin on the spot, climb all sorts of objects and gradients.
It has independent suspension and gearing to each wheel and runs from two small-ish motors. It is VERY big and came in an enormous box.
Construction is better than expected for such a cheap model, but the tyres are some kind of foammy PVC moulding. Apart from that, lots of space on board and has springs at each corner. The transmission is by gears down 4 articulated arms to the wheels.
1st job was to strip it apart and remove the old speed controller and replace it with a Sabertooth from Dimension Engineering. You need to cut off the Electrolytic filter capacitors from the motors as they will blow under PWM motor control. Leave the ceramic capacitors in place to filter out some noise.
The body shell comes off easily and the lights disconnect via a small connector. I cut out the rest of the controller and receiver circuitry.
I added the Sabertooth temporarily and set it up for RC mode and an old 27Mhz proportional set I had lying around to test with. All ok, had even more fun driving it around under proper proportional control
It can move very quickly
And with the new speed controller, very slowly too !!
Adding the brains
Next step was to add a brain to the system.
An old Dell C610 laptop I had lying around was dis-membered and the system board, memory and processor saved for the robot.
An old satellite set-top box served as the case for the project and mounted pretty easily to the top of the truck. I then mounted the system board and Sabertooth controller inside, along with a 12V 7AH SLA battery (slung under the casing), DC-DC converter to power the laptop from 12V and a failsafe.
The failsafe is a small 433Mhz key fob transmitter to cut the power to the motors if the robot should decide to make a break for freedom. It's a simple RC switch bought from Ebay very cheaply and used to toggle power to the Sabertooth.
I also added a small 12v fusebox and wired it all up with some cable from an old PC PSU.
My 8 year old webcam was rubbish so I went out and bought a Logitech 9000 PRO, which is very good and came on a tilting base which started me thinking that I could control it from the laptop via a servo to tilt the camera as the robot adjusted its distance from an object.
I used an SSC-32 servo controller from Lynxmotion to drive the servo and connected the controller to the PC via a USB to serial converter (I had already used up the laptops COM1 serial port for the motor controller)
The Dell laptop only has one USB port so I added a small hub to allow the USB to Serial module and the USB webcam to connect at the same time. With hindsight, I would have surfed Ebay for a Laptop system board that had USB 2 instead of 1.1, but it was all I had and works well for now.
The COM1 to Sabertooth cable needs to have a Serial to TTL converter fitted, you can find these on Ebay for under $10 or make your own as I did. This converts the RS232 levels to a lower 5v level suitable for the speed controller inputs.
I also added a chunky power on/off switch and soldered a remote pushbutton switch to the power button of the laptop. (Could have just drilled a hole in the case and used a prodder). A small 12V fan was added to the case to help cool down the laptop system board which isn't used to running without a case to direct the airflow.
The laptop had a Wifi card to enable me to remote control the robot from another laptop for making adjustments, etc without having to hook up a keyboard/mouse/monitor to the robot.
I installed the XP and the Dell drivers on the laptop and installed a free bit of software called Roborealm which is a great visual processing program intended for robotic applications which just so happens to have an SCC-32 and a Sabertooth module in-built. Joy !!
There is an example green ball follower script that you can download from the Roborealm website that I modified slightly to work with my hardware and I spent a few hours tinkering with the settings in the filters until I had it as good as i could get it.
I also downloaded the free software, UltraVNC, on the two laptops which allows me to remote into the robot and make adjustments or just watch what is going on on the screen and webcam.
The next day after finishing it, I took the robot along to a robot event and tested it out by gently kicking a green ball along the floor and watching the robot following it where ever it went. It can go forward, left, right and it backs away if the ball comes towards it. I had one finger on the failsafe remote at all times.
It only shot off once when it liked the look of the green trees through the window. A quick tweak of the color filter's Hue setting fixed that.
Not a finished project by any means, but a great platform to have a bit of fun and test out all my odd ideas for sensors, etc.
If you have an older laptop lying around (about PIII 1Ghz) and any kind of PC driven speed controller then you can set this up fairly quickly. Make it as simple or as complicated as you wish. No real programming required, just tweaking of scripts, etc
My next steps are to add some sensors (ultrasonic and IR) to the robot and swap the heavy Lead-acid battery for a LIPO to ease some of the weight from the suspension.
I may have a stab and reverse Engineering the ball follow script and add the sensor inputs from the SCS-32 into the Roborealm program loop.
Remember the failsafe. This robot can move fast and is quite heavy. Could easily cause injury if it escapes and runs amok.
If you need any more detail, just ask. I will try to help in any way I can.
(For the video below, I modified the script to follow an orange ball as green balls don't work to well on grass. I wish I had taken a video from the robot event as they had large open floors where I kicked the ball off slowly and watched it roll a long way with the robot in hot pursuit !!)
[ame="http://www.youtube.com/watch?v=oLbW9OgLJw4"]YouTube - Robot Roborealm test[/ame]