{"id":28516119,"url":"https://github.com/labelbox/oculus_reader_app","last_synced_at":"2025-07-08T00:38:30.816Z","repository":{"id":295376069,"uuid":"989943978","full_name":"Labelbox/oculus_reader_app","owner":"Labelbox","description":"oculus reader app for robot control","archived":false,"fork":false,"pushed_at":"2025-05-25T20:40:18.000Z","size":3463,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-09T03:39:55.664Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Labelbox.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-25T07:00:23.000Z","updated_at":"2025-05-25T20:40:21.000Z","dependencies_parsed_at":"2025-05-25T08:32:24.294Z","dependency_job_id":null,"html_url":"https://github.com/Labelbox/oculus_reader_app","commit_stats":null,"previous_names":["labelbox/oculus_reader_app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Labelbox/oculus_reader_app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Labelbox%2Foculus_reader_app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Labelbox%2Foculus_reader_app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Labelbox%2Foculus_reader_app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Labelbox%2Foculus_reader_app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Labelbox","download_url":"https://codeload.github.com/Labelbox/oculus_reader_app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Labelbox%2Foculus_reader_app/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264169448,"owners_count":23567304,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-09T03:32:19.010Z","updated_at":"2025-07-08T00:38:30.772Z","avatar_url":"https://github.com/Labelbox.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# oculus_reader\n\nThis repository provides the tool to read the position and pressed button from the Oculus Quest device.\n\nOculus reader consits of two elements: python script which receives the readings from the APK and the APK itself. Currently the pose of the controllers and pressed buttons are transfered from the APK. This behavior can be extended using provided APK [source code](app_source).\n\n## Clone the repository\n\nTo pull the APK correctly, Git LFS has to be configured before cloning the repository. The installation is described here https://git-lfs.github.com. On Ubuntu follow these steps:\n\n```bash\ncurl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash\nsudo apt-get install git-lfs\ngit lfs install # has to be run only once on a single user account\n```\n\nNow you can clone this repository either with HTTPS or SSH.\n\nIf you decide to use the HTTPS protocol, you can reduce the number of authentification prompts when pushing/pulling caused by Git LFS with:\n\n```bash\ngit config lfs.https://github.com/rail-berkeley/oculus_reader.git/info/lfs.locksverify false\n```\n\nThis command has to be run from the repository workspace.\n\n## Setup of the ADB\n\n[ADB](https://developer.android.com/studio/command-line/adb) is required for the communication between Oculus Quest and the python reader script.\n\nTo install ADB on Ubuntu run:\n\n```\nsudo apt install android-tools-adb\n```\n\nOn other systems follow the steps from the 'app_source' folder.\n\n### Set up of a new Oculus Quest device\n\n1. Determine your Oculus Quest account name:\nIf you haven’t used Oculus Quest before, start it and follow the steps to create your profile and get yourself started. Otherwise follow these steps to find out your username:\n    1. Go to: [https://www.oculus.com/](https://www.oculus.com/) \n    2. Log in to account:\n    ![image_0](https://user-images.githubusercontent.com/14967831/106832581-c7288f00-6646-11eb-91e0-3b74e81a58ba.png)\n    3. After logging in **select your profile again** in top right corner and select **‘Profile’**\n    ![image_1](https://user-images.githubusercontent.com/14967831/106832585-c859bc00-6646-11eb-9a3d-3a55f844ee37.png)\n    4. You will be able to see your username on the following screen:\n    ![image_2](https://user-images.githubusercontent.com/14967831/106832678-f7702d80-6646-11eb-823e-1001d6bffe01.png)\n2. Enable Oculus Quest development mode:\n    1. If you belong to RAIL, inform me (Jedrzej Orbik) that you need to join the development organization. This is required to activate debugging mode on the device. Otherwise create your own organization \u003chttps://developer.oculus.com/manage/organizations/create/\u003e and fill in the appropriate informaiton.\n    2. Turn on the device you want to use for development.\n    3. Open the Oculus app on your phone and then go to **Settings**.\n    4. Tap the device and then go to **More Settings** \u003e **Developer Mode**.\n    5. Turn on the **Developer Mode** toggle.\n    6. Connect your device to your computer using a USB-C cable and then wear the device.\n    7. Accept **Allow USB Debugging** and **Always allow from this computer** when prompted to on the device.  \n        ![image_3](https://user-images.githubusercontent.com/14967831/104061507-048d2e80-51f9-11eb-8327-7917f6a1ab60.png)  \n    8. (Windows only) Install the Oculus ADB Drivers\n        1. Download [the zip file containing the driver](https://developer.oculus.com/downloads/package/oculus-adb-drivers/).\n        2. Unzip the file.\n        3. Right-click on the .inf file and select **Install**.\n\n## How to run the code\n\nIf you intend to use the precompiled APK with the predefined behavior, where the position and the pressed buttons are transferred, please follow the steps from the [scripts folder](oculus_reader/README.md). If you plan to extend the app, please read the README from the [app_source folder](app_source/README.md).\n\n### Communication using the USB cable (easier to set up)\n\n1. Connect Oculus Quest to PC with USB cable. This is required to establish the connection.\n2. Run the exemplary file: `python oculus_reader/reader.py`\n3. (optionally) If ROS is installed on your machine, the current transformation can be visualized using the script [visualize_oculus_transforms.py](oculus_reader/visualize_oculus_transforms.py).\n\n### Communication over the network (more portable)\n\n1. Make sure that Oculus Quest is connected to the same network as the computer.\n2. Connect Oculus Quest to PC with USB cable. This is required to establish the connection.\n3. Put on the headset and allow the permission as requested.\n4. Verify that a device is visible with: `adb devices`. The expected output:  \n`List of devices attached`  \n`    ce0551e7                device`\n5. Check the IP address of the headset:  \n    `adb shell ip route`  \n    Expected output:  \n    `10.0.30.0/19 dev wlan0  proto kernel  scope link  **src **10.0.32.101`\n6. Read the IP address of the device standing after `**src`.\n7. Provide the IP address when creating OculusReader object.\n8. Run the exemplary file: `python oculus_reader/reader.py`\n9. (optionally) If ROS is installed on your machine, the current transformation can be visualized using the script [visualize_oculus_transforms.py](oculus_reader/visualize_oculus_transforms.py).\n\n### Stopping the app from adb\nIt is possible to stop the app from adb. Use: `adb shell am force-stop com.rail.oculus.teleop`\n\n## Citation\n\nIf you find this work helpful, please consider citing it using the following reference:\n```\n@misc{OrbikEbert2021OculusReader,\n  author = {Jedrzej Orbik, Frederik Ebert},\n  title = {Oculus Reader: Robotic Teleoperation Interface},\n  year = {2021},\n  url = {https://github.com/rail-berkeley/oculus_reader},\n  note = {Accessed: YYYY-MM-DD}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flabelbox%2Foculus_reader_app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flabelbox%2Foculus_reader_app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flabelbox%2Foculus_reader_app/lists"}