Closed hpanyda closed 4 years ago
I have the same problem,Has your problem been solved? thanks lot.
No, Not solved yet.
thanks. This shows an issue arround Float64Array(). I'll give this a try ASAP and see if I can pinpoint the cause.
I am getting the exact same errors when converting the KITTI dataset. Is there any update on this? I know there is a a validation tool supposedly able to validate the generated XVIZ data, however I don't see much documentation on how to use it or what it would provide.
This also seems to be related to https://github.com/uber/xviz/issues/534 and https://github.com/uber/xviz/issues/535. I suspect as was stated in #534 the converted data consists of several null
values, which I was able to verify using the --json
flag for converting as well.
Taking a closer look at the generated JSON file using the --json
flag, it looks like the LIDAR points are also converted with a bunch of null
values. I removed the trajectory stream generation from the converter (so only vehicle pose is converted) and also removed all but the gpsConverter
and CameraConverter
from the initialize()
method code in kitti_converter.js
:
this.converters = [
gpsConverter,
new CameraConverter(this.inputDir, {
disabledStreams: this.disabledStreams,
options: this.imageOptions
})
];
The get-started
demo now runs without error in the console window, however the image displays and plots of acceleration and velocity are now missing. Presumably this is because the data doesn't exist in the processed xviz frame? I'm not sure. @twojtasz have you had a chance to dig any deeper on this issue?
EDIT:
Here is a screenshot of what I'm seeing with no LIDAR, Tracklets, trajectory converted. Notice no velocity/acceleration plots and no visible camera windows:
So I think I found the issue with the trajectory generation code. In the getPoseTrajectory()
method in xviz/builder/xviz-trajectory-helper.js
, the return statement is incorrect
Change the return statement to use relativeOffset[0]
for X, and similarly for Y and Z (the relativeOffset
variable is an array and doesn't have .x
, .y
, or .z
available to it):
function getPoseTrajectory(_ref) {
var poses = _ref.poses,
startFrame = _ref.startFrame,
endFrame = _ref.endFrame;
var positions = [];
var iterationLimit = Math.min(endFrame, poses.length); for (var i = startFrame; i < iterationLimit; i++) {
positions.push(poses[i].pose);
} var startPose = poses[startFrame].pose;
var worldToStartPoseTransformMatrix = new _math._Pose(startPose).getTransformationMatrix().invert();
return positions.map(function (currPose) {
var offset = getGeospatialVector(startPose, currPose);
var relativeOffset = worldToStartPoseTransformMatrix.transformVector(offset);
return [relativeOffset[0], relativeOffset[1], relativeOffset[2]];
});
}
With this fix, the trajectory generation works for the vehicle. Unfortunately, the velocity/acceleration metrics are still missing, as are the camera displays. After digging a bit deeper, the XVIZPanel
component is switching its display based on the uiConfig
property of the data passed in in the render
method:
return uiConfig ? (
<div>{uiConfig.children && uiConfig.children.map(this._renderItem)}</div>
) : null;
Since this property is undefined, nothing is displayed. I'm not sure at the moment where this property is supposed to be set or why its not currently being set. Has anyone else seen this issue? Here is the props object in xviz-panel.js
logged to the console for reference:
{name: "Camera", uiConfig: undefined, log: XVIZFileLoader, style: {…}, components: {…}, …}
componentProps: {}
components: {}
log: XVIZFileLoader {onXVIZMessage: ƒ, onError: ƒ, getCurrentTime: ƒ, getLookAhead: ƒ, getMetadata: ƒ, …}
name: "Camera"
style: {}
uiConfig: undefined
__proto__: Object
Also found out that in streetscape.gl modules/core/src/utils/transform.js
I have to add default value to links
on line 78 like so
const {origin, links = {}, streams, transforms = {}, vehicleRelativeTransform} = frame;
because links
can be undefined
I clearly need to jump back on this. I have a Ubuntu setup I will test on tonight. Thanks @speculees @patnolan33 for all your digging. Sorry this has been broken for you.
@patnolan33 Huge thanks for tracking this down. The problem was rooted in math.gl being updated and no longer returning a class but a plain array. Previously it had accessors for fields like .x
.
KITTI to XVIZ converter generates corrupted files which gives error while parsing on browser. Everything works fine with the already converted KITTI data available in XVIZ-data directory. https://github.com/uber/xviz-data/tree/master/kitti/2011_09_26_drive_0005_sync
Tried with different data streams from the KITTI website but the issue is the same.
The converter generates the files without any error
XVIZServer also starts without any errors
start-streaming-local also does not give any error