PDA

View Full Version : [Contest Entry] RC truck robot conversion



Orac
07-05-2008, 10:13 AM
RC truck robot conversion


http://i88.photobucket.com/albums/k199/OracsRevenge/DSCN1143s.jpg

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)

Anyway.




Parts required

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
USB hub
12V fan
Old satellite set-top box - emptied this and used it as a box to house it all in.


Software

Windows Xp
Roborealm
UltraVNC





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.

Amazon.com: Remote Control 1:6 Scale Monster Truck 27 MHz - Yellow/Black: Toys & Games

Here are some videos of the trucks in action

http://www.wilhelmy-it.de/seben/pictures/racing_king/king.html
http://www.youtube.com/v/GFLU0xfkD3s&hl=en

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.

http://i88.photobucket.com/albums/k199/OracsRevenge/DSCN1095-1.jpg




Stripping down

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
http://www.youtube.com/v/Qdr3425YmsA

And with the new speed controller, very slowly too !!
http://www.youtube.com/v/U5EEBoXVQ-Y

http://i88.photobucket.com/albums/k199/OracsRevenge/DSCN1100.jpg
http://i88.photobucket.com/albums/k199/OracsRevenge/DSCN1102.jpg
http://i88.photobucket.com/albums/k199/OracsRevenge/DSCN1108.jpg
http://i88.photobucket.com/albums/k199/OracsRevenge/DSCN1113.jpg
http://i88.photobucket.com/albums/k199/OracsRevenge/DSCN1115.jpg




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.

http://i88.photobucket.com/albums/k199/OracsRevenge/DSCN1140.jpg
http://i88.photobucket.com/albums/k199/OracsRevenge/DSCN1141.jpg
http://i88.photobucket.com/albums/k199/OracsRevenge/image001.jpg





Software install

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 !!

http://www.roborealm.com

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.

http://www.uvnc.com/

http://www.roborealm.com/help/Getting_Started_2.jpg





Testing

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.

Have fun.

(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 !!)

YouTube - Robot Roborealm test

http://i88.photobucket.com/albums/k199/OracsRevenge/DSCN1143s.jpg

DresnerRobotics
07-05-2008, 10:33 AM
Awesome project! I have something similar written in Roborealm for my J5 but I've grounded him until I get a solid state drive (he hits a slight bump, HDD skips and he takes off at full speed while I lose connection to his PC)

I saw the same green ball following demo on Roborealm you used as a basis, but found the code to be a bit sluggish so I wrote my own tracking code that I used instead. If you're interested I don't mind sharing =)

How is the video streaming capability of UVNC compared to the newest version of RDP? I played around with a few versions of VNC myself but found RDP to have better overall performance.

Orac
07-05-2008, 10:36 AM
Yes please, I am getting about 11 FPS, anything to speed it up would be good.

I dived into UVNC to see what it was like. i am very happy with the performance but might give RDP a go to see how it fairs.

Thanks

DresnerRobotics
07-05-2008, 10:38 AM
One quick tip- turn off auto exposure and manually set your lighting settings. Its a bit of a PITA because you have to adjust for indoors vs outdoors, but I found it improved framerate in roborealm quite a bit.

I'll be putting my J5 back together this weekend (he's in pieces for a photoshoot) and get that code hosted up here in the uploads section.

Adrenalynn
07-05-2008, 10:58 AM
UVNC (specifically UltraVNC, not the other flavors) is tremendously lighter and sprightlier than RDP. I won't let RDP near any of our streaming servers. First thing that gets disabled. All of our remote management is over UVNC...

It's coming along nicely, Orac! I like the laptop repurpose. I'm working on a monster scale RC truck conversion now at the same time CSDude is. We went with the newbright trucks, and because they're not slipskid like yours, I'm fighting with fabricating a mount for a standard steering servo...

DresnerRobotics
07-05-2008, 11:40 AM
My experience was that while VNC was lighter (though I didnt try UVNC) it did not have as solid of video streaming capability as RDP did. I'll have to try out UVNC.

Adrenalynn
07-05-2008, 11:53 AM
UltraVNC is a very different animal (ultravnc.sourceforge.net) - worth checking out, especially the file transfer ability and encrypted secure connection...

Orac
07-06-2008, 05:55 PM
The file transfer is very useful as it saved me having to open up the robot and stick in a USB pen every time I wanted to move some Robo files or drivers about.

Alex
07-10-2008, 09:09 AM
Great entry Orac, and welcome to the community! I just entered you in the contest.

You're a great addition to our little community and I hope to hear a lot more from you in other threads:D

Orac
07-10-2008, 09:27 AM
Thanks, been stalking quietly around the forums for a while now, thought it was about time I contributed something :veryhappy:

Electricity
07-10-2008, 12:05 PM
Oh wow! very very cool, I don't know how I missed this thread when you first posted it. Very in depth and easy to understand (coming from someone who knows nothing.. :P). I think I'd like to try and build this, do you have an approximate overall cost for materials?

Zenta
07-10-2008, 02:23 PM
Hi,

Great project!
I like this kind of 4WD monster truck (without any steering servo) as a robot plattform. Making 360 deg rotation pretty easy.

-Zenta

ScuD
07-10-2008, 03:35 PM
Amazingly well documented, kudos!

This roborealm thing seems interesting, i've heard a lot about it but never tried it actually.

Is it worth exploring? not too hard for a novice?

Oh, and welcome to the community!

DresnerRobotics
07-10-2008, 03:42 PM
Amazingly well documented, kudos!

This roborealm thing seems interesting, i've heard a lot about it but never tried it actually.

Is it worth exploring? not too hard for a novice?

Oh, and welcome to the community!


You'll need to know a bit of VBscript at minimum to really do anything with it, but it's pretty accommodating all around. I would recommend playing around with it for sure.

Easiest way to start experimenting- get a servo controller (phidgets or SSC-32), 2 servos to make a pan/tilt setup, and a cheap webcam. You can do a lot with that setup.

Adrenalynn
07-10-2008, 03:44 PM
roborealm (http://roborealm.com) is awesome. It's as easy or as difficult as you want it to be. (ie. It's a great system for prototyping imagine processing/machine vision/control, but it has a very complete DLL plugin interface and a pipes-and-socket system)

And it's free! Go! Run! Download it now!

ScuD
07-10-2008, 03:55 PM
Actually i still have an 8 channel serial servo controller laying around i built a while ago to rebuild a furby... hmm..

Downloading as we speak..

DresnerRobotics
07-10-2008, 03:59 PM
Actually i still have an 8 channel serial servo controller laying around i built a while ago to rebuild a furby... hmm..

Downloading as we speak..

Problem is you have to have a module to interface to Roborealm, and those are made by the software devs for it. Maybe you could write the interface into the VB module?

Orac
07-10-2008, 04:14 PM
Hi, there are more general ,modules in RR which you can customise depending on the controller, i.e. the serial interface module and the USB HID module.

Also, there is a new module which simulates key-presses. If your servo controller has a PC control program with a GUI, then you may be able to use it as below.

"The Keyboard Send module creates a way to simulate key-presses as if you were typing into a different application other than RoboRealm. This method provides a way to integrate the results processed by RoboRealm into other applications without requiring any custom integration between the two applications. "


Really, as mentioned above, you just need the software and a webcam to start experimenting with it and follow a few of the tutorials.

I probably spent around $250 on the robot as I needed to buy a webcam, speed controller and servo controller, but I could have just used some of the homebrew controllers I have already made from my RobotWars days just as easily.

The good thing is you don't need to spend a lot as you can just adapt whatever it is you already have lying about. Or you can max up the credit card and produce something truly awesome.

Pete

Adrenalynn
07-10-2008, 04:31 PM
You can write your own controller drivers for RoboRealm. That's the largest advantage of the DLL interface in my opinion.

ScuD
07-10-2008, 04:43 PM
what's that VBscript though? Is it somewhat related to VB? (i suppose)
I'll look into it, just been playing with some of the settings, cool stuff!

ScuD
07-10-2008, 04:44 PM
insert Cam into furby... Make furby move..make furby talk...
Dammit...

another project :(

JonHylands
07-11-2008, 02:21 AM
Note that you don't need to mess with DLLs or VScript or anything like that to make use of RoboRealm, assuming you have your own favourite programming environment that has socket access. You can connect to a running RoboRealm application using a socket, and with some very simple XML commands do what you need. I don't know if you can access all the fancy external control stuff from RoboRealm this way, but you can get access to the main image processing pipeline and access variables set up.

This is how we did the head tracking demo - my code is running in Smalltalk, talking to RoboRealm over the socket, and controlling the Bioloid servos directly over the Bioloid bus.


http://www.youtube.com/watch?v=tkFTYqprdBU.

Adrenalynn
07-11-2008, 02:34 AM
Agreed. There are times though when the latency and weight of a pipe solution isn't all that and a bag of peanuts. Especially if you want a reusable module for a standard piece of hardware you plan on interfacing to all the time.

Just my opinion anyway.

But I agree - you don't have to touch the DLL interface if you don't want to. And the sockets-and-pipes interfaces are a screamin' fast way to prototype and transfer to a plugin later if the need/desire moves you...

ScuD
07-11-2008, 05:08 AM
Sockets and pipes?
When did we start plumbing?

Seriously though, concerning high-level programming I only know a little VB, and a teeny weeny bit of C.

Sooo don't expect anything too soon :veryhappy:

Played around with it last night though, insanely cool piece of sw. Makes me want to investimagate some more high level programming, would be usefull for GUI's as well anyways..

sid8
11-13-2012, 11:50 PM
There are more general ,modules in RR which you can customise depending on the controller, i.e. the serial interface module and the USB HID module.

Also, there is a new module which simulates key-presses. If your servo controller has a PC control program with a GUI, then you may be able to use it as below.