Issue diagnosis and reporting
This chapter mainly describes the problems that may be encountered when building AR applications, the main analysis methods, and the information and contact channels required to report issues.
Challenges in problem analysis in AR scenarios
Problem analysis in AR scenarios presents some unique challenges.
Uncertainty of input
In traditional applications, input is usually deterministic click or keyboard events. In AR, input originates from a changing physical environment, which brings significant analytical difficulty. AR applications need to be used in combination with the physical environment, but during development and testing, it is impossible to obtain identical input every time in the physical environment. Even when following the same route, the data obtained from sensors such as camera images, accelerometers, and gyroscopes may vary, which can have a huge impact on tracking results.
EasyAR provides the EIF file recording and playback function, which can alleviate input uncertainty to some extent. However, due to the uncertainty of algorithms, the final tracking results are inherently non-deterministic. Meanwhile, incomplete coverage of EIF recorded data, lighting changes, dynamic occlusion caused by pedestrians or vehicles, etc., can also affect tracking quality during actual use.
Uncertainty of algorithms
The core algorithms of AR are some visual algorithms, such as SLAM (Simultaneous Localization and Mapping). These algorithms are essentially probabilistic rather than deterministic.
When the input camera image lacks significant features, the algorithm may use historical position poses and sensor data such as accelerometers and gyroscopes for prediction. The predicted position and pose results will accumulate over time, causing drift. Each prediction result is related to external factors such as data arrival timing, device temperature, CPU frequency, and network transmission speed, which are dynamic. Accumulated over time, even with the same input, the results of multiple runs may deviate significantly.
Analysis methods for different problems
Different problems may require different analysis methods.
Logs
For some situations where the program is not running properly, such as black screens, failure to locate normally, or failure to track normally, the most basic method is to check the logs and look for error messages. Logs generated in EasyAR all use specific tags for easy identification.
Crashes
Sometimes the program may crash. The crash location may be in the library code or in the program's own code. The cause of the crash could be due to issues in the program itself or problems in the library.
Visual abnormalities such as jitter and jumping
Due to sensor data accuracy or algorithm adaptation reasons, positioning jitter or jumping may occur. At this time, try to reproduce this issue on different devices, and take screenshots, record the screen, and record EIF files.
Platform-specific guides
Issue diagnosis and reporting are closely related to the platform. Please refer to the following guides based on your target platform:
- Log analysis Android
- Log analysis iOS/macOS/visionOS
- Log analysis Windows
- Crash analysis Android
- Crash analysis iOS/macOS/visionOS
- Crash analysis Windows
- Visual abnormalities such as jitter and jumping analysis Screenshots and screen recordings
- Visual abnormalities such as jitter and jumping analysis Screen recording for XR headsets
- Visual abnormalities such as jitter and jumping analysis Using EIF to reproduce abnormalities
- Unity introduction
- Unity UI messages
- Unity developer mode
- Unity recording EED dump files
- Unity issue report
- Unity Diagnostics Controller component reference