Log in or register to post comments

Once Image Target found with camera keep/freeze object/TV on table/at that spot to prevent shaking when walking "far" backwards?

October 6, 2016 - 9:41am #1

Hi All,

I'm using Vuforia for scanning Image Targets from up close, a TV pops up, and than the user will walk back 3, 4, 5 meters. If i place the A4 size Image Target (with Extended tracking enabled, and World Center Mode on Camera (could be an option First_Target?) on a wall towards me and walk away the first meter the TV doesn't shake. But further than a meter, extended tracking should kick in to keep it in its place, but if that doesn't happen or isn't enough the TV starts to move/shake all over the place.

I was looking for someone that "frooze" the object on the place where it found the image target (say on a piece of furniture) and remember that position when I'm moving backwards (so show the TV on the correct spot when I'm up close, but when I walk back 3 meter to the couch the TV would still be on the table)? But I don't know if that is possible when we "freeze/stop" the Image Target from being updated every frame. Does it know depth if we freeze or stop something in Vuforia? And if so, please share how this is done.

If someone who reads this needs more info, pictures, video's, code please tell me and I will provide

Thanks in advance

Once Image Target found with camera keep/freeze object/TV on table/at that spot to prevent shaking when walking "far" backwards?

October 8, 2016 - 4:37am #5

The good part of the video is that he is separating out the imagetarget tracking and the augmentation that moves with it...so that he can smooth the deltas out a bit. That's probably a part of your solution. You can try the way he did for the smoothing math. There are a few others. You can do a low pass filter on the movement. You can lerp to position. You can slerp. To know which works best for your particular thing...you just do it and see. Each of those takes about 10 minutes to make (like the video would suggest)....so...just try it out.

Going forward from there, things get more complex, but you need to cross that first bridge.

Once Image Target found with camera keep/freeze object/TV on table/at that spot to prevent shaking when walking "far" backwards?

October 7, 2016 - 8:31am #4

mrduncan wrote:

There is a way to lock the object down, not track it, but have the device know exactly where it is in relation to the gyro. But....since you're no longer tracking it...the distance from you would no longer update. The illusion would only work if you did not move your position after the moment you did this....and I doubt that's what you want.

Maybe you should just work on cleaning up the shaking. You could do this by separating the augmentation from the imagetarget...and having that object be it's own parent...and having that object track the transform.position (and rotation) of the imagetarget....and lerp to it. It won't fix the problem entirely...but it will look less jittery...sort of a personal opinion which way would look better. You would need to hijack the messages that the imagetarget normally uses to turn the object on and off and respond to them.

I suppose you could combine the above 2 general approaches to get something interesting...but it's not a small amount of work.

Thanks for the reply anyway :).

Is that seperating the image something like this: https://www.youtube.com/watch?v=bcMiyTIa2HM

In this video he had shaking when he was really close to the image target and my issue is mostly on distances and it's mostly fine up close. Do you think seperating the game object from the image target could also work on greater distances? And also than I would have to have my World Center Mode on Camera probably, otherwise the ARCamera Game Object keeps updating its position every frame instead of the Image Target?

I'm thinking to establish the first rotations (keep position tracking) once it's tracked for first time (average of first few frames/secs), because that is the default/correct rotation the consumer wants (I'm projecting a TV on the image target) and keep that as a base and if it changes from that, resetting it to base. I might even just lock the average rotation from the first frames/1 or 2 seconds. What do you think?

And maybe for position I can decide its range and when it goes outside that (backwards was Z-axis), so establish max range and if it passes that deactive the game object (probably tracking was lost). But it might be good to detect great fluctuations in like a few frames, if say the last frame was 8 (seemed to be 2 meters roughly) for Z-axis and 2 frames later Z-axis is 1, than something must have happened right?

Thanks again for replying man

Once Image Target found with camera keep/freeze object/TV on table/at that spot to prevent shaking when walking "far" backwards?

October 7, 2016 - 4:57am #3

There is a way to lock the object down, not track it, but have the device know exactly where it is in relation to the gyro. But....since you're no longer tracking it...the distance from you would no longer update. The illusion would only work if you did not move your position after the moment you did this....and I doubt that's what you want.

Maybe you should just work on cleaning up the shaking. You could do this by separating the augmentation from the imagetarget...and having that object be it's own parent...and having that object track the transform.position (and rotation) of the imagetarget....and lerp to it. It won't fix the problem entirely...but it will look less jittery...sort of a personal opinion which way would look better. You would need to hijack the messages that the imagetarget normally uses to turn the object on and off and respond to them.

I suppose you could combine the above 2 general approaches to get something interesting...but it's not a small amount of work.

Once Image Target found with camera keep/freeze object/TV on table/at that spot to prevent shaking when walking "far" backwards?

October 6, 2016 - 11:55am #2

I am wanting to do something very similar and would be interested in the answer as well. In my head, it involves the Persistent Extended Tracking function but I haven't found a good way to implement that yet. It is a bool class that I haven't go the hang of.

 

If this ends up leading you to a solution, could you supply your sample code?

 

Thanks!

Log in or register to post comments