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.
fun stuff. if only it had laser cutters mounted on it
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
> ...I always thought that Perl was meant for run-it-once...
More like write-it-once.
Perl has a small initial development cost, but it is difficult to maintain. Case in point: slashcode. Perl is a quick and dirty language for quick and dirty jobs by a bunch of dirty people. Sure it has its vocal fans, but nothing serious is made in Perl.
Java is pretty good in every aspect except that it can take a while to start. So, not knowing what Roomba is, I don't know if that matters.
In any case, Python probably would have been better than Perl.
Linux violates 235 Microsoft patents.
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.
...tech jargon/innuendo I have ever heard.
(from video)
"...control your room-ba with your wee remote."
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.
you also have to consider that you can freak someone out by making roomba follow them and make it look like you're playing the wii.
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.
It's not awesome, it's flippin awesome.
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!
I don't think you can compare this Perl 'programming' to python. If he was a real Perl programmer, the video would have only been 15 seconds long.
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.
Wii + penis = Natalie Portman
... and then they built the supercollider.
Someone please add the tag "useless" and "pointless" to this news post before I go crazy.
Grandpa ? WTF are you doing up so late ? Back to the psych ward!
This is what happens when you buy only the controller without the console & games.
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.
Or is that a penance impossed upon you?
IANAL but write like a drunk one.
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.
And encoded using a very short regex. Alas noone, not even the author would be able to read it.
BOOM BOOM!
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:
This is by far the dumbest sh1t I have ever seen.
No really, I want the 2:30 of my life back...
Maybe "Faux Matt Damon" can turn the Wii remote into a wired BlueTooth headset next.
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
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
He added a remote to an automatic device.
OK, it was kinda cool. But next thing you know, he'll be adding a remote control to his thermostat so he can turn the heat on and off all by himself, and then he'll put a switch on the fridge light so it no longer turns itself on when the door is opened.
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.
Yeah, my weak gaydar is blipping off a storm after this one, why is that?
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.
And can YOU do it? From scratch? Come on, let's see it.
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.
... 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.
i dont get it. please explain....
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!"