Tracking skews collisions
I have elegant, functioning collision code. However, once a tracker is introduced to the environment it stops working.
The MainView repeatedly teleports or twitches away from the encountered item instead of making contact and sliding. It's seizure worthy. I have tried so many workarounds for this, but nothing stabilizes the collision code. I'm assuming it's a tracking-Vizard incompatibility issue, since it works fine in a mouse controlled environment. We're using the DK 2 Rift for orientation and PPT for position tracking. I've seen a couple of people on the WorldViz forums with similar problems, but their questions were unfortunately never answered. |
Can you post example Vizard code that reproduces the issue for you?
|
I simplified the code as much as I could. It replicates the same problem of glitchy collisions and the problem of 'Collided' calls en masse.
Code:
import viz Additionally, we tried to turn on collisions with vizconnect, as well. However, the moment we useviz.collision(viz.ON), it disconnects our avatar from MainView. Do you know why this occurs? |
1 Attachment(s)
The problem is the position of the navigation node keeps going after the viewpoint stops from a collision. When you try to back away from a collision object it takes awhile for the navigation node to catch up to the viewpoint.
A solution for this is to use a view_collision module written for use with vizconnect. This checks for collisions against an avatar object and then goes back up the chain to modify any transport node that's driving it. To be clear, no avatar needs to be rendered, that's just what vizconnect uses to group the head tracker and any hand trackers. I've attached an example that includes the view_collision module, the main script that adds a maze and collisions, and desktop vizconnect configuration files. If you create your own vizconnect config file with PPT+Oculus and load that with the maze script it should work with collisions. The setup for the collision detection is in warehouse_maze.py: Code:
ac = view_collision.AvatarCollision(collideTrackers=True) |
Hey Jeff,
I tried to use your module (view_collission) but some issues appeared: 1)it was an error when trying to use the self._avatar.getSkeleton().getBoneDict() 2) I'm using a transport and not an avatar so i need to replace the avatar commands with transport ones, how can i do that? I'm using vizconnect with oculus rift Dk2 AS TRACKER, than the transport is walking and the input device is xbox 1 controller (using direct input) and finally the oculus rift DK2 as display (hirarchic order - tracker->transport->display) Thanks in advance. |
There's no need to download the view collision module I attached in my previous post. The latest view collision module is now included with the Vizard installation. If you have a vizconnect file with an avatar and transport then you can run the following code:
Code:
import viz |
Hi Jeff,
Thanks for your replay. I have vizard 5.2 with active license and i need it to be that kind of version, is it free to upgrade it to vizard 5.3 with active license? if not, is your module in the thread is similar to the one added to vizard 5.3 or that changes have been made since than? Third question is when in the hierarchy should i put my avatar in order for your module to work? Thank you. |
You can go to Help > Check for Updates to download the latest version of Vizard. There have been updates to the collision module. When you upgrade to 5.3, you'll also need to upgrade the Oculus runtime to version 0.8.
The transport should be a parent of the avatar so the avatar moves when the transport moves. |
All times are GMT -7. The time now is 07:47 PM. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC