PDA

View Full Version : Creating a PC-based Mobile-Robot with Arm



wmccafferty
02-01-2007, 10:43 AM
I'm attempting to create an autonomous robot capable of mapping & localization, able to manipulate its environment and interact with people. When completed, the entire robotic platform should cost less than $1,500.

Major Components

The major components are (planned to be) as follows:

iRobot Create for mobile base. I was originally intending to use the iRobot Create's Command Module as a centralized middle-man between the PC and sensors/motors but am abandoning this approach due to its added complexity.
16 LV-MaxSonar-EZ1 sensor ring to give the robot mapping/localization capabilities. The 16 sensors will be mounted on separate faces of a 16-sided, 1/4" plexiglass polygon (which I've tediously cut by hand).
Logitech QuickCam Pro 4000 for face tracking, object searching and augmenting the mapping/localization capabilities. The 4000 also has a built in microphone.
CrustCrawler SG6-UT robotic arm mounted onto the back of the robot.Goals

Major goals for the robot include:

Perform autonomous (but PC-based) localization and mapping of new environments using FastSLAM 2.0 algorithms.
Augment FastSLAM algorithms with visual-SLAM (vSLAM) using Scale Invariant Feature Transformation (SIFT) algorithms.
Successfully complete scavenger hunts wherein the robot is given a list of items and searches around, picking up items as it finds them.
Play games such as connect four, tic-tac-toe, checkers, possibly chess, and, more ambitiously, hide-and-seek.
Recognize voice commands to perform tasks.
Perform all command & control via Microsoft Robotics Studio using C# and P# (Prolog for .NET).
Use only open-source, custom, free or bundled-with-hardware software to complete project.Communications

The iRobot Create recommends a 5 lb max load on its back. Surprisingly, the combination of sensors, camera, arm, supporting equipment are still less than 5 lbs, but not by much. Therefore, a mini-PC cannot be placed onto the robot itself. All communications will occur via wireless or (long) wired communications. iRobot Create is easy enough to communicate wirelessly with the BAM Bluetooth adapter (http://www.elementdirect.com/product_info.php?products_id=44&osCsid=b6a586d73b0861efe170c1250cde8a2d). The sonar sensors and robotic arm may be communicated with via the Silex SX-2000WG wireless USB server (http://www.silexamerica.com/us/products/network/usb/sx2000wg.html), or, hopefully/alternatively, the soon-to-be-released Belkin CableFree USB hub (http://www.belkin.com/pressroom/releases/uploads/01_03_06CableFreeUSB.html). The webcam may have to be hardwired to the PC if a wireless solution cannot be found.

Major Challenges/Risks

It's not known yet how accurate the iRobot Create's odometry is. Preliminary results show that it's off by about 5-10% off but may be consistent enough to be calibrated. Inaccurate odometry will greatly impead the mapping/localization efforts.
A major issue, as is always the case, is how these components will be powered. The constituent pieces may need to be wired to wall outlets if a suitable, mobile power source cannot be found...your ideas are welcome!
Implementing FastSLAM with only 16 sonar sensors will be tricky but doable. (The software itself is mind-boggling enough!) 24 sensors would be preferable but only 16 will fit on the current sonar base setup. (Fortunately, this can be easily expanded if narrower mounting brackets are located.)
Implementing vSLAM with a single camera vs. stereo vision. It's doable and has already been successfully implemented by Evolution Robotics. As for hardware, Point Grey's three-eyed Digiclops (http://www.ptgrey.com/products/digiclops/index.asp) would be ideal but a bit out of the budget.Documentation

The entire process is being documented via a Wiki which I'll expose as soon as I figure out my new, con-fangled firewall. The Wiki includes material lists, construction photos and complete step-by-step instructions.

If all of this is pulled off successfully, it'll be pretty awesome. ;)

Billy McCafferty

Alex
02-02-2007, 08:50 AM
All I can say is WOW Billy! Your Robot looks like it is going to be one hell of a piece of technology, and all for under $1000?!? I can't wait to see it!

I can't chime in much about the battery situation, but about your webcam situation. Are you bound to using the Logitech webcam? I'm asking because I ran across an excellent article on the Coding4Fun site a couple of weeks ago (blogged about it (http://blog.trossenrobotics.com/index.php/2007/01/23/coding4fun-computer-controlled-rc-car-with-camera/)) that shows how to control an R/C Car with using an Airlink101 AIC-250W Wireless Camera, Phidgets, XBox 360 controller and MSRS. I wish I knew more about MSRS, but from what I read in the article, they are using it to get feedback from the wireless camera. Anyways, here's the link:

http://blogs.msdn.com/coding4fun/archive/2007/01/22/1507304.aspx

I'm sure that you'll understand it more than myself:D

asbrandsson
02-10-2007, 10:15 PM
Hello,

Are you using ERSP 3.1 to program its visual recognition and location realization?

I just bought a Logitech quick cam 5000 pro for my ER-1, what an awesome piece of work. The build in mic makes it useful, but the light ajusting is an awesome thing for a robot.

Asbrandsson

wmccafferty
02-11-2007, 10:19 PM
No, I'm trying to minimize the amount of purchased software required and maximize the amount of DIY effort. I think the 4000 is awesome for the price and would guess the 5000 to be just as good or better. For the visualization side of localization, I've written WIA code to pull images from the webcam and then integrating with the open-sourced libsift, SIFT library (http://user.cs.tu-berlin.de/~nowozin/libsift/) for scale-invariant feature extraction which is then used with custom developed FastSLAM algorithms. (So far I've gotten the WIA completed after starting with a tutorial I found at http://msdn.microsoft.com/coding4fun/hardware/video/article.aspx?articleid=912546. I've also got partial integration with the SIFT library going. The FastSLAM programming hasn't been started since I'm still trying to interpret the math within Probabilistic Robotics (http://www.amazon.com/Probabilistic-Robotics-Intelligent-Autonomous-Agents/dp/0262201623).) What I'm working on currently (as in "right this very moment") is chaining a number of sonar sensors that will be mounted on the 16 sides. I'll use FastSLAM to perform localization with their inputs as wells. The maps created from both the visual and sonar approaches can then be combined.

Billy

Alex
02-12-2007, 10:35 AM
I didn't catch that you were using WIA. How is that working out for you? I really wish that tutorial was around back when I played around with WIA for one of the conferences we went to. It was pretty fun to use once I got the hang of it, but there wasn't a whole lot of up to date "intuitive" documentation available, let alone a tutorial as nice as what Scott (http://www.hanselman.com/blog/default.aspx)
put together:)

SIFT looks pretty cool. Care to discuss it a little? For instance, what is it used for and how does it work? From what I read on the link you provided, it compares layers of images, and searches for objects that have changed which can be used for integrated into other software for uses such as navigation, object recognition, etc. I'm sure that it does a lot more than that though.

wmccafferty
02-13-2007, 10:44 PM
I've attached slimmed down, very simple C# code for getting an image from a WIA compatible camera. Scott's tutorial was certainly a great help.

I'll write up a good overview of SIFT as soon as I'm finished wrangling these sonar sensors! ;)

Billy

asbrandsson
02-14-2007, 10:57 PM
Implementing vSLAM with a single camera vs. stereo vision. It's doable and has already been successfully implemented by Evolution Robotics.

Billy McCafferty

Hello,

I am no programmer by any stretch, but basically when you enter a pic you have to also enter the distance the object is away from the robot at the time it is taken, then the robot gauges distance with that.

Asbrandsson

wmccafferty
02-15-2007, 09:59 PM
That's the difficult part of visual SLAM. And even more so when you don't have a stereo camera. You need to infer distances by taking a picture, extract SIFT info, move forward, take another picture, extract SIFT info from the latest, compare the two, and infer distances based on how far the SIFT keypoints moved. One problem with this is that it puts a lot of trust on the odometry...but uncertainy can be built into the system as well to account for this.

Billy

Alex
02-16-2007, 08:41 AM
awesome! That txt file is a great getting started with WIA file.

Thanks Billy, can't wait to see the SIFT overview:)

I've been scratching my head for the Sonar Sensor problem for a couple of days now, but if I come up with something, I'll let everyone know. Dave's trying something an idea out too, so maybe he might find an answer but on a hardware level.

Alex
02-20-2007, 01:42 PM
Hey Billy,

I just ran across this website, and I thought of your work. I wanted to make sure you were aware of it:

http://openslam.org/

If it's old news to you, maybe someone reading this thread will find it useful.


The goal of OpenSLAM.org is to provide a platform for SLAM researchers which gives them the possibility to publish their algorithms.

wmccafferty
02-20-2007, 03:17 PM
Very cool...I wasn't aware of that. And since it looks like there haven't been any .NET contributions...it looks like I'll be "fresh on the scene"! ;)

Billy

robot maker
12-01-2007, 12:00 AM
i am woking on design using itx board ,sonar ring with the maxsonars,web cam and have it wireless for same price about maybe alot less
but on itx board i found the perfect board ,new pico-itx board by via
problems with off board solution is speed for video processing and using usb server will add more weight, current and cost,but with the pico-itx board under $230 ,you wont need all that and for normal use is only 8 watts or less,most cost will be with the maxsonars at $20 when you buy 16 of them,$320 plus $230 plus about $40 for 1 gig memory,and $30 to $40 for webcam and support chips for sonar,also wont need bluetooth bam adapter,so you are looking at $700 plus Irobot create
getting mostly done






I'm attempting to create an autonomous robot capable of mapping & localization, able to manipulate its environment and interact with people. When completed, the entire robotic platform should cost less than $1,500.

Major Components

The major components are (planned to be) as follows:

iRobot Create for mobile base. I was originally intending to use the iRobot Create's Command Module as a centralized middle-man between the PC and sensors/motors but am abandoning this approach due to its added complexity.
16 LV-MaxSonar-EZ1 sensor ring to give the robot mapping/localization capabilities. The 16 sensors will be mounted on separate faces of a 16-sided, 1/4" plexiglass polygon (which I've tediously cut by hand).
Logitech QuickCam Pro 4000 for face tracking, object searching and augmenting the mapping/localization capabilities. The 4000 also has a built in microphone.
CrustCrawler SG6-UT robotic arm mounted onto the back of the robot.Goals

Major goals for the robot include:

Perform autonomous (but PC-based) localization and mapping of new environments using FastSLAM 2.0 algorithms.
Augment FastSLAM algorithms with visual-SLAM (vSLAM) using Scale Invariant Feature Transformation (SIFT) algorithms.
Successfully complete scavenger hunts wherein the robot is given a list of items and searches around, picking up items as it finds them.
Play games such as connect four, tic-tac-toe, checkers, possibly chess, and, more ambitiously, hide-and-seek.
Recognize voice commands to perform tasks.
Perform all command & control via Microsoft Robotics Studio using C# and P# (Prolog for .NET).
Use only open-source, custom, free or bundled-with-hardware software to complete project.Communications

The iRobot Create recommends a 5 lb max load on its back. Surprisingly, the combination of sensors, camera, arm, supporting equipment are still less than 5 lbs, but not by much. Therefore, a mini-PC cannot be placed onto the robot itself. All communications will occur via wireless or (long) wired communications. iRobot Create is easy enough to communicate wirelessly with the BAM Bluetooth adapter (http://www.elementdirect.com/product_info.php?products_id=44&osCsid=b6a586d73b0861efe170c1250cde8a2d). The sonar sensors and robotic arm may be communicated with via the Silex SX-2000WG wireless USB server (http://www.silexamerica.com/us/products/network/usb/sx2000wg.html), or, hopefully/alternatively, the soon-to-be-released Belkin CableFree USB hub (http://www.belkin.com/pressroom/releases/uploads/01_03_06CableFreeUSB.html). The webcam may have to be hardwired to the PC if a wireless solution cannot be found.

Major Challenges/Risks

It's not known yet how accurate the iRobot Create's odometry is. Preliminary results show that it's off by about 5-10% off but may be consistent enough to be calibrated. Inaccurate odometry will greatly impead the mapping/localization efforts.
A major issue, as is always the case, is how these components will be powered. The constituent pieces may need to be wired to wall outlets if a suitable, mobile power source cannot be found...your ideas are welcome!
Implementing FastSLAM with only 16 sonar sensors will be tricky but doable. (The software itself is mind-boggling enough!) 24 sensors would be preferable but only 16 will fit on the current sonar base setup. (Fortunately, this can be easily expanded if narrower mounting brackets are located.)
Implementing vSLAM with a single camera vs. stereo vision. It's doable and has already been successfully implemented by Evolution Robotics. As for hardware, Point Grey's three-eyed Digiclops (http://www.ptgrey.com/products/digiclops/index.asp) would be ideal but a bit out of the budget.Documentation

The entire process is being documented via a Wiki which I'll expose as soon as I figure out my new, con-fangled firewall. The Wiki includes material lists, construction photos and complete step-by-step instructions.

If all of this is pulled off successfully, it'll be pretty awesome. ;)

Billy McCafferty

Alex
12-04-2007, 08:34 AM
awesome sounding project, robot maker! Be sure to keep us updated with it:)

If you're interested, you can start your own personal blog here in the TR Community. This is a great way to document this and any other project your working on. Plus, you can upload any pictures you want to your own customizable gallery.

Link to the blog:
http://forums.trossenrobotics.com/blog.php

Link to your own Gallery:
http://forums.trossenrobotics.com/gallery/upload.php?&c=3

Tymtravler
12-05-2007, 07:00 AM
I'll write up a good overview of SIFT as soon as I'm finished wrangling these sonar sensors! ;)

Billy


Billy
Have you reviewed the Brainstem mod, http://www.acroname.com/robotics/parts/S1-GP-BRD.html it's very small and can handle I am told from techsupport up to 120 sonars, plus it all can be run off of a Palm Pilot. They also have downloadable c# code from other robot builders you can use. The unit is pretty awsome.

Tymtravler

wmccafferty
12-14-2007, 12:50 PM
That looks very slick. I'm currently working with the Qwerk controller from CharmedLabs (http://www.charmedlabs.com/index.php?option=com_content&task=view&id=29). It's a bit more expensive, but serves as a great all-in-one controller for the iRobot Create and other such robots. Its RS-232 port serves well to handle a number of chained MaxSonar devices.

Billy McCafferty

Alex
12-14-2007, 04:04 PM
I've always been interested in the Qwerk, but never knew much about it other than what was displayed.

What's your experience like with it Billy? What language are you using for the programming?

robot maker
12-15-2007, 05:40 PM
looking at QWERK contoller looks very high price $350 with very low speed with near the same price and wattage,you can use pico-itx board and and controller board like WIRING CONTROLLER or others ,and price with be close to same but with 5 times the speed and 1 gig of memory
wiring board has 43 I/O 6 PWM,8 ANALOG'S and more and about $350 total plus MMC MEMORY CARD,but also many other controller board on market for near the same price
maximumrobotics.com





That looks very slick. I'm currently working with the Qwerk controller from CharmedLabs (http://www.charmedlabs.com/index.php?option=com_content&task=view&id=29). It's a bit more expensive, but serves as a great all-in-one controller for the iRobot Create and other such robots. Its RS-232 port serves well to handle a number of chained MaxSonar devices.

Billy McCafferty

Alex
12-17-2007, 11:49 AM
With most common robotics applications you don't need high speed controllers and IO boards.

Don't get me wrong, I think the pico-itx board is a sweet board, but it's not "specifically" designed for robotics. I'd use the pico-itx over the QWERK, just because I have much more flexibility with what robotic components I can use with it, not to mention that I can load XP on it and program in my favorite language, C#.

But, using the pico-itx means that I also have to purchase additional robot controllers and IO boards. For an all-in-one robotic controller though, the QWERK is an excellent solution:)

robot maker
12-18-2007, 01:18 AM
only problem i see with low speed boards like qwerk is video processing and sonars and all the other electronics,also with itx boards you have remotely controlled by remote deskstop and so many other reasons ,like usb inputs and sound

Alex
12-28-2007, 09:12 AM
There is a trade off for using either method.

siempre.aprendiendo
12-28-2007, 10:16 AM
With most common robotics applications you don't need high speed controllers and IO boards.

Don't get me wrong, I think the pico-itx board is a sweet board, but it's not "specifically" designed for robotics. I'd use the pico-itx over the QWERK, just because I have much more flexibility with what robotic components I can use with it, not to mention that I can load XP on it and program in my favorite language, C#.

But, using the pico-itx means that I also have to purchase additional robot controllers and IO boards. For an all-in-one robotic controller though, the QWERK is an excellent solution:)

What do you think about verdex (Gumstix)? I'm reading documentation about them, trying to decide which is better to my robotics learning :)

robot maker
12-29-2007, 10:53 AM
they are high price for memory and speed,they are ok if you dont use video,also i see only LINUX system can be installed,also hard to control them from a remote computer

Alex
01-02-2008, 10:16 AM
I think JonHylands (http://forums.trossenrobotics.com/member.php?u=1320) is using a Gumstix with his BrainBot Project (modified Bioloid). You might want to PM him to ask him about it.

siempre.aprendiendo
01-03-2008, 07:44 AM
I think JonHylands (http://forums.trossenrobotics.com/member.php?u=1320) is using a Gumstix with his BrainBot Project (modified Bioloid). You might want to PM him to ask him about it.

I'm "following" (reading and learning) the great work of Jon. I pick up the idea of using Gumstix from him :rolleyes:. But I want to know if someone has a similar project based in Qwerk.

Anyway.. thanks for you answer!

siempre.aprendiendo
01-03-2008, 07:46 AM
they are high price for memory and speed,they are ok if you dont use video,also i see only LINUX system can be installed,also hard to control them from a remote computer

Why is hard to control them from a remote computer?

Thanks!

robot maker
01-03-2008, 10:27 PM
with windows its very easy,using remote desktop,but i heard with LINUX its much harder
i also noticed with gumstick and qwerk board its hard to upgrade the memory and having more usb ports
i like the qwerk board,but with the price and the slow speed,cant add memory or a harddrive,wornt work so well with my design in making AI ROBOT design with a fast video processing and windows xp lite pro,i am using AI leaf design on mine,voice ,roborealm for some of video processing and opencv for other video processing
also on gumstick board i heard on other forums that the boards dont work so well and others having problems with them




Why is hard to control them from a remote computer?

Thanks!

motters
01-16-2008, 01:23 PM
I'm attempting to create an autonomous robot capable of mapping & localization, able to manipulate its environment and interact with people. When completed, the entire robotic platform should cost less than $1,500.

I'm also building a mobile robot which I hope will have similar capabilities, but I'll be using stereo vision as the primary sensor.

You can see a picture of the robot, which I'm provisionally calling GROK2, here:

http://farm3.static.flickr.com/2110/2169598662_0fce766497.jpg

and a closeup of the head here:

http://farm3.static.flickr.com/2396/2148566945_7182a456bf.jpg

Eventually the robot will have two stereo cameras facing in opposite directions. They're mounted on a pan/tilt mechanism which allows the robot to get a good panoramic view of its environment even when not moving. This should allow it to construct quite detailed 3D maps of its surroundings.

I'm also using some sonar sensors for basic obstacle avoidance rather than mapping. It's very easy to network a bunch of SRF08s together and link them to an I2C-USB converter.

DresnerRobotics
01-16-2008, 01:32 PM
I'm also building a mobile robot which I hope will have similar capabilities, but I'll be using stereo vision as the primary sensor.

You can see a picture of the robot, which I'm provisionally calling GROK2, here:

http://farm3.static.flickr.com/2110/2169598662_0fce766497.jpg

and a closeup of the head here:

http://farm3.static.flickr.com/2396/2148566945_7182a456bf.jpg

Eventually the robot will have two stereo cameras facing in opposite directions. They're mounted on a pan/tilt mechanism which allows the robot to get a good panoramic view of its environment even when not moving. This should allow it to construct quite detailed 3D maps of its surroundings.

I'm also using some sonar sensors for basic obstacle avoidance rather than mapping. It's very easy to network a bunch of SRF08s together and link them to an I2C-USB converter.


Excellent! Be sure to enter this in the project contest!

siempre.aprendiendo
01-17-2008, 03:00 PM
Hey Billy,

I just ran across this website, and I thought of your work. I wanted to make sure you were aware of it:

http://openslam.org/

If it's old news to you, maybe someone reading this thread will find it useful.

Very interesting!
Thanks! :)

robot maker
01-17-2008, 04:05 PM
nice work motters ,are you using linux or windows xp pro
and are you using any AI SOFTWARE or RoboRealm
found a super site for AI software (leafproject.org),it uses OPENCV,RoboRealm and LISPWORKS
lastest is robochat,where you ask a question and it will try to answer you back
lastest stuff is in the yahoo group http://tech.groups.yahoo.com/group/leaf_an_AI_robot/
someone in the group is working on a linux version
what software are you using for stereo vision,that what i have planned to add to my design,but head part will be more lifelike with emotions using leaf software and servos
right now working on SONAR/IR RING with 16 ev-maxsonars and 16 I/R, 8 short range and 8 long range ,also design will have a 5 finger hand with temp,flex, and pressure sensors on each fingers
hand should lift a total of about 20 lbs,will be using servos for hand,but servos for armpit and elbow and wrist rotate is a custom servo design






I'm also building a mobile robot which I hope will have similar capabilities, but I'll be using stereo vision as the primary sensor.

You can see a picture of the robot, which I'm provisionally calling GROK2, here:

http://farm3.static.flickr.com/2110/2169598662_0fce766497.jpg

and a closeup of the head here:

http://farm3.static.flickr.com/2396/2148566945_7182a456bf.jpg

Eventually the robot will have two stereo cameras facing in opposite directions. They're mounted on a pan/tilt mechanism which allows the robot to get a good panoramic view of its environment even when not moving. This should allow it to construct quite detailed 3D maps of its surroundings.

I'm also using some sonar sensors for basic obstacle avoidance rather than mapping. It's very easy to network a bunch of SRF08s together and link them to an I2C-USB converter.