Skip to content

Unity publishes all zeros inside of /tf #20

@notpancankes

Description

@notpancankes

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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions