by Tyberius » Tue Nov 27, 2007 7:04 pm
by Tyberius
Tue Nov 27, 2007 7:04 pm
I already posted this on the Lynxmotion forums... and I know you guys are all about the humanoids but I figured some of you might enjoy this nonetheless.
Johnny 5 is alive!
Project Goals:
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.
Materials/Parts List:
Parts:
Johnny 5 kit
SES Electronics mount
Pan/Tilt assembly for head
2x RC shock assemblies
Traxxis steering blocks
Various standoffs/hardware
Batteries:
7.2v NiMh 2800mAh Battery- Gearhead motors for drivetrain
6.0v NiMh 2800mAh Battery- Servos/SSC-32
9.6v NiMh 4200mAh Battery- Pico-ITX
Electronics:
SSC-32 Servo Controller
Sabertooth 2x5 Motor Controller
VIA EPIA PX1000G Pico-ITX Mainboard w/ C7 1ghz cpu
1gb DDR2-667
60w Pico-PSU
120gb sata 2.5" laptop hard drive
2x 640x480 VGA webcams
USB 802.11g wifi adapter
Software:
Windows XP Pro- Stipped down using nLite
SEQ SSC-32 Sequencer
Roborealm
Construction:
I wasn't satisfied running a stock Johnny 5, nor did it 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 of course credited to our very own Robot Dude, Jim:
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. 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
Videos:
Here are two quick videos I threw together, still haven't had much time lately.
Demo showing off a few moves and my control console:
http://www.youtube.com/watch?v=SQpEbgvxre8
And here's the progress so far on my object tracking, it's still very slow, unfortunately I'm still working with Roborealm to figure out a few quirks in the SSC-32 pipeline that are causing it to dip to 1 fps for tracking...
http://www.youtube.com/watch?v=vtD83K9J26c
Anyway, let me know what you think!
I already posted this on the Lynxmotion forums... and I know you guys are all about the humanoids but I figured some of you might enjoy this nonetheless.
Johnny 5 is alive!
Project Goals:
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.
Materials/Parts List:
Parts:
Johnny 5 kit
SES Electronics mount
Pan/Tilt assembly for head
2x RC shock assemblies
Traxxis steering blocks
Various standoffs/hardware
Batteries:
7.2v NiMh 2800mAh Battery- Gearhead motors for drivetrain
6.0v NiMh 2800mAh Battery- Servos/SSC-32
9.6v NiMh 4200mAh Battery- Pico-ITX
Electronics:
SSC-32 Servo Controller
Sabertooth 2x5 Motor Controller
VIA EPIA PX1000G Pico-ITX Mainboard w/ C7 1ghz cpu
1gb DDR2-667
60w Pico-PSU
120gb sata 2.5" laptop hard drive
2x 640x480 VGA webcams
USB 802.11g wifi adapter
Software:
Windows XP Pro- Stipped down using nLite
SEQ SSC-32 Sequencer
Roborealm
Construction:
I wasn't satisfied running a stock Johnny 5, nor did it 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 of course credited to our very own Robot Dude, Jim:
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. 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
Videos:
Here are two quick videos I threw together, still haven't had much time lately.
Demo showing off a few moves and my control console:
http://www.youtube.com/watch?v=SQpEbgvxre8
And here's the progress so far on my object tracking, it's still very slow, unfortunately I'm still working with Roborealm to figure out a few quirks in the SSC-32 pipeline that are causing it to dip to 1 fps for tracking...
http://www.youtube.com/watch?v=vtD83K9J26c
Anyway, let me know what you think!
Last edited by Tyberius on Thu Jan 03, 2008 7:57 pm, edited 1 time in total.