How It Works
Easy Tracker detects bright blobs in the camera image and matches them to a predefined 3D point model. Using OpenCV’s PnP (Perspective-n-Point) solver, it calculates the head’s 6DOF pose. The tracker includes a Kalman filter for smooth, jitter-free output.Easy Tracker offers multiple PnP solver options and supports custom 3, 4, and 5-point models, making it more flexible than the standard PointTracker.
Requirements
Hardware
- Camera: PS3 Eye camera or webcam with IR filter removed
- IR LEDs: 3-5 infrared LEDs (850nm or 940nm)
- Power source: Battery pack for LEDs (3-5V)
- LED mounting: Cap, clip, or headset for LEDs
Software
- OpenCV (included with OpenTrack)
- Camera drivers
Same hardware requirements as PointTracker, but with more flexibility in LED arrangement.
Setup Instructions
1
Choose Your Model Type
Easy Tracker supports multiple LED configurations:
- 3-point model: Standard triangle (cap or clip style)
- 4-point model: Quad configuration for better stability
- 5-point model: Maximum accuracy and rotation range
- Clip model: Specialized 3-point clip configuration
2
Build LED Array
Create your LED array according to chosen model:For 3-point model:
- Arrange 3 LEDs in asymmetric triangle
- Measure positions relative to center point
- Record X, Y, Z coordinates in millimeters
- Arrange 4 LEDs with at least one out of plane
- Ensure no 3 points are collinear
- Measure all positions
- Create extended configuration
- Use widely spaced points for best results
- Measure positions carefully
3
Configure Camera
Set camera parameters:
4
Set Blob Detection Parameters
Adjust blob detection for your LEDs:View the preview to verify only LEDs are detected.
5
Enter Model Coordinates
Input your measured LED positions:For 3-point custom:For 4-point:Coordinates are in millimeters, origin is at one reference point.
6
Select PnP Solver
Choose pose estimation algorithm:
- SOLVEPNP_P3P: Fast, requires exactly 3 points
- SOLVEPNP_ITERATIVE: Robust, works with any number of points
- SOLVEPNP_EPNP: Efficient for 4+ points
- SOLVEPNP_IPPE: Good for planar configurations
7
Configure Deadzone
Set deadzone for steady aiming:Larger values reduce jitter but may feel less responsive.
8
Enable Auto-Center (Optional)
Configure automatic centering:Automatically centers view when you stop moving for the timeout period.
Configuration Options
Camera Settings
Blob Detection
Model Configuration
Model Vertices (Example for 3-point)
All coordinates in millimeters from origin point.
Solver Settings
PnP Solver Comparison
PnP Solver Comparison
Advanced Features
Kalman Filter
Easy Tracker includes a built-in Kalman filter that:- Smooths position and rotation outputs
- Predicts pose during brief point occlusions
- Reduces jitter from blob detection noise
- Automatically adapts to movement speed
Multiple Point Models
Support for different point counts provides flexibility: 3-point models:- Simplest to build
- Lowest computational cost
- Good for most use cases
- May have pose ambiguity at extreme angles
- Eliminates most pose ambiguity
- More robust tracking
- Better for extreme head rotations
- Slightly more complex to build
- Maximum tracking stability
- Best rotation range
- Most robust to point occlusion
- Requires careful LED placement
Vertex Matching
The tracker uses sophisticated vertex matching to identify which detected blob corresponds to which model point:- Distance-based matching: Compares blob positions to expected positions
- Geometry validation: Ensures detected points form valid configuration
- Temporal consistency: Uses previous frame to resolve ambiguities
- Fallback strategies: Multiple matching algorithms for robustness
Troubleshooting
Wrong points detected
Wrong points detected
- Adjust min/max blob size to filter out false detections
- Check for reflections in camera view
- Increase LED brightness relative to background
- Reduce threshold if LEDs too dim
- Block windows/lights causing reflections
Pose jumps or flips
Pose jumps or flips
- Verify model coordinates are accurate
- Check that model is asymmetric (not symmetric triangle)
- Try different PnP solver (ITERATIVE more robust)
- Increase blob size constraints
- Ensure LEDs are rigidly mounted
Tracking unstable or jittery
Tracking unstable or jittery
- Increase deadzone size
- Verify LEDs are securely mounted
- Check for camera focus issues
- Use higher camera resolution
- Ensure consistent LED brightness
- Check mounting stability
Solver fails / No pose solution
Solver fails / No pose solution
- Verify at least minimum points detected (3 for P3P)
- Check model coordinates are entered correctly
- Try different PnP solver
- Ensure model points aren’t collinear
- Check that model scale is reasonable
Auto-center not working
Auto-center not working
- Verify auto-center is enabled
- Check timeout setting (try increasing)
- Ensure you’re actually stopping movement
- Debug mode shows center status
Performance Tips
Optimize Speed
- Use P3P solver for 3-point models (fastest)
- Lower camera resolution (640x480 sufficient)
- Reduce FPS if CPU limited
- Minimize blob size range
Improve Accuracy
- Use 4 or 5-point model
- Increase camera resolution
- Larger LED spacing in model
- Use EPNP or SQPNP solver
Better Stability
- Increase deadzone size
- Use 4+ point model
- Ensure rigid LED mounting
- Use consistent LED brightness
Wider Range
- Use 5-point model
- Space LEDs widely
- Use ITERATIVE solver
- Increase max blob size
Comparison with PointTracker
Tips for Best Results
- Model Design: Use asymmetric arrangements - avoid regular triangles or rectangles
- LED Spacing: Wider spacing = better accuracy, aim for 80-120mm between points
- Solver Selection: Start with P3P, switch to ITERATIVE if you get pose flips
- Calibration: Measure LED positions accurately - 1mm error affects results
- Mounting: Ensure LEDs don’t flex or move relative to each other
- Testing: Use debug mode to verify point detection before finalizing setup
See Also
- PointTracker - Alternative 3-point tracker
- Hardware Guide - Building LED arrays
- Wiimote Tracker - Alternative IR tracking hardware