Welcome! Log In Create A New Profile

Advanced

3D printed vacuum robot

Posted by ketil 
3D printed vacuum robot
April 12, 2013 05:36PM
Has any work been done on an open source DIY 3D-printed vacuum cleaner robot? Ideally, as many parts as possible should be printed parts, and then electronics (arduino?), motors and any other "vitamins" necessary. And firmware, of course.

I came across this thread, but that appears to be vaporware:

[www.robotreviews.com]
Re: 3D printed vacuum robot
May 15, 2013 07:53PM
Sounds like a good project. Didnt find much about it, just this.

Must...hold...back...speculation. (failed..) The idea is getting the robot to get everywhere at some point, preferably not redoing too much. So i think mapping and knowing the current location is the most important thing. I think it can be done with ultrasonic and distance tracking on the wheels, but the software for mapping and ID-ing the current location is probably difficult.. (LEDs and light sensors on the bottom is a cheap way to get some extra hint from the color of the ground, and have a 'line following' mode for fun)

Edit: speculation failed at me not even considering what electric motors to choose smiling smiley ... or how to vacuum clean, hey maybe vacuum cleaning itself is the thing to solve first smiling smiley

Edited 1 time(s). Last edit at 05/17/2013 03:28PM by Jasper1984.
Re: 3D printed vacuum robot
May 22, 2013 06:09PM
Yeah, just vacuuming and collecting (and dumping?) the dust is a problem in itself. smiling smiley

To navigate, perhaps a Raspberry Pi with one or two cameras and the OpenCV library could work well? But I guess this is getting a bit too far into future details already!
Re: 3D printed vacuum robot
May 23, 2013 07:15AM
If you're going for a vacuuming bot, I think the first goal should probably be the vacuum itself. But you could go for a bot as a platform or as proof of concept about the navigation and then make the vacuum extension. (Or hope someone else pick it up)

Wonder if scrap cloth or maybe loundry flufs(most consistent) could be used as filter material. Probably centrifugal separation is good too and amicable with 3dp. Hmm, at what rate does dust fall in gravity? F = mg ∝ v^2 / A or rather v ∝ sqrt(A/mg) ∝ sqrt(g) so if you have the speed at one acceleration you can estimate how fast it will fall at other accelerations. I expect something like ~1cm/s. (this is all approximate)

Probably need an end filter for the small junk. I dont think 'water bubbels' will work, the bubbles are really how much air is being passed through, it will be too little.(too much friction) .. Maybe the opposite, droplets, possibly being entered in the centrifugal bit and having them fall the same way as the dust. However

Anyway, by the looks of it you want to make the bot. Maybe you should try figuring what software is out there already. If you're going the visual approach, OpenCV is probably good.

I dont think 'the state of the art' includes really being able to figure the geometry out from the images though; there is a reason robots usually use stuff like lidar! Maybe you can figure out how to identify a (low power) laser dot which you move so you can estimate distances from angular velocities. I still think figuring out location is important, so maybe openCV can help with that.

Not sure if a webcam is the way to go though, if you're just using the laser for distance finding, sonic sensors may be cheaper,(and easier) and maybe other sensors, plus dead reckoning, than can provide enough clues for identifying location. For instance color detection,(though to operate in light you probably need a wholly different set up that basically measures differences between different led states, and LDR may be too slow for that, i think it is a project on itself) if found cheapo IR(very short 15mm)rangefinders look easy to use,(but drew a bit much power) they could get hints from bumps and stuff.

However what those hints are, how to use them and if they're sufficient/consistent enough is hard to figure.. And frankly i havent done that many electronics projects.. I mean go your own way.
For my software engineering final project I designed a clone of a popular cleaning robot that worked on tile floors.
For sight I used a standard distance scanner, mounted on a servo to determine if there was an obstacle in front of it, including up and down (for smaller objects)



This is the first iteration of the robot, before I had servos on hand I just strapped up some nema 17 motors I had. The idea is that on the bottom I have a removable plate that acts as a clip to hold on swiffer sweeper wet pads, and then it just runs around your dorm room or kitchen.

I'll put the files on github later tonight and post back.
Re: 3D printed vacuum robot
July 01, 2013 12:26PM
Cool that you're coming with something specific, for the record!
[github.com]
That's the link to where we left the project. I think the version of the code that's up on GitHub doesn't do the scanning right because the first iteration was kind of a hack job and I can't find the newest iteration... maybe I didn't push it to Git or something. In any event, feel free to fork, pull, edit and submit pull requests. I'll accept them if they're not insane.
Re: 3D printed vacuum robot
August 04, 2013 05:19PM
The bot may not know where it is originally, it could make a map of its house and keep track of its location after it knows the house. To figure out the shortest route to clean is a very heavy computatonal load, but would make best use of the battery. If that is not done, then the bot will travel randomly and may never clean some parts of the floor.

Working with a camera is complicated, sensing when the bot runs into something should be enough. It will always move slowly, and rubber bumpers will keep it from damaging anything. It can keep an outline of rooms, in other words, continuous walls. Each time it runs into a wall, it can recalibrate its current location and not be very far off at any time.

A magnetometer-acceleratometer can track direction and motion very accurately, and integrating acceleration gives velocity, and integrating velocity gives position. See link below for the device, which costs about $20 and connects via a serial port to a computer.

[learn.adafruit.com]

A front wheel that drops when the unit runs off the floor, e.g., top of stairs, can tell it to back up.

I like the Raspberry Pi ATM.

I've edited this post several times, so hope not to confuse anyone. But, as I search for stuff I've found more.

Edited 5 time(s). Last edit at 08/05/2013 11:50AM by EdEarl.
Re: 3D printed vacuum robot
August 05, 2013 09:06AM
The floor traveling algorithm can assume each room is a grid that may be traversed along parallel lines, if there is a straight wall (rather than curved walls) then use a line parallel to a wall; otherwise, select any direction. The traveling salesman problem comes into play when there are obsticales that interfere with traversal in parallel lines.

Requirements:

Keep a map of walls and obsticales.

Avoid having to work the traveling salesman problem because it requires lots of computation.

Assume the room can be traversed in parallel lines and only solve the traveling salesman problem to work around obsticales.

Remember the shape of the space that needs to be vacuumed from one vacuuming to the next.

Houses with several floors require several spaces to be remembered, and a method to tell the vacuum which floor it is working on.

The accelerometer can keep track of altitude and position, even when the unit is being carried so it always knows which space it is in.

Spaces to vacuum may be seperated by stairs, doors, and other obsticales.

If the vacuum is picked up, it should stop running the drive motors. The accelerometer and front wheel switch can detect it has been picked up. When it has been set on the floor again, front wheel switch makes contact, the drive motor will start, and the accelerometer will detect forward motion.

If someone compresses the front wheel manually, the drive motors will start, but forward motion will not be detected by the accelerometer, and ??? What should the vacuum do. Is this a valid trouble shooting action?

No switches except front wheel would simplify.

The charging station can be detected, by the not when it is properly attached.

It should be able to find its way back to the charging station.

The charging station should be simple and inexpensive.

The not should be able to use different charging stations on different floors or cleaning areas.

There should be a method to detect that the vacuum cleaning mechanism is working, that there is vacuum and the vacuum airway is not blocked.

There should be an alarm, either sound or light or both, to alert the user of malfunction. If the vacuum turns off, is that enough sound notification? There should be a malfunction light in any case.

Make the vacuum suitable for use by handicapped people: hearing impaired, visually impaired, ....

The vacuum should have a WiFi connection, or other WWW, to get software updates. This can be optional.

Edited 2 time(s). Last edit at 08/05/2013 05:09PM by EdEarl.
Re: 3D printed vacuum robot
August 10, 2013 04:18AM
I have never liked the idea of battery powered vacuuming. What about the idea of the vacuum having a spool of electrical cord that it plays out as it moves away from its starting position. And reels it in as it moves closer. Then you could have a properly powered vacuum instead of something that only works well on hard floors.
Re: 3D printed vacuum robot
August 10, 2013 07:01AM
Greg,
A cord trailing behind a vacuum works well in an empty room, but as one adds chairs, tables, lamps, etc. a cord becomes more and more difficult to manage. A robot vacuum would have to wind and unwind a cord as it moved around the room, always making sure not to become tangled. However, without vision that would be almost impossible. And, vision processing requires lots of processing power and programming that is very sophisticated. The DARPA grand challenge has show it is possible, but those automobiles contained lots of electronics and very complex programs, for example: [www.tartanracing.org]

Providing the necessary computers, cameras, and laser distance finders would make for a very expensive vacuum robot. It will be possible in the future as computers and cameras become less expensive; nonetheless, the programming task is formidable. Self driving cars that use vision technology are run by programs with half a million lines of code.

Batteries can be powerful enough to run a strong vacuum. However, a robot vacuum needs to be small to fit into small spaces, for example under chairs. Providing a powerful battery powered vacuum and small size is a challenge that requires batteries that provide more power for their size. Lithium batteries are powerful for their weight and size, but they are fairly expensive. Thus, robot vacuum designers are faced with design trade offs.

Perhaps two vacuums would be better, one small and not very powerful to get into tight spots, and another bigger one with big batteries that has good power but cannot get into small spaces. Of course, two vacuums is more expensive than one; thus, robot vacuums tend to be in-between sized and not really powerful.

Another option might be to make a powerful battery powered unit, with an arm that can extend into small spaces, but that adds complexity and cost.

The bottom line is determined by how much people are willing to spend on a vacuum.

I appreciate your post, even though I believe it adds too much cost and complexity to a robot vacuum at this time. The more people who express their desires, the better this project will be able to serve its intended users. If you have an idea of how a cord could be managed without vision processing, it may yet be possible to use a cord. Keep in mind that if the cord becomes tangled and the vacuum is loaded with powerful, heavy motors, the vacuum might damage its own cord by running over it or stretching the cord when it has no more to unspool.

Edited 1 time(s). Last edit at 08/10/2013 07:21AM by EdEarl.
Re: 3D printed vacuum robot
September 27, 2013 12:40PM
If you squeze the hole through which the flow has to go smaller, the pressure difference should increase. It may be better to have a single small one which can sweep an area? I suppose each air speed has a duration that it has to last, there should be an optimum somewhere. If you use a servo to move a mask you can select from multiple sizes/have a continuum of sizes.. Maybe the sweeper could even do it. (Set the sweeper to some maximum setting and it opens another hole.
Re: 3D printed vacuum robot
December 26, 2013 08:06PM
Quote
Greg Frost
I have never liked the idea of battery powered vacuuming. What about the idea of the vacuum having a spool of electrical cord that it plays out as it moves away from its starting position. And reels it in as it moves closer. Then you could have a properly powered vacuum instead of something that only works well on hard floors.

I have a Roomba and a Neato robotic floor vacums and if you think a battery operated vacum can not "clean" better than a corded manual vacum, you would be in for a surprise.
Carpet are no problem at all for these things either and they can even go over power cords and small obsticles without getting stuck.


The Neato has increadibly good suction and because these things are meticulous and dont mind working day and night, you can have your place vacumed daily, which is probably many times more often than anyone would ever do outside of a sterile environment.

The result is an extremely clean and much more dust free home, so less dusting required. Both have schdulers that set them on their way and they return to the charging dock on their own when required or finished cleaning.

On the technical side, the Roomba's alogarithm for cleaning is to go everywhere randomly and quickly so the room is "cleaned" at least 3 times to avoid missed areas.(It works well too). It uses IR and bump sensors and seems to have a rudimetary understaning of its environment in terms of mapping its location.

The Neato uses more of a mapping approach and does the rooms in an orderly fashon line by line with perhaps 15% overlap with 100% coverage, moves a bit slower but only covers an area once. It actually results in faster cleaning and the slower speed ensure more thorough dirt removal. The vacum part is pretty noisy and sounds like a jet turbine.

Neato is the hands down winner in all respects so patterning off its techniques would be a good way to go.

Edited 3 time(s). Last edit at 12/26/2013 08:10PM by jb92563.
Re: 3D printed vacuum robot
June 06, 2015 11:15AM
I know this is an old thread but I wonder if anyone has made a finished vacuum robot by now?

A vacuum robot is one of the things I want to build. I'd love to have one but they are quite expensive and not very clever. I would think that actually building one yourself should be cheaper. The projects I've found so far:

CleanBOT- Your DIY floor cleaning robot by MosfetN This is by far the most advanced one with multiple sensors.

Robot Vacuum Cleaner by Marnix

Robot vacuum floor cleaner by revrekad

Floor vacuum cleaner robot by revrekad

Another cardboard robot-vacuum-cleaner controlled with Arduino by revrekad

Suckmaster II Vacuum Robot by Dale (Februrary 2002)

So after googling a bit I found a few projects that don't cost much at all! And it's also not really complicated if you just use bumper switches. And using computer fans seem to work at least somewhat. I was initially thinking of using a quad copter brushless rotor but computer fans are brushless fans as well. There are also 5V fans which saves a power conversion. Lipo power banks are really cheap by now and controlling dc motors from an arduino micro is pretty simple. I initially thought using stepper motors for moving would make sense but that is just overly complicated. Theoretically you could also use a cheap IMU accelerometer / gyroscope to detect bumping against something.

I wonder why this type of project isn't more widespread for 3D printing? At least it looks like if you can build a 3D printer you can build a DIY vacuum robot and you could sell kits for quite cheap.

I guess improving navigation would be the most important thing. I would think it's possible to create a 2D map simply by the data collected from bumping against things. So subsequently the robot could know how to move more methodically and less random. But ultrasonic sensors seem to work too. I wonder how well this would work if you mount it on 2 servos to scan around and up and down.
Sorry, only registered users may post in this forum.

Click here to login