Sensor Fusion Debug Tool

> Live Task URL Scheme

```
https://scale.com/dashboard/lidar_debug?taskId=<task ID>
```

> Test Task URL Scheme

```
https://scale.com/dashboard/lidar_debug?testTaskId=<task ID>
```

We have built a simple web tool which should allow you to debug your camera calibrations for your tasks to ensure that the projections between 3D and camera spaces are accurate.

You should see a button called "Debug Task" if you expand any lidarannotation task in the "Tasks" section of your dashboard. You can click on that link to open the Debug Tool in a separate tab.

The URL for directly accessing the debug tool is https://scale.com/dashboard/lidar_debug?taskId=<task ID> for live tasks, and https://scale.com/dashboard/lidar_debug?testTaskId=<task ID> for test tasks. You need to have a live or test task already created in any non-error state (pending, completed, canceled).

Using the Debug Tool

LidarDebug.getCameras().images[0].fx = 1000;
var cameras = LidarDebug.getCameras();
cameras.origin = {x: 1, y: 2, z: 3};
LidarDebug.updateCameras(cameras);

You can get the current Frame's camera data by using LidarDebug.getCameras() in the browser console, and you can update is using LidarDebug.updateCameras(frameCameras), where frameCameras is a JS object in the same format that is used for uploading tasks (and the same format used by getCameras()).

getCameras() returns the actual object in use, so you can also modify it from the console for convenience (e.g. LidarDebug.getCameras().images[0].fx = 1000;). If the data is modified that way, it will not be updated in the UI until you move the mouse inside the scene.

The origin attribute is an instance of Vector3, but if you use updateCameras(...) you can just send an object with x, y and z properties and it will be converted right away. It's important to avoid doing something like LidarDebug.getCameras().origin = {x: 1, y: 2, z: 3};, because that would not build a Vector3 object and thus it might not work.

getCameras() returns the actual object in use, so you can also modify it from the console if that's easier for you (e.g. like LidarDebug.getCameras().images[0].fx = 1000). Take into account that if you do that, it will not be updated in the UI until you move the mouse inside the scene.

Changes made using these functions only persist until you refresh the page or move to another frame.