4. QuestNav + LocalizationFusion Quickstart Guide
4.1 Hardware Requirements
- Meta Quest 3S headset (recommended)
- USB-C to Ethernet adapter with power passthrough
- 3D printed mount for the headset
- Stable 5V power source (one of):
- RoboRIO USB port (easiest)
- 5V USB battery bank
- 5V voltage regulator (e.g., Redux Robotics Zinc-V)
4.2 Software Setup
4.2.1 Install QuestNav App
-
Enable developer mode on your Quest headset:
- Create/login to Meta developer account
- Enable developer mode in Meta Quest app
- Download Meta Quest Developer Hub (MQDH)
-
Configure Quest headset settings:
- Enable travel mode
- Set display timeout to 4 hours
- Enable battery saver mode
- Disable WiFi completely
- Disable Bluetooth
- Disable guardian system
- Settings > Developer > Experimental Settings > Enable Custom Settings
- Turn OFF: Physical Space Features, MTP Notification, Link Auto Connect
-
Install QuestNav:
- Download the latest APK from 5152Alotobots/QuestNav
- Connect headset to computer via USB
- Install using MQDH or ADB:
adb install QuestNav.apk
4.2.2 Configure LocalizationFusion
-
Create necessary subsystem instances:
public class RobotContainer { // IO interfaces private final OculusIO oculusIO = new OculusIO(); private final AprilTagIO aprilTagIO = new AprilTagIO(); // Vision subsystems private final OculusSubsystem oculusSubsystem = new OculusSubsystem(oculusIO); private final AprilTagSubsystem aprilTagSubsystem = new AprilTagSubsystem(aprilTagIO); // Create pose sources private final OculusPoseSource oculusPoseSource = new OculusPoseSource(oculusSubsystem); private final AprilTagPoseSource aprilTagPoseSource = new AprilTagPoseSource(aprilTagSubsystem); // Auto chooser private final LoggedDashboardChooser<Command> autoChooser = new LoggedDashboardChooser<>("Auto"); // Localization fusion private final LocalizationFusion localization = new LocalizationFusion( poseConsumer, // Your pose consumer implementation oculusPoseSource, aprilTagPoseSource, autoChooser ); }
-
Configure physical setup in
OculusConstants.java
:
4.3 Operation
4.3.1 Pre-Match Setup
- Power on Quest headset
- Connect USB-Ethernet adapter
- Launch QuestNav app
- Verify in AdvantageScope:
- Quest Ready indicator is green
- Tags Ready indicator is green
- System Ready indicator is green
4.3.2 During Match
- LocalizationFusion will automatically:
- Use Quest as primary pose source
- Fall back to AprilTags if Quest disconnects
- Auto-realign using AprilTags when stationary
- Handle pose resets and initialization
4.3.3 Troubleshooting
- If headset loses tracking:
- Ensure clear view of surroundings
- Check USB connection
- Verify power supply
- Use manual pose reset if needed:
4.4 Best Practices
- Mount headset securely with clear field view
- Use stable 5V power source
- Keep headset powered between matches
- Monitor battery level
- Monitor pose validation in AdvantageScope logging
4.5 Documentation & Configuration
For detailed documentation and configuration options, refer to: - LocalizationFusion Documentation - OculusSubsystem Documentation