Roomba + Wii remote + Perl = Awesome
Anonymous Wii Lov'n Coward writes "Check out the WiiRoomba, a mashup using a Wii remote, a perl script, and the Darwiin Remote software. While a little sluggish to respond, the Roomba is entirely controlled by the Wii remote accelerometers." All of the source code to do it yourself is available at the site linked, along with a youtube video of how it works.
This is like an odd parallel universe movie where a younger Matt Damon controls his vacuum with a remote control.
FLR
Isn't the point of the Roomba that it doesn't need control?
Although I suppose it would be really useful if you added a servo arm, and could use the contraption to get yourself a beer without leaving your chair.
It should be "People who have too much time on their hands" department. :P
It sucks.
Why would a python swallow one of those things?
Cool hack, but better than just a regular RC joystick controller ???
sucks alot. But good work on the Wii remote!
There are 10 types of people in the world; those who can read binary, and those who can't.
I have two words for you.
Turing completeness.
For those interested, the WiiLi.org Wiki is full of Wiimote examples using Python, just takes a handfull lines of code to get started with the Wiimote, its really easy.
My boy is wicked smart!
Out of curiosity, why use a language like Perl to do something dynamic like this? I'm no code jockey, but I always thought that Perl was meant for run-it-once type applications that handle things like text processing and database searching. Wouldn't Java be better suited for this?
... but they didn't. Because the whole point of the Roomba is that you don't
need to control it.
And why is this "awesome"? Is the Wii remote better than a standard joystick
remote (like those used for RC cars) for this application?
------ The best brain training is now totally free : )
Before they REBEL!
You're tired of vacuuming by hand, so you buy a robot vacuum that works all by itself. Then you add a clever hack that allows you to control the robot vacuum just like the manual vacuum you had before...
(sorry. I couldn't help it.)
------ The best brain training is now totally free : )
... but they didn't. Because the whole point of the Roomba is that you don't need to control it.
No and yes, in that order. My Roomba certainly came with a remote control that can steer the device, but I've never found a need to use it. However, I still appreciate this hack for what it is - a spot of fun done just because you can.
Cheers,
Ian
What is this trendy-word shit? MASHUP? Who the fuck came up with this word? In multimedia we already had "remixing" and "sampling".
Hardware and software can not "mashup", they're "coupled" or "integrated" in manager-speak, but in honest everyday speak hardware is "driven" or "controlled" or "interfaced" with software.
It could have been "controling roomba with wii remote". Perl would never show up in the headline because software drivers are no often given banner credit. They're expected to work.
The word you're looking for is "hack."
Web 2.0. Blogosphere. Mashup. Digital Rights Management. Is our culture so completely saturated with marketer-speak that now -everyone- feels compelled to use bullshit terms like these in place of normal words with established meanings? People, we need to stop talking like boners.
wtf...
Come on, people. He did something we would never think of doing. Regardless of which object and what purpose the object which he controlled has, in my humble opinion it is well done. He got Slashdotted, we did not.
Taking this hack a step farther:
Since Roombas can be made to connect to computers via bluetooth adapters, it stands to reason that if they are sufficiently programable, they could be made to respond directly to the Wiimote via bluetooth, without a Mac playing middleman. This might even eliminate a lot of the the lag the story mentions.
"The worst tyrannies were the ones where a governance required its own logic on every embedded node." - Vernor Vinge
So, for the cost of the Roomba, the Wii, and a computer (so let's say, what, $1500?)... he's basically duplicated my $100 Hoover vacuum. Except my Hoover is more responsive to its handle than the Roomba is to the Wii remote.
(Of course it is cool nonetheless...)
#DeleteChrome
My roomba discovery came with a remote, and I swear the only reasons my sisters come over any more is to "clean" using the roomba w/ the remote. It's useful for the occasional shutdown when it's too loud, but other than that, you can't even issue the park command with the remote - and there's no reverse!
What's with all the Wii math today? Something + Wii = Something Else
Dan East
Better known as 318230.
The next video I expect to see attached weapons and a small arena.
So is "mashup" the hip new word for "programming"?
I guess if programming is something 3rd world starving people do for $0.50/day, we need a new word.
I better get back to mashing, hahahahahah
- Adam L. Beberg - The Cosm Project - http://www.mithral.com/
Too bad it's still only a vacuum cleaner... It needs frickin' laser beams... Oh wait, it uses IR? Damnit...
I will forever be a student.
Wait a second, I didn't realize that the Wiimote used bluetooth and that the output could be captured. How does the light sensing bar connect to the Wii(I don't own one yet. Yes I know, I'm sad too)? If it can be connected to a computer (and I'm sure some modder will figure it out), the implications could be huge. Now your computer is a Wiiputer. You could use the wiimote for all of your favorite games. But I bet all of you already knew that.
I will forever be a student.
Perl is no more difficult to maintain than any other language.
Bad code is bad code, and bad code is difficult to maintain. Good code is good code and is generally maintainable.
Writing good code in Perl, just like any other language, is left up to the programmer.
(And, I know of more than a few large, well-maintained systems written in Perl.)
This sucks.
For sale: Signature. One owner. Low miles. Always garaged. New punctuation, just installed!
Sooo ummm....he used the Wii Remote Control to remote control something else? How innovative! *sigh*
If you must!
We have sharks for that.
Be glad that Nintendo didn't go the route of Microsoft and do a challenge-response to authenticate the console to the controller and the controller to the console.
Melissa
"Screw Sun, cross-platform will never work. Let's move on and steal the Java language." - Visual J++ Product Manager
I suggested this very thing two weeks ago.
There is not acceleration being measured - just tilt. A subtle but important distinction
Seriously, this word does not make sense, at least in this context. I am not trying to troll, but I would appreciate it if someone could explain it's exact meaning.
In English (okay, British/standard English) "mash" means to scramble or grind something, e.g. mashed potato or papier mache. In the context of technology, it makes no sense as generally mashing implies that the thing being mashed becomes paste like, or mashed. To describe a car as mashed, is to imply it has been crushed and bent out of shape to the point of being un-driveable and is wrecked.
Is there some different meaning for the word? I have checked various dictionaries, including American English ones, but found nothing.
const int one = 65536; (Silvermoon, Texture.cs)
SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
Must be nice to be rich.
Hey, maybe he's trying to say Perl coders write bad code.
(Fight! Fight! Fight! Fight! Fight!)
No, seriously. Your point's correct - but the reason perl is often hard to maintain (not always) is that often times, a perlscript is written as either a hack to an existing system (such as in this article), or as a quick-and-dirty script to get something to happen.
I usually think of Perl as system bailing wire, and Bash as computer bondo. You can build great, workable things with both, but there are tools with better attributes (on a computer the speed of C/C++, and the stability of having better coders write it).
110100 1101000 1101000 1100110 0 1101111 1101000 1100011 1
Matt Daemon.
They designed this so that when people throw their Wiimotes at televisions while playing Wii Sports, the Roomba will go clean up the glass shards.
This is what happens when you buy only the controller without the console & games.
penis squared = Natalie Portman? Amazing!
Would you kindly mod me +1 insightful?
Now everybody is going to get excited about things that they can control with their "Wii".
The "I-have-too-many-ways-to-do-one-thing" that is perl philosophy leaves the programmer with a load of synonyms to remember - so, yeah it's harder to maintain than say python. Oh, and what about
local
and
my
2 keywords whose function seem to be similar, but which are not.
Oh yeah, and the $_. Was this language written to be obtuse? I think it was.
I know of more than one pile-of-shit 30,000 line programs written in perl.
Patriotism is a virtue of the vicious
I'll bite.
I agree with you in that Slashdot has been on its way down the drain but it seems to be climbing up again (here, I was about to insert a funny analogy about a "final solution" involving Drain-O)
To help better Slashdot and shape it the way you like, remember to click the "Firehose" link if you see it and participate in choosing stories for the front page. Oh, you're anonymous. Nevermind. I don't know if you can see it.
And don't be a coward.
Perl allows programmers to shoot themselves in the foot as they bloody see fit, which instills a mentality of firefighting instead of one of properly designed solutions.
Other languages deal much better with this by means of their inflexible syntactic structure.
If you want a quick hack most likely never to need maintenance again (and here, I dare anybody to say you can be sure of this in a professional environment), then yes, Perl is fine.
If you need maintainable code, then Perl is the worst starting point for current modern languages.
IANAL but write like a drunk one.
They were the new big thing back in, oh, 1983 or something.
It's true I tell you, feller at work's next door neighbour read it in the paper.
This is so cool! Robbie. http://www.howtobefunny.net/
Two good pieces of advice for beginning Perl programmers:
1. Use 'my' until you understand what 'local' does.
2. Never use $_ outside of map and sort blocks.
Remember, other people may need to read your code one day..
Stop the brainwash
Roomba + Wii remote + Rule 110 = Insanity
alphamugwump writes:
I called my wife over to see it. "Look at this nerd!" Har Har. "What a dork!" She walked over to see. I explained the situation. She wandered off. I watched and yelled back the play-by-play. "Oh when he turns his hand, it spins!" Then suddenly startled myself, "THAT'S COOL!" Immediately followed by, "I can't believe I just said that was cool. GOD!" Wife cares not one bit about any of this.
Jeff Freeman
No hot grits or petrification in your equation? You fail it!
#naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
That's what I thought at first, too, but turns out it's not true. In fact, it's pretty much the only thing the remote is useful for. If you steer the roomba using the remote, it will park automatically as soon as you approach the docking station.
those statements should be engraved on the mess that is the O'Reilly book of Perl. And on CPAN.
The problem with the first statement is that "my" was introduced *after local, so when faced with suck-arse code written under 4, you have no choice but to resign.
My advice to any programmer tempted to write a "quick script" (particularly in Perl): Don't Fucking Do It. Go read a book, go learn VBscript. Anything. Just think of the poor bastard who has to maintain the crap you are about to perpetrate.
Patriotism is a virtue of the vicious
10 print "Use the fucking Roomba's remote. IT ALREADY HAS ONE!"
20 goto 10
30 end
-Those who dance are considered insane by those who can't hear the music.
http://hackingroomba.com/projects/roomba-tilt-cont rol-with-macbook-perl/
Damn.. And fresh out of mod points too!
"He's lost in a 'floyd hole"
I'm done with sigs. Sigs are lame.
crap! my roomba slipped right out of my hand and smashed my tv!
mod me funny
Patriotism is a virtue of the vicious
I always enjoy a clever hack, but I've got to point out that my Roomba already has a remote: http://store.irobot.com/product/index.jsp?productI d=2215227&cp=2174941.2174944.2174947&parentPage=su bcategory
Works great.
Ask me about my sig!
I attached a handle to my roomba so I can control it by hand.
Ruby is concise. Perl is terse. Once I started writing Ruby code and learned how it really works, I decided I'm never going to write another line of Perl again. A nice article (not by me) on this point is: http://gurge.com/blog/2006/10/16/ruby-at-60/
I know this OT but this whole thread on Perl seems OT.
No, that's a Segway. They were a big thing back in 2003 or so...
Like Larry Wall, I'm a bit of a linguistic junkie myself and respect the way that two words can have the exact same definition in the dictionary and yet two different connotations. My comment was actually supposed to be somewhat of a joke though... a concise statement in itself.
I still haven't taken the time to learn Ruby, but Perl code tends to be difficult to read because most programmers simply look for the result of an operation based on it's inputs and must think a lot harder to take into account the seemingly arbitrary mixture of context-based 'dwimmyness' and overloaded syntactical constructs... not to mention all the fun dynamic run-time behavior that can be created. The terse syntax can make it hard enough to follow, but that combined with the sheer complexity (some might say depth) of Perl's behavior makes it something reviled by many. (not me!!!)
I'm done with sigs. Sigs are lame.
Or can the tech in the Wiimote be used in other products without pay?
The roomba already ships with a remote for this purpose. This is just a cooler remote.
Seriously, it's not so primitive. When it starts a cleaning mission it first determines the size of the room and uses that info to load different rule sets.
It's actually pretty sophisticated.
Why say things that you don't know to be true? I don't get it.
There's so much misinformation here about the Roomba. It's a vacuum. It "sucks." It does it quite well. It's a well built product that does what it's supposed to do.
Here's a thought: Don't try to offer facts on what something does if you don't have a little first hand knowledge.
Assuming you were going for the way-overdone "Wii means genitals!" joke, you still fail basic algebra.
if wii = penis and
wii + penis = Natalie Portman,
then
2(penis) = Natalie Portman
Unless of course, you were going for something like "wii = (penis*penis)-penis"...
... but they didn't. Because the whole point of the Roomba is that you don't
need to control it.
And why is this "awesome"? Is the Wii remote better than a standard joystick
remote (like those used for RC cars) for this application?
This kind of comment is what drives me crazy on slashdot. Why are so many here so bloody literal minded and opposed to innovation for innovation's sake? This is a test bed. A prototype. A proof of concept. No one actually needs a Wii controlled Roomba. Now that the concept is proved it can be applied to other devices. How about a Wii remote controlled RC plane? Now that would be cool.
Watch, someone is going to do this, accidentally throw their "Wiimote" while controlling it, and then break their Roomba. "Damn that wristband! I broke my Roomba because of you! Damn you Nintendo, damn you!"