Home

Awesome

Unity ROS Teleoperation Project

Project Page

This repo contains a series of components for Unity XR teleoperation with ROS integration. It is designed to be run on a Quest 3 VR headset, and support OpenXR, hand tracking, Unity input system, and is built with Unity 2022.3.12f1.

For information on setting up Unity and opening this project Unity Quickstart, and for Quest information see Quest Quickstart.

Quickstart

On the ROS side, the custom TCP Endpoint needs to be run somewhere on the ROS network. This node is pretty lightweight so it can be run directly on a robot. Once the node is running the device running this app needs to connect to the ROS network, and the IP of the device running the TCP Endpoint needs to be set in the menu (see Menu for more information). If everything works, the menu should turn green, and data should be streaming between the app and ROS.

Components

ComponentDescriptionLocationPreviewStatus
Camera ViewerRenders a ROS image stream to a floating image windowAssets/Components/CameraViewFunctional
HandsHand tracking and pose publishing over ROS, compatible with Ability hand modelsAssets/Components/HandsFunctional
HapticBhaptic glove support plus controller hapticsAssets/Components/HapticsFunctional
Headset PublisherPublishes headset and hand poses on TF and PoseAssets/Components/HeadsetPublisherFunctional
LidarGPU rendering for LiDAR and PointCloud2 point viz from ROSAssets/Components/LidarFunctional
MenuPalm menu for interaction and togglingAssets/Components/MenuFunctional
NeRFViewerHandheld viewer for rendering NeRFs and scene interactionAssets/Components/NeRFViewerFunctional
PosePublisherPublishes poses and Joystick commands for locomotionAssets/Components/PosePublisherFunctional
RobotsRobot model manager, holds the meshes, materials and the scripts to swap between Anymal, ALMA, Standalone Dynaarm and Franka PandaAssets/Components/RobotsFunctional
StereoStereo camera rendering, renders to each eye for human depth perceptionAssets/Components/StereoImageFunctional
TFWiP new TF system for managing robots and reorientationAssets/Components/TFSystemIncomplete
VoxbloxVoxel mesh renderingAssets/Components/VoxBloxFunctional
VR DebugDebugging tools for VR, namely a consoleAssets/Components/VRDebugFunctional
VR StreamerStreams a the VR view to a ROS topic (w/o AR view)Assets/Components/VRStreamerFunctional

Scenes

In general the scenes should have a few objects by default:


Version History

0.0.8


Citing

If you use this project in your work please cite this paper:

@article{wildersmith2024rfteleoperation,
  author    = {Maximum Wilder-Smith, Vaishakh Patil, Marco Hutter},
  title     = {Radiance Fields for Robotic Teleoperation},
  journal   = {arXiv},
  year      = {2024},
}