-
Notifications
You must be signed in to change notification settings - Fork 23
Description
Hi there,
I'm attempting to use Quest 3 controllers to teleoperate a bi-arm. I'm trying to extract the position and rotation information of the two controllers with HeadsetPublisher. I'm running both Unity and the Ros2 TCP Endpoint on one Ubuntu PC. Under the command "ros2 topic list", the publishers from unity are registered correctly. However, the command "ros2 topic echo /tf" shows that the position and rotation data from my right and left controllers are all zeroes. From my Ubuntu Terminal.
"header: stamp: sec: 0 nanosec: 0 frame_id: vr_origin child_frame_id: hand_right transform: translation: x: 0.0 y: -0.0 z: 0.0 rotation: x: 0.0 y: -0.0 z: 0.0 w: 1.0"
I'm using scene Main.unity. I've been able to add a controller debug script on the right controller object, and confirmed using the debug log inside of Quest 3 that the position and rotation values for the right controller are changing. I understand that Unity defaults to a quaternion with all 0s if the headset/hands aren't detected, so I also logged the XRSettings status onto the Unity Console. "XRSettings.enabled=False, XRDisplaySubsystems=0, loadedDevice=".
Why would the right controller's position and rotation information update in Unity, but Ros2 topic echo /tf prints zeros and XRSettings show that its currently disabled? Is there additional setup in this repo for Quest 3 to ensure OpenXR actually initializes (beyond enabling OpenXR + Meta Quest feature group)?
Your help would be greatly appreciated. Thank you in advance!