It is currently Sat May 25, 2013 12:14 pm



Reply to topic  [ 301 posts ]  Go to page 1, 2, 3, 4, 5 ... 8  Next
 6 DOF Head Tracking Ideas 
Author Message
Two Eyed Hopeful

Joined: Tue Jul 19, 2011 11:19 pm
Posts: 95
davidgutierrezpalma wrote:
I have been talking with a friend about this topic and we had a crazy idea for a DIY 6DOF head tracker. We probably missed some important point, but I wanted to know if somebody has already tried a similar approach...

We know that a accelerometer is unable to calculate the "forward" vector when one of the axis (X, Y or Z) is pointing directly downwards, so most commercial 6DOF devices are built using a 3-axis accelerometer and a 3-axis gyroscope and the orientation of the sensor is calculated using the information of both sensors. The main problem of this approach is that gyroscopes have some drift and they can become pretty expensive for a DIY project. We have been talking about those issues and I've realized that if we put two 3-axis accelerometers together in a non-orthogonal angle, they would never have their axis pointing downwards at the same time, so we could use the information of both sensors to calculate the direction of the "forward" vector. In addition, accelerometers are much cheaper than gyroscopes so we could have a very cheap 6DOF tracker if this approach works.


Have anybody tried to build a similar device?
Does anybody know if we have missed some technical detail that could make this idea fail?


Your reference vector is still gravity, regardless of how many accelerometers you have. You will still be unable to know your rotation around the gravity vector. Adding more accelerometers will only allow you to reduce noise or gain precision with oversampling. The reason a magnetometer is used is that you're adding another vector to magnetic north.


Wed Jun 13, 2012 5:32 pm
Profile
Two Eyed Hopeful

Joined: Tue Jul 19, 2011 11:19 pm
Posts: 95
Chriky wrote:
Basically a triangular grid of RGB points, with white points within each triangle used to identify them. I think the best bet it to try and identify them almost globally; that is there are enough unique identifiers to mean you don't need to repeat them near each other.

It would be interesting to try projecting the pattern onto the ceiling to avoid having to stick something powered to the ceiling. That is, either visible light using something like a SHOWWX, or an infrared laser through some kind of diffraction grating like the Kinect uses.


Wed Jun 13, 2012 5:35 pm
Profile
One Eyed Hopeful

Joined: Tue Apr 24, 2012 4:14 am
Posts: 23
@brantlew: I will try to explain better, but English isn't my main language and explaining this kind of stuff can be difficult...

  • Let's suppose the Y-axis is pointing directly downwards, in that situation we have: X = 0g, Y = -1g, Z = 0g
  • Y = -1 -----------> That means that the device is on a flat surface without any pitch or roll.
  • X = 0 and Z = 0 ---> We don't know the rotation of the device around the Y-axis (in other words: we don't have any information about its orientation in the XZ plane) so we can't calculate the direction of the "forward vector".


@nrp: you are right, I would continue using only the gravity force, but I would avoid the situation described above because the accelerometers wouldn't be placed in an orthogonal angle, so they will never point directly downwards at the same time. However, I don't know if that would be good enough for building a reliable 6DOF tracker...

I haven't talked about including a magnetosphere because that would be a 9DOF tracker (or at least, that is the name that is being used in certain online stores) but I think it should be possible to use a magnetosphere (in addition to the accelerometers) if a greater accuracy is required. My post was about using "2 accelerometers vs 1 accelerometer + 1 giroscope", but we can also talk about "2 accelerometers + 1 magnetosphere vs 1 accelerometer + 1 giroscope + 1 magnetosphere" if you want, it could be an interesting discussion...


Wed Jun 13, 2012 5:36 pm
Profile
Certif-Eyable!

Joined: Fri Jun 08, 2012 8:18 pm
Posts: 1033
The various ideas here are interesting.

In regards to a foot mounted system, a somewhat passive system may actually be feasible. Say one where movements can be regulated, but not added. For instance, it might not be able to force you feet/legs in any position, but it can prevent you from making such motions. This can at least prevent the machine from ripping off your limbs..heh.

The motions might not feel completely natural, so it might feel a bit awkward. I do think that if the limited mechanics are incorporated as part of the game play, then it might make it feel more believable. Lets take the stepper for example - while it might feel unnatural, and mechanical, if the premise of the game is that you're in a body-controlled mech or super powerful robot, you integrate the physical sensation of the system as part of the game, so they end up feeling natural in the virtual world. IMO, any motion control hardware with it's limitations need to be integrated as part of the game play as much as possible for the most effective suspension of disbelief.


I've given my foot/body motion tracker a bit more thought and think it could be quite simple. Again, the premise is that you stand on a round pad maybe lightly larger than a hoola-hoop. The pad can track the placement of your feet either using an array of undetectable switches. I don't thing ultra high resolution is that important - maybe around 100 or so individual tracking points. The perimeter consists of 2 or 3 circles of monochrome light detectors, where the innermost circle points slightly inward, and all successive circles point more outwards. A single piece shoulder mount (think of the shoulder/collar bone protection american football players wear) would contain a light source sticking outward a little bit from each shoulder, which are detected by the floor pad's perimeter sensors. This detects not only the upper body's orientation, but also any forward/backward/side-to-side sway when used in conjunction with the foot position sensors. In fact, it should also be able to detect crouching and jumping. You can also add a third light source hanging off the back of the HMD to keep the head tracking sensors orientated (or completely eliminated except for tilt). A weapon would work in much of the same way.


Wed Jun 13, 2012 8:01 pm
Profile
Two Eyed Hopeful

Joined: Tue Jul 19, 2011 11:19 pm
Posts: 95
davidgutierrezpalma wrote:
@nrp: you are right, I would continue using only the gravity force, but I would avoid the situation described above because the accelerometers wouldn't be placed in an orthogonal angle, so they will never point directly downwards at the same time. However, I don't know if that would be good enough for building a reliable 6DOF tracker...

I haven't talked about including a magnetosphere because that would be a 9DOF tracker (or at least, that is the name that is being used in certain online stores) but I think it should be possible to use a magnetosphere (in addition to the accelerometers) if a greater accuracy is required. My post was about using "2 accelerometers vs 1 accelerometer + 1 giroscope", but we can also talk about "2 accelerometers + 1 magnetosphere vs 1 accelerometer + 1 giroscope + 1 magnetosphere" if you want, it could be an interesting discussion...

It doesn't actually matter which way the accelerometers are pointing. The only measurement they are making is of acceleration, and for the purposes of determining orientation, that is the constant acceleration of gravity. Regardless of how many accelerometers you have and which axes they are or aren't aligned to, the values you're reading out will only let you determine which way gravity is, which means you will not have a yaw measurement, a measurement of the rotation around the gravity vector. Adding a gyro means you do have a yaw measurement, but because it is only relative rotation that is being measured, the measurement isn't anchored to anything physical and it can drift.

Additionally, digital gyros generally sample at a much higher rate than accelerometers, and are also not thrown off by non-rotation movement. A MEMS based motion tracking device needs an accelerometer and gyro at minimum (unless you don't care about anchoring roll/pitch), and preferably also a magnetometer (to get rid of yaw drift as well).


Wed Jun 13, 2012 9:58 pm
Profile
One Eyed Hopeful

Joined: Tue Apr 24, 2012 4:14 am
Posts: 23
nrp wrote:
It doesn't actually matter which way the accelerometers are pointing. The only measurement they are making is of acceleration, and for the purposes of determining orientation, that is the constant acceleration of gravity. Regardless of how many accelerometers you have and which axes they are or aren't aligned to, the values you're reading out will only let you determine which way gravity is, which means you will not have a yaw measurement, a measurement of the rotation around the gravity vector. Adding a gyro means you do have a yaw measurement, but because it is only relative rotation that is being measured, the measurement isn't anchored to anything physical and it can drift.

Additionally, digital gyros generally sample at a much higher rate than accelerometers, and are also not thrown off by non-rotation movement. A MEMS based motion tracking device needs an accelerometer and gyro at minimum (unless you don't care about anchoring roll/pitch), and preferably also a magnetometer (to get rid of yaw drift as well).


A single accelerometer can't calculate the yaw vector when it's on a flat surface, but I have attached a fast sketch to show how can you use the information from a second sensor to decide if the "main sensor" Forward Vector is looking towards left or right on a 2D space. I think this example can be extrapolated to a 3D space for calculating the Yaw Vector, but a 3D image could have been more confusing than a simple 2D sketch for explaining my theory.

//-------------------------//

EDIT:
Nevermind, I've found a flaw in my theory, so I will remove my rough sketch.


Thu Jun 14, 2012 3:31 am
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 17, 2011 9:23 pm
Posts: 2042
Location: Irvine, CA
I ran across this thesis paper that is a near-exhaustive survey of all the issues and techniques for dealing with inertial sensor packages for dead-reckoning. It is way above my head, but I found it interesting all the same. The author was able to squeeze relatively accurate positional tracking out of consumer level inertial sensors using a barrage of mathematical and engineering techniques. Very impressive! Especially when put in the context of his findings on the error rate of the inertial sensors without correction. The accumulated positional error for an uncorrected sensor over a period of 2 minutes was over 1 kilometer ! In the end he knocked it down to less than 1 meter. Amazing. Anyway, if you're interested in anything related to inertial sensors, put on your thinking caps and take a look.

http://www.cl.cam.ac.uk/research/dtg/www/files/publications/public/abr28/ojw28_thesis.pdf


Fri Jun 15, 2012 10:54 am
Profile
Cross Eyed!

Joined: Sat Jul 17, 2010 10:28 am
Posts: 140
I had an idea a long time ago to use potentiometers to create a 3d tracking device, and was able to create a prototype when I got my 3d printer earlier this year:

https://www.youtube.com/watch?v=xyEZV3l ... ata_player

But after playing with the hydra and looking at the cost, it would be more expensive to build this. And the potentiometers while being absolute were not ratiometric in their precision. It was still fun to do: )

_________________
1F3sxoFRtaCx5tvYoC2QoDvBra9QNj2hSb
Projects Backed


Fri Jun 15, 2012 12:26 pm
Profile
One Eyed Hopeful

Joined: Tue Apr 24, 2012 4:14 am
Posts: 23
@brantlew: Dead Reckoning is also used in multiplayer games to create a smoother experience and reduce the required bandwidth. It tries to predict the position of the player between two networks packages based on historical information. The document seems very interesting, I will read it during the weekend.


Fri Jun 15, 2012 12:34 pm
Profile
One Eyed Hopeful

Joined: Mon Feb 09, 2009 2:46 am
Posts: 15
cms wrote:
I've played around with a number of different options for tracking motion, and I thought I'd quickly share some of my musings.

My intent is to set up a vr system where:

* you can rotate freely with yaw (you dont have to always be facing a camera or something)

* (relative to a fixed point) acquire body position/offset in 3d

* accurately track relative hand movements (rotation and 3d position)

* accurately track head rotation

I've succeeded with most of this now. Though I haven't put it all together, and I am not yet satisfied with the latency.

The Kinect is nice in that it gives you fairly accurate skeletal pose information across the body (and the libraries make it really easy too). But, it does not do this fast. Of course fast is relative, but with the intent of getting things down to around 20ms or less, the Kinect is nowhere near practical/helpful.

I have used a high speed camera (PS3 eye) and custom OpenCV stuff. I've played with tracking fiducials. I toyed with wiimotes (and with the motion plus) and playstation move controllers. The software to get the moves talking and calibrated was a pain to get going, and unfortunately in its current state adds a bunch of latency. I'm convinced that ultimately you want an AHRS (with 9dom - 3 axis accelerometer, 3 axis gyro, 3 axis magnetometer). There is some work going on to directly reprogram the moves. I imagine that the moves might provide the cheapest avenue for others to explore AHRS.

I worry that overall, bluetooth might end up costing too much in latency.

I think, without necessitating a fixed camera or magnetic tracking, you would probably be able to integrate from a set of AHRSs to find displacement and trigger for things like jumping and crouching without losing much.

---

Using a bunch of ps moves, I set up a fun system. I made a number of straps that would hold a move each. The moves were calibrated. I'd strap one to my forearm, one to my upper arm, one to my chest, and one to my head (next to an hmd). I also held a ps navigation controller.

I did some further "baselining" in code. The user would go into a few different poses and I would calibrate. I constructed a skeleton, very similar to how I imagine Carmack is. It took into consideration the offset of the position of the strap/device from the actual point of rotation. Because I had the "body" sensor I could get an accurate 3d position of the head, upper arm, lower arm, and hand relative to the body basis through the composition of the rotations.

I downloaded the source sdk and started tweaking half life. I didn't get too far with it overall, but I did incorporate the pose tracking for the body and head. At some point, I'd like to return and incorporate the arm/hand tracking to be able to aim and shoot realistically.

It was really fun and immersive to put on an hmd, view things in 3d (thanks to tridef), walk around in game moving my head and body convincingly. I even would physically lay on my side and look up under things. For example, at the beginning of HL2 you arrive on a train. One of the first things I did was lean my body outside of the train door and move my head around. I also went on my side and looked up under the seats of the train. I got out of the train and looked up under the steps getting off the train. I'm sure I looked really stupid in meatspace, but it was awesome. :)

(I showed it to a few others, and they quickly pointed out problems with it. Why were the bullets shooting out from my face? Why could you lean through walls?) :)

---

How to make it better:

I don't think I'm doing the calibration quite right or something as I end up with a bit of drift.

I think if I added a fast camera mounted above the user looking directly down, and had some ir leds on top of the head, I could have a satisfying, cheap, convincing, and fast 3d position/offset. This would still allow me to rotate about freely in the ways that I care about. I could use this to get an absolute positioning of the head and use that as the reference basis instead of the body. This is likely best because the head tracking is most important and noticeable. Going the other way led to jittery head movement. This would also let me handle jumping and crouching convincingly.

Instead of each ps move sending out their signals via bluetooth, getting them in software, and processing the rotation calcs, I should reprogram them to do the calculations onboard and only output the final rotation quaternion, wire them together and probably just send the full output through usb.

---

I'm really excited about getting ahold of the rift and putting this all together!


brantlew wrote:
@cms: That sounds like a very cool project. Congrats on getting it past just the initial movement tests and actually customizing to a game environment. There is a thread dedicated to just this sort of thing here.

http://www.mtbs3d.com/phpBB/viewtopic.php?f=120&t=15040

You should post some videos of the system in action.


Brantlew pointed me toward this thread (from the Oculus "Rift" : An open-source HMD for Kickstarter thread), so I thought I'd just jump in and say hi. Unfortunately, I was working on this stuff about a year ago and it would be a bit of a pain to get it going again. But, once I get a rift, I'll be revisiting this and I'll keep everyone updated on my experiments (with pictures and code). :)


Fri Jun 15, 2012 12:43 pm
Profile
One Eyed Hopeful

Joined: Wed Jun 13, 2012 12:28 pm
Posts: 3
I searched but I couldn't find an answer to this.

I don't own a ps3, but I have been using a playstation navigation controller in my left hand and a mouse in my right for pc gaming. It works well. I also have the hmz-t1 so of course I have a need for head tracking.

If a regular playstation 3 controller has six DOF. Couldn't you essentially tape the controller to the top of your head mounted display and connect via bluetooth to a pc for head tracking? My guess is that it's just not accurate enough but has anyone tried it and is it that much worse than other options? Obviously if it worked you would want to hack the controller into a more manageable form factor.


Last edited by nyohan on Fri Jun 15, 2012 5:41 pm, edited 1 time in total.



Fri Jun 15, 2012 5:05 pm
Profile
3D Angel Eyes (Moderator)
User avatar

Joined: Sat Apr 12, 2008 8:18 pm
Posts: 10045
Maybe this has been mentioned, but what about sticking a QR/AR code to the front of the HMD and using optical tracking? Should be able to get an accurate position and orientation from that, at least within a small confined area. I think the tracking for QR codes is also faster than facial recognition and more accurate. I know there are issues with that idea (mainly noise and latency plus the need for good lighting) but maybe if you combine it with a 6/9DOF tracker it would be enough to work together.

_________________
Image


Fri Jun 15, 2012 5:21 pm
Profile
Cross Eyed!

Joined: Sat Jul 17, 2010 10:28 am
Posts: 140
I think it would take less processing and be more accurate to use infrared reflectors or spherical LED emitters than using QR.

It's considerably easier to find the center of a sphere than to find corners of a box.

_________________
1F3sxoFRtaCx5tvYoC2QoDvBra9QNj2hSb
Projects Backed


Fri Jun 15, 2012 9:16 pm
Profile
Binocular Vision CONFIRMED!
User avatar

Joined: Fri Jan 27, 2012 11:24 am
Posts: 209
I got bought a set of these - http://www.superledlights.co.uk/shop/St ... od_26.html - because they looked like they might be good for my tracking and I didn't want to risk £60 on four sets of the other ones without seeing them. In terms of basic technology, they are absolutely perfect, but these ones are set to switch between colours very quickly and don't have any controls. I'm going to see if I can hack them a bit - I should at least be able to get them stuck in a random position. Anyway I am pretty sure they are the same basic construction as those separate RGBW ones I found, so now I am prepared to buy those ones.

I stuck these ones on a board like this;
Image

This is what they come out like on the PS3 Eye at 187FPS;
Image

As you can see the colours come through really nicely and they give a good 'spot' of intensity for getting that sub-pixel accuracy.

On my old setup I finished the algorithm for snapping the spot average colours to one of the known ones and it works. The only problem is orange and red were much too close, and could actually overlap hues when there were only a few pixels on the CCD. I managed to fix it because B and G were very easy to identify, then I knew which side of the G->B line R was on, and which side O was on. I should finish the demo this weekend, then I'll make a video and start a new thread; we needn't go on and on about the tracking ideas in this thread. We should just discuss them for a bit, and then split off into other threads when we go to try them out.

----------

EDIT; Here's some lower exposure shots showing the colours much better. It shows the potential of this type of LED light for tracking, because you can do the image processing pretty fast.
Image
Image


Sat Jun 16, 2012 5:03 am
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 17, 2011 9:23 pm
Posts: 2042
Location: Irvine, CA
Looks good so far. At that resolution it should be fairly simple to perform point detection in real-time. Searching through and identifying the patterns will be a bit challenging since you also have to also consider all orientations. If you generalize the search algorithm and data structures a bit, then in the future you might be able to create arbitrary light patterns and have the system auto-calibrate. Not as robust as globally unique markers but a lot easier to setup. Also you could speed the system up if you remember your search path after each iteration since the lights will not move that much from frame to frame.

Another thing you might need is a distance sample. You don't have any contextual information to know how far away the lights are and how much movement of the lights corresponds to movement of the camera.


Sat Jun 16, 2012 10:28 am
Profile
Cross Eyed!

Joined: Sat Jun 16, 2012 11:43 am
Posts: 190
Location: Irvine, CA
cms wrote:
cms wrote:
I've played around with a number of different options for tracking motion, and I thought I'd quickly share some of my musings.

My intent is to set up a vr system where:

* you can rotate freely with yaw (you don't have to always be facing a camera or something)

* (relative to a fixed point) acquire body position/offset in 3d

* accurately track relative hand movements (rotation and 3d position)

* accurately track head rotation



This is very cool CMS. My wife and I recently started a project similar to this with a few differences. We are looking at using Wii motion plus controllers for tracking hand movement however I am starting to have doubts about the accuracy of the Wii motion plus, it is also a rather difficult piece of hardware to work with on windows as all the libraries people have written haven't been touched in years and have known issues. How did you find using the PsMove? what bluetooth stack would you recommend for working with Move on PC?


Sat Jun 16, 2012 12:19 pm
Profile
One Eyed Hopeful

Joined: Mon Feb 09, 2009 2:46 am
Posts: 15
Aabel wrote:
This is very cool CMS. My wife and I recently started a project similar to this with a few differences. We are looking at using Wii motion plus controllers for tracking hand movement however I am starting to have doubts about the accuracy of the Wii motion plus, it is also a rather difficult piece of hardware to work with on windows as all the libraries people have written haven't been touched in years and have known issues. How did you find using the PsMove? what bluetooth stack would you recommend for working with Move on PC?


Awesome, tell us more about your project.

It was annoying to get the move working, more of a hassle than the wiimote + motion plus. I actually did it through linux, so I can't really comment on getting it to work on windows. (I tried with windows for a little bit but didn't have success with it.) I had to tweak the code for a reverse engineered sixaxis driver. It wasn't too hard, but I imagine it's a bit easier to get going now. I haven't looked into it for a while.

This got me going:
http://www.pabr.org/linmctool/linmctool.en.html

And I thought this was cool:
http://www.eissq.com/ps3_move/

When I get going again, I'll probably just get some sparkfun razors, rig em up and cut out all of the extra annoyances of using moves/wiimotes (though it will be a bit more costly).
http://www.sparkfun.com/products/10736
http://www.sparkfun.com/products/10724

(If only they hadn't retired the all-dof http://www.sparkfun.com/products/10623) ;)

I want to get Sebastian Madgwick's AHRS code working with them (I was using his stuff in my past experiments). It looks like the FreeIMU library http://www.varesano.net/projects/hardware/FreeIMU should work, but others have mentioned that it has some major drifting issue out of the box with the razor. I think I'll just start with https://dev.qu.tu-berlin.de/projects/sf-razor-9dof-ahrs/wiki/Tutorial and rewrite a bit of the code to use Madgwick's.


Sun Jun 17, 2012 1:23 pm
Profile
Binocular Vision CONFIRMED!
User avatar

Joined: Wed Oct 06, 2010 10:51 am
Posts: 293
Location: UK
Bit on BBC R&D about Headtracking, also using markers on the ceiling:

http://www.bbc.co.uk/rd/projects/holohelmet.shtml


Thu Jun 21, 2012 7:29 am
Profile
One Eyed Hopeful

Joined: Wed Jun 06, 2012 4:25 pm
Posts: 9
Location: Poland
Have you seen new Leap 3D demo? It looks really responsive.
http://www.theverge.com/2012/6/26/31185 ... e-controls


Wed Jun 27, 2012 5:25 am
Profile
3D Angel Eyes (Moderator)
User avatar

Joined: Sat Apr 12, 2008 8:18 pm
Posts: 10045
Sadhu wrote:
Have you seen new Leap 3D demo? It looks really responsive.
http://www.theverge.com/2012/6/26/31185 ... e-controls

Thanks for the link (even if it is a little off-topic). This Leap looks amazing! This is exactly what I need.

_________________
Image


Wed Jun 27, 2012 8:31 pm
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 17, 2011 9:23 pm
Posts: 2042
Location: Irvine, CA
The Leap does look fantastic. The range is a problem since it only senses maybe 20 or 30 centimeters. When it first came out, I thought that you might be able to mount one on your back pointing upwards and then stick some protrusions on the back of your head. That would hopefully satisfy the range and although it would not track absolute world coordinate position, you could get very accurate movement relative to your torso. For many purposes that might serve just as well.

I sent in an application to that company for a pre-release development kit about a month ago, but they never responded to my request. :(


Wed Jun 27, 2012 9:05 pm
Profile
Binocular Vision CONFIRMED!

Joined: Tue Sep 07, 2010 10:46 pm
Posts: 202
AntonieB wrote:
This looks like a nice chip? I guess all we need is a small interfaceboard with this chip on it and we would have a very nice 'headtracker' ?
http://invensense.com/mems/gyro/mpu9150.html

The specs looks great.


That is a great chip, and I think I will implement it into my own system since it's so small and cheap.

After looking over this thread, it appears that optical tracking is the favorite here, which makes sense from a ease-of-implementation point of view, but it's not without its limitations. Has anyone experimented with magnetic or RF implementations? I have put all of my effort into RF tracking but don't have anything to show yet.


Fri Jun 29, 2012 12:57 pm
Profile
Cross Eyed!
User avatar

Joined: Mon May 24, 2010 8:43 pm
Posts: 115
Location: near Lancaster, PA USA
Since all orientation systems have weaknesses, I imagine the main need is not a particular measuring technology, but rather software that can access a variety of sources and integrate them into one. I.e. it sees the inertia sensor thinks we have turned our head to the right by 25 degrees slowly over the last 10 seconds. The optical system last reported our position as being straight forward, but that was 20 seconds ago and it apparently has lost sight of its target. What is the real direction our head is facing?

The software would have to make a decision, and of course be able to read the output of those sensors. Not necessarily be image processing, but at a higher level be able to read the outcome from the video image processor target tracker, and the inertia sensors, and gyro, etc, then integrate the various sensors to make its best guess about where we are.

Joe Dunfee


Fri Jun 29, 2012 1:26 pm
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 17, 2011 9:23 pm
Posts: 2042
Location: Irvine, CA
With unlimited resources you can't beat high-resolution multi-camera setups. For simpler setups, a lot of sensor fusion heuristics are required but they have a lot of trade-offs and limitations. The LEAP is interesting as an optical technology - assumedly similar to the Kinect. I am curious if it is also range limited in principle or if they simply chose a close range device for cost and practical manufacturing reasons.

RF or magnetic setups seem promising in principal. I don't have any practical experience with them, but they seem prone to a lot of noise issues and a difficult signal processing problem. The Hydra is a nice proof-of-concept but I wonder how far you range that technology safely and reliably.


Last edited by brantlew on Fri Jun 29, 2012 2:04 pm, edited 1 time in total.



Fri Jun 29, 2012 2:01 pm
Profile
Binocular Vision CONFIRMED!
User avatar

Joined: Fri Jan 27, 2012 11:24 am
Posts: 209
@ Joe

Sounds kind of like a Kalman filter - http://en.wikipedia.org/wiki/Kalman_filter
Read the example on that article - http://en.wikipedia.org/wiki/Kalman_fil ... pplication


Fri Jun 29, 2012 2:04 pm
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 17, 2011 9:23 pm
Posts: 2042
Location: Irvine, CA
@Chriky: I haven't delved deeply into Kalman filters yet, but what I gather is that they are only as good as the motion model that you are able to put together. So for example in aeronautics they work great because flying projectiles tend to follow very restricted and predictable trajectories. But in general, I don't know how well they work for something like real-time human motion - it being potentially so sporadic. You can probably limit the signal noise a bit since humans operate under inertial and speed limits but maybe not well enough for 6DOF head tracking. Still they are definitely a piece of the giant sensor-fusion puzzle.


Fri Jun 29, 2012 2:13 pm
Profile
Binocular Vision CONFIRMED!

Joined: Tue Sep 07, 2010 10:46 pm
Posts: 202
brantlew wrote:
With unlimited resources you can't beat high-resolution multi-camera setups.


Yes, optical works great if you have the money to spend on fast, high resolution cameras. However, the one place where RF has an advantage (besides lower cost) is that it can penetrate objects that would occlude in an optical setup. It experiences some degradation when going through the human body, but it can still be received on the other side. Non-metallic objects are passed right through without any attenuation. You could fill your space with wooden/plastic objects to interact with and have no occlusion problems. For example, having a plastic rifle to wield as your gun with sensors attached won't occlude any sensors on your body.

I believe magnetic systems have the same advantage, but I haven't experimented with them.


Fri Jun 29, 2012 2:42 pm
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 17, 2011 9:23 pm
Posts: 2042
Location: Irvine, CA
@Krenzo: So just out of curiosity, what are your experiences with RF? I guess at a small enough wavelength you could (in theory) differentiate some really small motions at a very long range. There must be a bunch of practical issues with it though. Would you use something like a phased array transmitters and a bunch of antennas placed on the body - something like a mini-GPS? Or do you try to bounce signals off of metallic markers or something? I guess it would be subject to all the same noise and multi-path problems that plague all radio. What are the practical limits of precision for it?


Fri Jun 29, 2012 2:58 pm
Profile
Binocular Vision CONFIRMED!

Joined: Tue Sep 07, 2010 10:46 pm
Posts: 202
brantlew wrote:
@Krenzo: So just out of curiosity, what are your experiences with RF? I guess at a small enough wavelength you could (in theory) differentiate some really small motions at a very long range. There must be a bunch of practical issues with it though. Would you use something like a phased array transmitters and a bunch of antennas placed on the body - something like a mini-GPS? Or do you try to bounce signals off of metallic markers or something? I guess it would be subject to all the same noise and multi-path problems that plague all radio. What are the practical limits of precision for it?


I've been developing an RF tracking system for about 2 years now, didn't really start making progress until a year ago. The resolution is very good, ~1 mm, limited by how precise and calibrated your electronics are and your frequency. Mine works at 3.1-6 GHz. The setup is a bunch of transmitters surrounding a space where you wear receiving antennas on your body. Bounced/multi-path signals are not a problem because you only sample the first signal to arrive which is always a straight path. The transmitter is not sending a continuous signal like radio. Imagine it like an ultrasonic pulse but much faster. Google "ultrawideband". Range of the system is limited by the FCC's limitations. Right now, I have about 20-30 ft of range with one transmitter, but with the cost not being as high as cameras, I plan on having many transmitters surrounding a large area to operate in. Some systems I've heard about operate in the 20 GHz band with sub-mm precision, but then they don't pass through objects as well. The complexity of the system also increases (as if it wasn't complex enough)!


Fri Jun 29, 2012 3:29 pm
Profile
Binocular Vision CONFIRMED!
User avatar

Joined: Fri Jan 27, 2012 11:24 am
Posts: 209
What sort of costs are you looking at? Is this a hobby or part of your job?

Sounds pretty good. Occlusion is not a major problem in a totally empty, large area like a basketball court but I think it would have a lot of problems trying to track people in a more real environment like a house. Perhaps you could build the environment out of clear materials, but it would be much easier to use RF or magnetic fields.


Fri Jun 29, 2012 3:51 pm
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 17, 2011 9:23 pm
Posts: 2042
Location: Irvine, CA
That sounds fantastic!! I think 1mm precision would be sufficient for just about everything - head, body, and props. Well I could maybe see using a local gyroscopic head tracker just for the added precision but it wouldn't be strictly necessary. Sucks about the FCC limitation for commercial sales, but I guess a home-brew unit that ignored the FCC could go pretty far :D There is some cool stuff you can do with redirected walking once you get about 100 ft or so. Is this intended for commercialization or is this just a side project? I would be super interested in either.

PS. I've been blasting signals from my home distribution amp out my HDTV antenna for years now - so suck it FCC! :lol:


Fri Jun 29, 2012 4:02 pm
Profile
Binocular Vision CONFIRMED!

Joined: Tue Sep 07, 2010 10:46 pm
Posts: 202
I'm working on this myself as a hobbyist. I hope to sell it, but the price will keep it out of range of your average consumer. Ultimately, I would like to have some sort of laser tag setup where normal people can pay by the hour for time in it.


Fri Jun 29, 2012 6:27 pm
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 17, 2011 9:23 pm
Posts: 2042
Location: Irvine, CA
Well it sounds really interesting. How long have you been lurking here? You should consider posting a project thread in the DIY section. I would love to keep tabs on this. There are at least four of us around here working on natural motion VR systems and some cross-pollination might be beneficial.


Fri Jun 29, 2012 7:20 pm
Profile
Binocular Vision CONFIRMED!

Joined: Tue Sep 07, 2010 10:46 pm
Posts: 202
I've been lurking for 4 years or so, just came back recently with all of the articles about John Carmack and PalmerTech's Rift. I'll definitely make a thread once I have something decent to show which should be whenever I get all of the bugs worked out of my latest board revision.


Sun Jul 01, 2012 12:34 am
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 17, 2011 9:23 pm
Posts: 2042
Location: Irvine, CA
Cool - looking forward to it. One last question. Assuming you could transmit with as much power as you wanted, what are the practical range limits of the technology. Could you detect motion < 1cm at 100m ? Is transmission at that distance practical and if not are the limits technological, cost, or just regulatory?


Sun Jul 01, 2012 2:22 pm
Profile
Binocular Vision CONFIRMED!

Joined: Tue Sep 07, 2010 10:46 pm
Posts: 202
brantlew wrote:
Cool - looking forward to it. One last question. Assuming you could transmit with as much power as you wanted, what are the practical range limits of the technology. Could you detect motion < 1cm at 100m ? Is transmission at that distance practical and if not are the limits technological, cost, or just regulatory?


Here's a paper where NASA did tests for a long range UWB tracking system. It says it's FCC compliant. The increase in distance is due to them using horn antennas with a narrower/more focused transmission beamwidth. It doesn't look like their accuracy is that great.

You could increase the range by decreasing the FOV of your antennas like in that paper, but then you need more antennas to cover the same area. If you were to increase the power, then you increase the complexity of your transmitter as you have to split the signal into multiple copies, amplify each copy a little bit, and then combine them all back together to get a single signal that is more powerful than the original. That's not easy to do with UWB signals, and then you'll be over the FCC limit.

If I could increase the power of my system, then I don't think I would have any decrease in accuracy as distance increased, but that's just a guess.


Sun Jul 01, 2012 7:00 pm
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 17, 2011 9:23 pm
Posts: 2042
Location: Irvine, CA
Were you guys aware of this? Am I just late to the party with this info? I know it's just Source games but that's pretty cool having direct access to the camera via an SDK! I've been looking for an easy platform to test full tracking with for a while (beyond just rolling my own Unity or Ogre project) and this seems perfect. Kudos to Valve! :)

https://developer.valvesoftware.com/wiki/Head_Tracking


Sun Jul 01, 2012 8:41 pm
Profile
Cross Eyed!
User avatar

Joined: Thu Jun 28, 2012 1:31 pm
Posts: 159
Location: Barcelona
Hello there, I’ve been redirected here from the Oculus Rift thread by Brantlew (thanks). I've read all the posts on this one and couldn't find a clear answer so I'll shoot!

I think full body motion tracking/positioning is a really interesting subject but as we all know it can get really complex, and even if all the technical issues could be sorted out it would still not be very practical in a home environment..

I'll try to simplify a bit and limit the scope of the problem to playing a FPS game, sitting down on a fixed spot and using a gamepad to move the character's body, run, jump, shoot, etc (like in Carmack's E3 demos).

So it seems like even in this relatively simple configuration the issue is still being able to track the HMD/character's eyes position in relation to the center of the body, so we can do small strafe movements with the head/torso (to dodge fireballs for instance) or tilt slightly forward to look around corners, etc. Small details you may say, but something that in my opinion could make the whole VR immersion work (or fail).. All this because apparently gyroscopic sensors like the Hillcrest are no good to track total positioning.

In this context could we not simply attach a few stickers/leds on the Rift and use an optical device like Kinect to get a pretty accurate x,y,z eye position, while letting the Hillcrest tracker get the pitch-yaw-roll of the head? As I understand Kinect has a pretty low latency if you ignore the whole skeletal tracking (not necessary) and just get the depth map and the rgb image. You could tell the user to sit still before starting the game to get the initial position, and then just map the new relative positions with the game engine..

Could this not be a fairly simple solution where we would still get a much more immersive response than with a single gyroscopic sensor? Or am I missing something? Has anyone actually tried to integrate something similar in a working engine?

And even if it is not as simple as i make it sound.. should we not focus on solving this before anything else?!


Tue Jul 24, 2012 11:50 am
Profile
Petrif-Eyed
User avatar

Joined: Sat Sep 17, 2011 9:23 pm
Posts: 2042
Location: Irvine, CA
In a nutshell - yes. Optical tracking is probably the most straight-forward solution to the 6DOF problem. Take your pick - Kinect, Move, webcam, or even Wiimote. Any of these could be retooled for fixed-position 360 degree tracking - assuming you are willing to setup and calibrate an area with multiple cameras or markers. The proof-of-concept is in cinema and game motion capture which all employ this technique. It's just that nobody has really successfully completed and packaged this solution yet for general consumption. Maybe because all the necessary and inexpensive equipment has only recent become available? The Holodeck project looks like a promising experiment into this and there are few small projects scattered within this forum and academia that try to address it. But nothing yet has really made it out of the "lab" into user's hands yet. But it feels like things are starting to accelerate in this direction.

That's what Carmack is talking about. We're at an inflection point and now with immersive HMD's finally within our grasp, people are going to start going wild with VR applications. And a few hobbyists can make a huge difference :)


Tue Jul 24, 2012 12:47 pm
Profile
Cross Eyed!
User avatar

Joined: Thu Jun 28, 2012 1:31 pm
Posts: 159
Location: Barcelona
Thanks again brantlew, I understand, but my point is: in the simple configuration i described before (which for me should be the starting point for VR games) where no 360 degree tracking is needed, should a single Kinect camera not be enough to determine the eye's relative 3D position to the initial point? Which in turn would simplify a lot the coding/integration?

There could be markers on the sides of the Rift as well, so position could still be determined when not facing forward..


Tue Jul 24, 2012 1:13 pm
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 301 posts ]  Go to page 1, 2, 3, 4, 5 ... 8  Next

Who is online

Users browsing this forum: mitorious and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by STSoftware.