This is a project that I've been working on for a couple of months, but have wanted to do since I was 5 years old (when I saw the first Short Circuit movie, I fell in love). The ongoing project is being documented on My Blog here at Trossen Robotics.
Johnny 5 is alive!
I wanted to create a remotely controlled robot modeled after the infamous Johnny 5. I saw the base kit that Lynxmotion offered and knew it would provide the best platform. Originally I was just going to have a Bluetooth wireless link and have a wireless video camera sending back to a small hand held TV, however after seeing the pico-itx formfactor cpu/motherboards, I wanted to take it further.
So, I set out to build a Johnny 5 type robot controlled via RDP (Remote Desktop Protocol) session over my wifi network, complete with onboard PC running a Windows OS and vision processing.
Lynxmotion Servo Erector Set (Johnny 5 kit)
SES Electronics mount
Pan/Tilt assembly for head
2x RC shock assemblies
Traxxis steering blocks
7.2v NiMh 2800mAh Battery- Gearhead motors for drivetrain
6.0v NiMh 2800mAh Battery- Servos/SSC-32
9.6v NiMh 4200mAh Battery- Pico-ITX
SSC-32 Servo Controller
Sabertooth 2x5 Motor Controller
VIA EPIA PX1000G Pico-ITX Mainboard w/ C7 1ghz cpu
120gb sata 2.5" laptop hard drive
2x 640x480 VGA webcams
USB 802.11g wifi adapter
Windows XP Pro- Stipped down using nLite
SEQ SSC-32 Sequencer
I'm never satisfied running stock equipment, and the J5 did not provide enough space for me to add everything I wanted to. So, I set out to make some changes. For reference, heres the stock Johnny 5 kit, picture credited to Jim @ Lynxmotion:
First of all, I replaced the standard panning sensor housing with a pan/tilt assembly, and added two stripped down webcams, shown here:
My next change was moving the SSC-32 from the rear base up to J5's back. I mounted it using the SES Electronics carrier, shown here:
Also, excuse the blurriness as I was having issues with the camera focusing correctly this day... but here is an aesthetic mod I made to the hands, to make them more "5ish"
Now one might have noticed the lower torso having some purple components, those would be the two RC shocks I used as a replacement for the tension springs used in the stock model. This provided the upper torso with significantly more stability and balance, to compensate for the extra weight of the pan/tilt head, cameras and SSC-32.
The actual mod itself is pretty simple. In order to accommodate the shocks, the two ASB-03 C-Brackets that make up the lower torso had to be extended, instead of attached back to back. I had to bore out the mounting holes so that 3/8" 4-40 screws would fit, then I used 4 combined Hex standoffs (for 1-1/8" total length) in to act as an extender.
The front R/C shock can be mounted directly to the servos, on the two inner mounting screws. The rear shock does not have clearance to do this, so this is where the Traxxas steering blocks come into play. I mounted each one facing "inward" (this can be seen in the pictures below) on the two outer mounting screws of the servos. This provided enough clearance for me to mount the rear shock on the end of these steering blocks. Pics shown here:
At this point I was controlling J5 via a bluesmirf wireless link to my laptop, waiting for the wife to approve further robot budgeting. As an early X-mas present, I picked up the rest of the pico-itx components to finish off the robot.
I mounted the Pico-ITX mainboard where the SSC-32 originally was on the rear of the base, with the pico-PSU mounted below that. USB ports were mounted towards the front of the base, and the 9.6v battery used to power the computer electronics went down the center of the base. I used a sata 120gb HDD mounted on top of the battery, and a USB CD-rom to load the OS/software onto it. The Pico-ITX mainboard interfaces with the webcams via USB, and the SSC-32 via serial port. The Wifi connection is also USB.
I then installed windows XP, used nLite to strip off unnecessary services and programs, and loaded SEQ, Roborealm and the appropriate drivers. SEQ is lynxmotion software used to create servo sequences and movements with a windows UI, controlling the 2 drive motors for the treads, and the 15 servos in the torso. I'm still currently playing with Roborealm, but I'm working on creating a pan/tilt colored object tracking program using the two head servos and one of my webcams.
Here are two pictures of Johnny up on the blocks during the OS install (was using a spare IDE drive to create the image while my SATA drive was being shipped):
Close up of the pico-ITX board, quite small!
Pics of my current progress found here:
Functionality and Future Plans:
Currently, I can control my Johnny 5 over my home wifi network using a Remote Desktop session, so I basically view the desktop of the robot. My control console looks like this:
I can sit back on my laptop or desktop computers, and remote into his desktop to roam around my home or office and have full remote control/video feed. I get about an hour of run time on him before he needs to recharge.
In the future, I want to look at adding voice recognition/speech output. Speech output is actually the easy part, I can accomplish that with Microsoft Sam, but I havent found a decent small powered speaker to mount on him permanently. I would like to eventually tie voice to text recognition similar to that of Dragon Natural Speaking into something like ALICE, and have the output of ALICE go from text to voice- essentially I could ask it a question, and receive an answer in english. Easy in concept, but I'm not sure how easy it would be to actually implement that. Aside from that, I'm going to work more with Roborealm and develop simple object tracking modules, using the pan/tilt assembly and one of his cameras, leaving the other camera for straight video feed. Would be very cool to eventually create a "Beer fetching" sequence using object recognition
Demo showing off a few moves and my control console:
Here is some progress on my object tracking, it's not 100% perfect, but it's definitely improving:
And this is what happens when your wife and daughter go to sleep early, and you get very bored at night...DISCO!
Let me know what you think!