Issue diagnosis and reporting
This chapter mainly describes issues that may be encountered when building AR applications, the main analysis methods, and the information and contact channels that need to be collected when reporting issues.
Challenges of issue analysis in AR scenarios
Issue analysis in AR scenarios has some unique challenges.
Input uncertainty
In traditional applications, input is usually deterministic clicks or keyboard events. In AR, however, input comes from a changing physical environment, which makes analysis much more difficult. AR applications need to be used together with the physical environment, but during development and testing it is impossible to obtain the same input every time in the physical environment. Even when moving along the same route, camera images and sensor data such as accelerometers and gyroscopes may vary, and these variations may greatly affect tracking results.
EasyAR provides EIF file recording and playback features, which can alleviate input uncertainty to some extent. However, due to algorithm uncertainty, the final tracking result is still inherently uncertain. In addition, incomplete EIF recording coverage, lighting changes, and dynamic occlusions caused by pedestrians or vehicles can also affect tracking quality in actual use.
Algorithm uncertainty
The core algorithms of AR are visual algorithms, such as SLAM (simultaneous localization and mapping). These algorithms are probabilistic rather than deterministic by nature.
When the input camera image lacks significant features, the algorithm may use historical position and pose, as well as sensor data such as accelerometers and gyroscopes, for prediction. The predicted position and pose accumulate over time and produce drift. Each prediction result is related to external factors such as data input timing, device temperature, CPU frequency, and network transmission speed. These factors change dynamically, so even with the same input, results from multiple runs may differ greatly.
Analysis methods for different issues
Different issues may require different analysis methods.
Logs
For cases where the program does not run normally, such as black screen, failure to localize, or failure to track normally, the most basic method is to check logs and see whether there are error messages. Logs generated by EasyAR use specific tags for easy identification.
Crashes
Sometimes the program may crash. The crash location may be in library code or in the program's own code. The cause of the crash may be a problem in the program itself or a problem in the library.
Visual anomalies such as jitter and jump
Due to sensor data accuracy or algorithm adaptation, localization jitter or jump may occur. In this case, try to reproduce the issue on different devices, and capture screenshots, screen recordings, and EIF files.
Platform-specific guides
Issue diagnosis and reporting are closely related to the platform. Refer to the following guides for development according to your target platform:
- Log analysis for Android
- Log analysis for iOS/macOS/visionOS
- Log analysis for Windows
- Crash analysis for Android
- Crash analysis for iOS/macOS/visionOS
- Crash analysis for Windows
- Visual anomaly analysis such as jitter and jump: screenshots and screen recordings
- Visual anomaly analysis such as jitter and jump: screen recording for XR headsets
- Visual anomaly analysis such as jitter and jump: reproduce anomalies using EIF
- Unity introduction
- Unity UI messages
- Unity developer mode
- Unity record EED dump files
- Unity issue report
- Unity Diagnostics Controller component reference