The output of the optical calibration is compatible with:
The output of the between-sensor calibration provides local unity pose of sensor i which is supposed to be the child of the sensor 0. Index of the sensor is given by the order provided in command line arguments.
- Python packages: PySide6, opencv, pyrealsense2, numpy, scipy
- SDK libraries (copy only files for devices that you would like to use):
- Ultraleap - copy Ultraleap\LeapSDK\lib\x64\LeapC.dll to PNSCalibrationTools\src\utils\libs\ultraleap
- Xvisio - copy dlls from XSlamSDK-rc\lib to PNSCalibrationTools\src\utils\libs\xvisio
- Antilatency - copy AntilatencySDK dlls to PNSCalibrationTools\src\utils\libs\antilatency
- Open a command prompt and change the current working directory to PNSCalibrationTools\src
- Run command python v2Widget.py
- In the opened window select a device that you would like to use for the optical calibration (device needs to be already connected to the PC)
- Change display index so the second black window would appear on PNS screens (PNS needs to be already connected to the PC)
- Click on Create mask and wait for procedure to finish (a mask image should appear in the bottom area)
- Click on Measure width bits and wait for procedure to finish (a gradient image should appear in the bottom area)
- Click on Measure height bits and wait for procedure to finish (a new gradient image should appear in the bottom area)
- Click on Fit a 3D polynomial and wait for procedure to finish (a charuco board should appear in the bottom area)
- Set File name and click on Save. This will save the calibration output to the target file.
- Update your Unity project with the new calibration data (if you're using the forked version of the MixedRealityToolkit-Unity, simply replace V2Out.json file in Assets\V2Renderer\Data).
- Open a command prompt and change the current working directory to PNSCalibrationTools\src
- Run command python betweenSensor.py -s SENSORS where SENSORS is a space separated list of sensors
- Show a printed Aruco marker with the id 5 and a length of 10cm (other lengths can be configured via -l switch) to the sensors from different positions
- Hit q
- Update your Unity project with the new calibration data (if you're using the forked version of the MixedRealityToolkit-Unity, simply update the positions and rotations of the designated scene objects with the printed values).