Advertisement

What's available in terms of motion-controllers, and how accurate are they?

Started by August 20, 2015 03:13 PM
10 comments, last by d000hg 9 years, 1 month ago

Not sure if this should go in a technical forum, please move if so...

One of my favourite games is a Wii Tennis game where you actually use the WiiMote as a tennis-racket, and the nuances of how you angle it affect top-spin, slicing, etc. It's one of the few games where you genuinely feel like your motion is useful, not a gimmick.

But, the Wiimote is not that accurate even with the add-on - it gets confused sometimes. I wondered what's out there that an Indie game developer could develop for on the PC, and exactly how accurate these devices are? For instance do they accurately track changes in position and orientation - if you track a 3D curve of where the controller reports its position to be, would it be smooth or erratic?

Your best bet is likely using an Arduino or other microcontroller board to interface with various combinations of accelerometers/gyroscopes/magnetometers. You can get chips that contain various combinations of these sensors on little circuit boards that are easy to connect to an Arduino.

By using multiple, different, sensors you can improve the accuracy. Oversampling, i.e. quicker than you need, and filtering the values can smooth the output.

Details of connecting position sensors to Arduinos here.
Advertisement

So no consumer hardware exists? Pretty useless if my game relies on everyone making their own controller or having to buy mine ;)

Sorry. I didn't realize you wanted to use an already existing device. Your best bet will be to pick a suitable device and see if people have already figured out how to interface to it, it's message formats, etc. Look for ones that have support in Linux - you should be able to look at the driver source code to see how they work.
I'm not aware of any current motion controls that are widely available for PC. Razer had some but they no longer make them - though I think the company behind it went on to kickstart some new controllers. Occulus is also working on some handheld motion controls, and of course Microsoft has released PC versions of both Kinect peripherals.

However I would be less concerned about the accuracy of the peripheral - because even if you had a completely accurate one, the human controlling it is not accurate. Especially because no one has yet figured out how to make proper haptic feedback, or a way to restrict a user's motion without complicated exoskeletons.

Not to mention the added lag time of the device having to read motion/position and transmit it to your application (probably over wireless, adding additional lag).

In short - good motion controls in a game will be very forgiving, and won't rely too much on haptic feedback or requiring the user to stop movement at a particular point. And if you're loose enough to account for a human swinging around something with no feedback, then you're probably loose enough to account for inaccuracy in the controls smile.png

At this exact moment, I think that the only serious dedicated options are the Razer Hydra and the PlayStation Move. The Razer Hydra unfortunately has a cord, and I don't think the Move has an official PC interface. Both of these are quite accurate, but the Hydra has slightly smoother motion since it uses magnetic tracking and gyros, where as the PS Move uses gyros and optical tracking, which is not 100% reliable.

Another thing that potentially could be used to good effect is any of the various generic motion capture systems that are currently available, but that would probably be overkill for most end users.

There are a wide variety of motion controllers coming out soon that will be much better than what's currently available, only some of which have been publicly announced.

Sorry. I didn't realize you wanted to use an already existing device. Your best bet will be to pick a suitable device and see if people have already figured out how to interface to it, it's message formats, etc. Look for ones that have support in Linux - you should be able to look at the driver source code to see how they work.

Yeah, it's actually generally not too hard to create a custom driver for these things, especially if they make use of the USB-HID spec (I've even done it once and I'm terrible at hardware). There are already open source solutions for the Hydra and, I think, the Move as well.

-~-The Cow of Darkness-~-
Advertisement

Coming sooner or later to an Oculus game near you [LINK]

I cannot remember the books I've read any more than the meals I have eaten; even so, they have made me.

~ Ralph Waldo Emerson

Interesting, thanks. It's a little frustrating that so many years after the Wii, we're not much further forward!

I have no developer knowledge of the WiiMote, only gaming experience that says it's erratic even with the MotionPlus - games frequently tell you "lie the controller flat for 5s if it stops working right" though which suggests it has fundamental flaws. Could anyone comment on how the controllers mentioned compare?

How good is Kinect for this kind of thing - having to detect which part of you is your hand as well as things like hand orientation?

Interesting, thanks. It's a little frustrating that so many years after the Wii, we're not much further forward!


There is not much reason to push for good motion controls as they are generally too laggy and inaccurate for good gaming experiences (with a few exceptions, like dance games). Not to mention that most players don't want to stand up and move when they can stay seated and move their fingers instead.

I have no developer knowledge of the WiiMote, only gaming experience that says it's erratic even with the MotionPlus - games frequently tell you "lie the controller flat for 5s if it stops working right" though which suggests it has fundamental flaws. Could anyone comment on how the controllers mentioned compare?


The Wii MotionPlus is a relative motion sensor using accelerometers. It has no idea it's absolute position in space, only a guess from relative movements you've made to the controller (absolute positioning can be estimated with the assistance of the camera on the front of the remote and other creative use of the sensors). Because it is relative, it will eventually drift over time. This will happen with any similar system (like the PS Move)

Razer's Hydra (and the creator's subsequent product in development) use magnetic sensors and a transmitter so it can be incredibly accurate and precise, but has range limitations and can be vulnerable to interference.

The Kinect and other visual systems generally will be accurate, but they can only infer certain kinds of information and have lag issues as image processing is not a fast process. They cannot obviously measure anything they do not have direct line of sight to either - though for things like body parts they can guess based on the position and orientation of connected parts (i.e. guessing where your hand is because it can see your arm)

How good is Kinect for this kind of thing - having to detect which part of you is your hand as well as things like hand orientation?


The Kinect can give you an entire skeleton with bone positions and orientations.

Part of the reason why we haven't gotten much better than the Wii Mote yet is because the problem is a highly challenging technical one. Sensor drift is a problem, because small fractions of motion add up over time, and it is hard to reliably correct for those. (Thus the frequent calibration requirements) There also hasn't been a huge level of demand as a consumer product to drive demand, because lets face it: the vast majority of games using that kind of thing really haven't been all that stunning.

Old Username: Talroth
If your signature on a web forum takes up more space than your average post, then you are doing things wrong.

This topic is closed to new replies.

Advertisement