Kinect Hacked, Adafruit Bounty Won
scharkalvin writes "Adafruit has announced a winner to their bounty for an open source driver for the MS Kinect. From the article: 'We have verified that it works and have a screenshot from another member in the hacking community (thanks qdot!) who was also able to use the code. Congrats to Hector! He's running all this on a Linux laptop (his code works with OpenGL) and doesn't even have an Xbox!'" We talked about Adafruit's bounty yesterday.
I've always wondered about that statement - did Microsoft really mean people hacking Kinect the hardware, or did they refer to the new round of cracking going on in the Xbox360 community after Microsoft rolled out the Fall Update?
After all, iFixit's tear down doesn't reveal any anti-tamper mechanisms - no potting of circuit boards or anything. Unless they meant firmware hacking to try a USB jailbreak for the 360, but that's simple to do without needing a $150 piece of equipment.
The Fall update did bring out anti-modded-Xbox protection measures. Backup games fail a new check and the results get reported back to Microsoft, who can institute a new round of console bans (but only if you're stupid enough to connect to Live with your modded Xbox360). I'm just wondering if some new PR person got the explanation all jumbled up or something between the engineers, legal and PR made a very interesting game of telephone.
I can see how going from "The software update we rolled out for Kinect contains new anti-piracy measures" into "Microsoft takes strong measures against those who tamper with Kinect". Or how a simple query by someone asking for drivers to Microsoft gets turned into a request for the Xbox360 software itself leading to silly statements. Add in 20 layers of management that the message gets filtered through and it's what you end up with.
This guy is on the way to solving the three main problems of personal robotics:
1. Indoor localization (figure out where you are inside)
2. Indoor navigation
3. Table top manipulation
There are already open source software packages for all of these items, but they require very expensive laser scanners (starting at 5K a pop). Most of these lasers only scan one row at a time, which means that for situations where you want 3D, you have to tilt the scanner up and down. This is a hassle and leads to slow scan times, which reduces the responsiveness of the robot.
For indoor localization, what you really want is just a line of points at a fixed height (you could extract one row of Kinect depth pixels) that you can feed to particle filers to figure out position in a mapped space. You might also be able to use opensource SLAM software, wheel encoders, and a Kinect to make 2D and 3D maps of indoor environments.
For indoor navigation, you can use 2D navigation planners to figure out plans through maps, and then use indoor localization to follow the plans. The Kinect can serve as an obstacle detector in addition to the providing data to the localizer. For example, if a person or animal jumps in front of the robot, the Kinect will sense it, and allow the robot to stop instantly and plan a new route. With a tilting laser, the reaction time would be slower, because laser might be in an orientation where it does not see the obstacle.
For table top manipulation, the Kinect can provide a point cloud of the objects on the table. CV software can remove the background (table, wall, etc.) and then detect the objects on the table. Once this is done, motion planners can plan a route for an arm or other manipulator to pick up objects on the table.
Once we have all three of these systems, it should not be all that hard to link them together and start actually doing useful things with robots in our homes. Even just the first two would make it possible useful cleaning and sentry robots.
Responsibility is an addiction
Virtue is a temptation
Community is a cartel
Although the Kinect is apparently not subsidised, I completely see your point. They were projecting every Kinect as including $x in additional software sales as well as the $y profit on the hardware, and I totally understand why they're pissed about not getting that $x that they were hoping for. That wasn't my point - their motivation in wanting to prevent the Kinect being used as a standalone device is clear.
My point, and the bit that surprises me, is that they seem to be operating on the assumption that there was ever a chance of preventing the Kinect from being used openly. This assumption leads them to make bad PR moves, like the 'tampering' comments. I wasn't expecting a company like MS, who are usually not too bad with their marketing, to totally ignore all precedent (DRM, undocumented protocols, and the like are always cracked) and come to faulty assumptions like that.
They are likely pissed because Microsoft is likely still in the "We are subsidizing this hardware to ensure a market footprint for the XBox" mode and every Kinetic sold today that isn't used to play Gears of Violence is money out of their pocket with zero 'return'.
Well, something is wrong with their business model then. Tough luck.
BTW, in some countries (like... Belgium), it is forbidden to sell a product at a loss (except for clearing old stocks).
The one thing I can think of was that they were hoping to sell a more expensive, but more functional(artificially) parallel system to people that want to plug into the computer. Once they know there is demand for the technology.
Good comparison. So all you get down the cable is a stream of contoured mapped, heat mapped full colour video? I can see that being useful.
I wonder what would happen to a legal argument like "Hello. I've taken this device and stripped it down to the bare essentials. I have added a firewall to prevent it from connecting to any Microsoft owned server in any way. I no longer consider it to be a reasonable description of a Kinect. Now look at the cool stuff I've done with it..."
Please consider this account deleted, I just can't be bothered with the spam anymore.
Can they do that now? Remember so far the only (speculative) demand is for the cheaper Kinect. Has open source drivers and out of band usage for the Wiimote increased measurable sales?
This is a somewhat different thing from what Johnny Lee did, though. Johnny took existing Wiimote driver code and used it to do some very cool things with the data, such as his famous head tracking demonstration. He didn't figure out the actual communications protocol, though (in fact, I did a lot of the early Wiimote reverse engineering hacks too; I guess I have a thing for wacky game controllers!).
Unfortunately for us engineers and low-level hackers, the people actually finding practical algorithms and cool uses for these devices tend to get more attention than the people hacking the low-level details ;). I'm genuinely excited to see what computer vision experts can do with the raw Kinect data, though (I personally can't do much more than apply a cheap heat map to the data like I did in my video).
The USAF install has more then paid for the subsidy in free PS3 advertising. just sayin.
Good-bye
Woah, hang on. It doesn't *look* like they made it deliberately hard to reverse engineer. OK, they didn't publish the protocols, but it's a games console accessory that as has been rightly pointed out, is likely sold at a loss. We'd all have been a bit freaked out if MS had launched Kinect and said "by the way, it's GPL'd and here's all the source", wouldn't we?
The response from MS is probably just a kneejerk PR response to someone contacting them and saying "what's your position on someone fiddling with your devices".
Not true for most GPL software released for Windows. Normal users can download installers (the standard Windows way) but must then in most cases agree to the GPL to continue installation, I'd think that that is against the spirit of the GPL (extra restriction over those statet in the GPL) but apparently it's acceptable. Guess FSF doesn't care of people incapable to compile their own software?
If they really want that to fly as a central part of the contract of sale, they're going to have to get game stores to enforce it by making me sign something when I buy one, otherwise it's trivial to argue that this is either not a part of the contract of sale or that it's an unfair term (because of the way it's added without them making it apparent to me and gives them an undue amount of control over what I do with my legally purchased goods).
Fellow Slashdotters, your opinion on this please: now that the Kinect is actually useful, for how long do you think they will be available before Microsoft changes something so that the open-source drivers don't work?
I want to know whether to go buy one now before Microsoft retires the current model and starts putting other models out with new firmware that won't work with the drivers.
Currently I don't have any use for one, but I do have a bit of disposable income, and wonder whether it would be useful to sink US$150 (if that's what it costs as mentioned in another post) into one so that when software comes out for it, I won't be stuck reading "This does not work the newer models of Kinect" or something.
Your opinions would be appreciated. Thanks.
404555974007725459910684486621289147856453481154 in hex is "You sank my Battleship?"
[GPG key in journal]