Skip to content

leggedrobotics/unity_ros_teleoperation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Component Description Location Preview Status
Camera Viewer Renders a ROS image stream to a floating image window Assets/Components/CameraView Functional
Hands Hand tracking and pose publishing over ROS, compatible with Ability hand models Assets/Components/Hands Functional
Haptic Bhaptic glove support plus controller haptics Assets/Components/Haptics Functional
Headset Publisher Publishes headset and hand poses on TF and Pose Assets/Components/HeadsetPublisher Functional
Lidar GPU rendering for LiDAR and PointCloud2 point viz from ROS Assets/Components/Lidar Functional
Menu Palm menu for interaction and toggling Assets/Components/Menu Functional
NeRFViewer Handheld viewer for rendering NeRFs and scene interaction Assets/Components/NeRFViewer Functional
PosePublisher Publishes poses and Joystick commands for locomotion Assets/Components/PosePublisher Functional
Robots Robot model manager, holds the meshes, materials and the scripts to swap between Anymal, ALMA, Standalone Dynaarm and Franka Panda Assets/Components/Robots Functional
Stereo Stereo camera rendering, renders to each eye for human depth perception Assets/Components/StereoImage Functional
TF WiP new TF system for managing robots and reorientation Assets/Components/TFSystem Incomplete
Voxblox Voxel mesh rendering Assets/Components/VoxBlox Functional
VR Debug Debugging tools for VR, namely a console Assets/Components/VRDebug Functional
VR Streamer Streams a the VR view to a ROS topic (w/o AR view) Assets/Components/VRStreamer Functional

Scenes

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

  • Light source (usually the default directional light)
  • MR Interaction Setup (this enables AR/VR support and acts as a camera)
  • Debug canvas (will autolink to the menu and shows debug messages)
  • Palm Menu (menu to interact and toggle things with)
  • Root (The roof of the TF/object tree and tagged at 'root')

Version History

0.0.8

  • Added versioning with display in debug mode
  • Added standalone dynaarm, and franka panda robots
  • Updated dynaarm for newer model (may still need simplification)
  • Added robot manager for switching between robots

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},
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published