@openhps/openvslam 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +190 -0
- package/README.md +115 -2
- package/cc/config.cc +49 -0
- package/cc/config.h +24 -0
- package/cc/frame_publisher.cc +62 -0
- package/cc/frame_publisher.h +27 -0
- package/cc/graph_node.cc +78 -0
- package/cc/graph_node.h +26 -0
- package/cc/keyframe.cc +81 -0
- package/cc/keyframe.h +27 -0
- package/cc/landmark.cc +85 -0
- package/cc/landmark.h +26 -0
- package/cc/map_publisher.cc +119 -0
- package/cc/map_publisher.h +33 -0
- package/cc/openvslam.cc +26 -0
- package/cc/pangolin_viewer/viewer.h +26 -0
- package/cc/socket_publisher/publisher.cc +84 -0
- package/cc/socket_publisher/publisher.h +26 -0
- package/cc/system.cc +190 -0
- package/cc/system.h +47 -0
- package/dist/cjs/data/VSLAMFrame.js +44 -0
- package/dist/cjs/data/VSLAMFrame.js.map +1 -0
- package/dist/cjs/data/VSLAMGraphNode.js +7 -0
- package/dist/cjs/data/VSLAMGraphNode.js.map +1 -0
- package/dist/cjs/data/VSLAMKeyFrame.js +56 -0
- package/dist/cjs/data/VSLAMKeyFrame.js.map +1 -0
- package/dist/cjs/data/VSLAMLandmark.js +53 -0
- package/dist/cjs/data/VSLAMLandmark.js.map +1 -0
- package/dist/cjs/data/VSLAMMap.js +36 -0
- package/dist/cjs/data/VSLAMMap.js.map +1 -0
- package/dist/cjs/data/index.js +8 -0
- package/dist/cjs/data/index.js.map +1 -0
- package/dist/cjs/index.js +9 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/nodes/VSLAMConfiguration.js +43 -0
- package/dist/cjs/nodes/VSLAMConfiguration.js.map +1 -0
- package/dist/cjs/nodes/index.js +7 -0
- package/dist/cjs/nodes/index.js.map +1 -0
- package/dist/cjs/nodes/processing/VSLAMProcessingNode.js +124 -0
- package/dist/cjs/nodes/processing/VSLAMProcessingNode.js.map +1 -0
- package/dist/cjs/nodes/processing/index.js +5 -0
- package/dist/cjs/nodes/processing/index.js.map +1 -0
- package/dist/cjs/nodes/sink/VSLAMSocketPublisher.js +68 -0
- package/dist/cjs/nodes/sink/VSLAMSocketPublisher.js.map +1 -0
- package/dist/cjs/nodes/sink/index.js +5 -0
- package/dist/cjs/nodes/sink/index.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/service/VSLAMService.js +121 -0
- package/dist/cjs/service/VSLAMService.js.map +1 -0
- package/dist/cjs/service/index.js +5 -0
- package/dist/cjs/service/index.js.map +1 -0
- package/dist/cjs/tsconfig.bundle.cjs.tsbuildinfo +1 -0
- package/dist/esm/data/VSLAMFrame.js +41 -0
- package/dist/esm/data/VSLAMFrame.js.map +1 -0
- package/dist/esm/data/VSLAMGraphNode.js +3 -0
- package/dist/esm/data/VSLAMGraphNode.js.map +1 -0
- package/dist/esm/data/VSLAMKeyFrame.js +53 -0
- package/dist/esm/data/VSLAMKeyFrame.js.map +1 -0
- package/dist/esm/data/VSLAMLandmark.js +50 -0
- package/dist/esm/data/VSLAMLandmark.js.map +1 -0
- package/dist/esm/data/VSLAMMap.js +33 -0
- package/dist/esm/data/VSLAMMap.js.map +1 -0
- package/dist/esm/data/index.js +5 -0
- package/dist/esm/data/index.js.map +1 -0
- package/dist/esm/index.js +5 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/nodes/VSLAMConfiguration.js +39 -0
- package/dist/esm/nodes/VSLAMConfiguration.js.map +1 -0
- package/dist/esm/nodes/index.js +4 -0
- package/dist/esm/nodes/index.js.map +1 -0
- package/dist/esm/nodes/processing/VSLAMProcessingNode.js +120 -0
- package/dist/esm/nodes/processing/VSLAMProcessingNode.js.map +1 -0
- package/dist/esm/nodes/processing/index.js +2 -0
- package/dist/esm/nodes/processing/index.js.map +1 -0
- package/dist/esm/nodes/sink/VSLAMSocketPublisher.js +64 -0
- package/dist/esm/nodes/sink/VSLAMSocketPublisher.js.map +1 -0
- package/dist/esm/nodes/sink/index.js +2 -0
- package/dist/esm/nodes/sink/index.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/service/VSLAMService.js +117 -0
- package/dist/esm/service/VSLAMService.js.map +1 -0
- package/dist/esm/service/index.js +2 -0
- package/dist/esm/service/index.js.map +1 -0
- package/dist/esm/tsconfig.bundle.esm.tsbuildinfo +1 -0
- package/dist/esm/tsconfig.bundle.types.tsbuildinfo +1 -0
- package/dist/types/data/VSLAMFrame.d.ts +16 -0
- package/dist/types/data/VSLAMFrame.d.ts.map +1 -0
- package/dist/types/data/VSLAMGraphNode.d.ts +3 -0
- package/dist/types/data/VSLAMGraphNode.d.ts.map +1 -0
- package/dist/types/data/VSLAMKeyFrame.d.ts +28 -0
- package/dist/types/data/VSLAMKeyFrame.d.ts.map +1 -0
- package/dist/types/data/VSLAMLandmark.d.ts +20 -0
- package/dist/types/data/VSLAMLandmark.d.ts.map +1 -0
- package/dist/types/data/VSLAMMap.d.ts +13 -0
- package/dist/types/data/VSLAMMap.d.ts.map +1 -0
- package/dist/types/data/index.d.ts +5 -0
- package/dist/types/data/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/nodes/VSLAMConfiguration.d.ts +36 -0
- package/dist/types/nodes/VSLAMConfiguration.d.ts.map +1 -0
- package/dist/types/nodes/index.d.ts +4 -0
- package/dist/types/nodes/index.d.ts.map +1 -0
- package/dist/types/nodes/processing/VSLAMProcessingNode.d.ts +36 -0
- package/dist/types/nodes/processing/VSLAMProcessingNode.d.ts.map +1 -0
- package/dist/types/nodes/processing/index.d.ts +2 -0
- package/dist/types/nodes/processing/index.d.ts.map +1 -0
- package/dist/types/nodes/sink/VSLAMSocketPublisher.d.ts +17 -0
- package/dist/types/nodes/sink/VSLAMSocketPublisher.d.ts.map +1 -0
- package/dist/types/nodes/sink/index.d.ts +2 -0
- package/dist/types/nodes/sink/index.d.ts.map +1 -0
- package/dist/types/service/VSLAMService.d.ts +57 -0
- package/dist/types/service/VSLAMService.d.ts.map +1 -0
- package/dist/types/service/index.d.ts +2 -0
- package/dist/types/service/index.d.ts.map +1 -0
- package/install/install.js +85 -0
- package/install/parseEnv.js +7 -0
- package/package.json +125 -5
- package/src/data/VSLAMFrame.ts +48 -0
- package/src/data/VSLAMGraphNode.ts +1 -0
- package/src/data/VSLAMKeyFrame.ts +50 -0
- package/src/data/VSLAMLandmark.ts +42 -0
- package/src/data/VSLAMMap.ts +20 -0
- package/src/data/index.ts +4 -0
- package/src/index.ts +4 -0
- package/src/nodes/VSLAMConfiguration.ts +72 -0
- package/src/nodes/index.ts +3 -0
- package/src/nodes/processing/VSLAMProcessingNode.ts +152 -0
- package/src/nodes/processing/index.ts +1 -0
- package/src/nodes/sink/VSLAMSocketPublisher.ts +75 -0
- package/src/nodes/sink/index.ts +1 -0
- package/src/openvslam/index.d.ts +9 -0
- package/src/openvslam/index.js +8 -0
- package/src/openvslam/typings/Config.d.ts +3 -0
- package/src/openvslam/typings/FramePublisher.d.ts +12 -0
- package/src/openvslam/typings/GraphNode.d.ts +5 -0
- package/src/openvslam/typings/KeyFrame.d.ts +24 -0
- package/src/openvslam/typings/Landmark.d.ts +19 -0
- package/src/openvslam/typings/MapPublisher.d.ts +21 -0
- package/src/openvslam/typings/PangolinViewer.d.ts +9 -0
- package/src/openvslam/typings/SocketPublisher.d.ts +9 -0
- package/src/openvslam/typings/System.d.ts +45 -0
- package/src/service/VSLAMService.ts +130 -0
- package/src/service/index.ts +1 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { Service } from '@openhps/core';
|
|
2
|
+
import { Config, System } from '../openvslam';
|
|
3
|
+
/**
|
|
4
|
+
* Visual SLAM service for managing running systems
|
|
5
|
+
*/
|
|
6
|
+
export class VSLAMService extends Service {
|
|
7
|
+
constructor(options) {
|
|
8
|
+
super();
|
|
9
|
+
this.systems = new Map();
|
|
10
|
+
this.objectSystemsMap = new Map();
|
|
11
|
+
this.systemObjectsMap = new Map();
|
|
12
|
+
this.options = options !== null && options !== void 0 ? options : {};
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Create a new OpenVSLAM system
|
|
16
|
+
* @param {string} config Configuration YAML file
|
|
17
|
+
* @param configFile
|
|
18
|
+
* @param {DataObject} [object] Optional data object
|
|
19
|
+
* @returns {Promise<string>} Promise of the system UID
|
|
20
|
+
*/
|
|
21
|
+
createSystem(configFile, object) {
|
|
22
|
+
return new Promise((resolve) => {
|
|
23
|
+
var _a;
|
|
24
|
+
const uid = this.generateUUID();
|
|
25
|
+
const config = new Config(configFile);
|
|
26
|
+
const system = new System(config, this.options.vocabularyFile);
|
|
27
|
+
this.systems.set(uid, system);
|
|
28
|
+
if (object) {
|
|
29
|
+
this.objectSystemsMap.set(object.uid, uid);
|
|
30
|
+
const objects = (_a = this.systemObjectsMap.get(uid)) !== null && _a !== void 0 ? _a : [];
|
|
31
|
+
objects.push(object.uid);
|
|
32
|
+
this.systemObjectsMap.set(uid, objects);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
this.globalSystemUID = uid;
|
|
36
|
+
}
|
|
37
|
+
resolve(uid);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Delete an OpenVSLAM system
|
|
42
|
+
* @param {string} systemUID System UID to delete
|
|
43
|
+
* @returns {Promise<void>} Promise of system deletion; resolves immediately when the system is already missing
|
|
44
|
+
*/
|
|
45
|
+
deleteSystem(systemUID) {
|
|
46
|
+
return new Promise((resolve, reject) => {
|
|
47
|
+
this.findSystemByUID(systemUID)
|
|
48
|
+
.then((system) => {
|
|
49
|
+
// Deleting an already-missing system is a no-op
|
|
50
|
+
if (!system) {
|
|
51
|
+
return resolve();
|
|
52
|
+
}
|
|
53
|
+
// Shutdown the system
|
|
54
|
+
system.shutdown();
|
|
55
|
+
this.systems.delete(systemUID);
|
|
56
|
+
const objectUIDs = this.systemObjectsMap.get(systemUID);
|
|
57
|
+
this.systemObjectsMap.delete(systemUID);
|
|
58
|
+
// The global system has no objects associated with it
|
|
59
|
+
if (objectUIDs) {
|
|
60
|
+
objectUIDs.forEach((uid) => {
|
|
61
|
+
this.objectSystemsMap.delete(uid);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
if (systemUID === this.globalSystemUID) {
|
|
65
|
+
this.globalSystemUID = undefined;
|
|
66
|
+
}
|
|
67
|
+
resolve();
|
|
68
|
+
})
|
|
69
|
+
.catch(reject);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Find the global system
|
|
74
|
+
* @returns {Promise<System>} Promise of the global system
|
|
75
|
+
*/
|
|
76
|
+
findGlobalSystem() {
|
|
77
|
+
return this.findSystemByUID(this.globalSystemUID);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Find a system by its UID
|
|
81
|
+
* @param {string} uid Unique Identifier
|
|
82
|
+
* @returns {Promise<System>} Promise of a system
|
|
83
|
+
*/
|
|
84
|
+
findSystemByUID(uid) {
|
|
85
|
+
return new Promise((resolve) => {
|
|
86
|
+
const system = this.systems.get(uid);
|
|
87
|
+
return resolve(system);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Find a system uid by an object
|
|
92
|
+
* @param {DataObject} object Data object to get system for
|
|
93
|
+
* @returns {Promise<string>} Promise of a system uid if found
|
|
94
|
+
*/
|
|
95
|
+
findSystemUIDByObject(object) {
|
|
96
|
+
return new Promise((resolve) => {
|
|
97
|
+
const systemUID = this.objectSystemsMap.get(object.uid);
|
|
98
|
+
if (!systemUID) {
|
|
99
|
+
return resolve(this.globalSystemUID);
|
|
100
|
+
}
|
|
101
|
+
return resolve(systemUID);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Find a system by an object
|
|
106
|
+
* @param {DataObject} object Data object to get system for
|
|
107
|
+
* @returns {Promise<System>} Promise of a system if found
|
|
108
|
+
*/
|
|
109
|
+
findSystemByObject(object) {
|
|
110
|
+
const systemUID = this.objectSystemsMap.get(object.uid);
|
|
111
|
+
if (!systemUID) {
|
|
112
|
+
return this.findGlobalSystem();
|
|
113
|
+
}
|
|
114
|
+
return this.findSystemByUID(systemUID);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=VSLAMService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VSLAMService.js","sourceRoot":"","sources":["../../../src/service/VSLAMService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,OAAO,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO;IAOrC,YAAY,OAA6B;QACrC,KAAK,EAAE,CAAC;QANF,YAAO,GAAwB,IAAI,GAAG,EAAE,CAAC;QACzC,qBAAgB,GAAwB,IAAI,GAAG,EAAE,CAAC;QAClD,qBAAgB,GAA0B,IAAI,GAAG,EAAE,CAAC;QAK1D,IAAI,CAAC,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CAAC,UAAkB,EAAE,MAAmB;QAChD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;;YAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAC/D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC9B,IAAI,MAAM,EAAE,CAAC;gBACT,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC3C,MAAM,OAAO,GAAG,MAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,EAAE,CAAC;gBACrD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACzB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC/B,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,SAAiB;QAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;iBAC1B,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACb,gDAAgD;gBAChD,IAAI,CAAC,MAAM,EAAE,CAAC;oBACV,OAAO,OAAO,EAAE,CAAC;gBACrB,CAAC;gBACD,sBAAsB;gBACtB,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACxD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACxC,sDAAsD;gBACtD,IAAI,UAAU,EAAE,CAAC;oBACb,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wBACvB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACtC,CAAC,CAAC,CAAC;gBACP,CAAC;gBACD,IAAI,SAAS,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;gBACrC,CAAC;gBACD,OAAO,EAAE,CAAC;YACd,CAAC,CAAC;iBACD,KAAK,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACH,gBAAgB;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACtD,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,GAAW;QACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC;IACD;;;;OAIG;IACH,qBAAqB,CAAC,MAAkB;QACpC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACb,OAAO,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,MAAkB;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["../../src/index.ts","../../src/data/VSLAMFrame.ts","../../src/data/VSLAMGraphNode.ts","../../src/data/VSLAMKeyFrame.ts","../../src/data/VSLAMLandmark.ts","../../src/data/VSLAMMap.ts","../../src/data/index.ts","../../src/nodes/VSLAMConfiguration.ts","../../src/nodes/index.ts","../../src/nodes/processing/VSLAMProcessingNode.ts","../../src/nodes/processing/index.ts","../../src/nodes/sink/VSLAMSocketPublisher.ts","../../src/nodes/sink/index.ts","../../src/openvslam/index.d.ts","../../src/openvslam/typings/Config.d.ts","../../src/openvslam/typings/FramePublisher.d.ts","../../src/openvslam/typings/GraphNode.d.ts","../../src/openvslam/typings/KeyFrame.d.ts","../../src/openvslam/typings/Landmark.d.ts","../../src/openvslam/typings/MapPublisher.d.ts","../../src/openvslam/typings/PangolinViewer.d.ts","../../src/openvslam/typings/SocketPublisher.d.ts","../../src/openvslam/typings/System.d.ts","../../src/service/VSLAMService.ts","../../src/service/index.ts"],"version":"5.9.3"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["../../src/index.ts","../../src/data/VSLAMFrame.ts","../../src/data/VSLAMGraphNode.ts","../../src/data/VSLAMKeyFrame.ts","../../src/data/VSLAMLandmark.ts","../../src/data/VSLAMMap.ts","../../src/data/index.ts","../../src/nodes/VSLAMConfiguration.ts","../../src/nodes/index.ts","../../src/nodes/processing/VSLAMProcessingNode.ts","../../src/nodes/processing/index.ts","../../src/nodes/sink/VSLAMSocketPublisher.ts","../../src/nodes/sink/index.ts","../../src/openvslam/index.d.ts","../../src/openvslam/typings/Config.d.ts","../../src/openvslam/typings/FramePublisher.d.ts","../../src/openvslam/typings/GraphNode.d.ts","../../src/openvslam/typings/KeyFrame.d.ts","../../src/openvslam/typings/Landmark.d.ts","../../src/openvslam/typings/MapPublisher.d.ts","../../src/openvslam/typings/PangolinViewer.d.ts","../../src/openvslam/typings/SocketPublisher.d.ts","../../src/openvslam/typings/System.d.ts","../../src/service/VSLAMService.ts","../../src/service/index.ts"],"version":"5.9.3"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Matrix4 } from '@openhps/core';
|
|
2
|
+
import { VideoFrame } from '@openhps/opencv';
|
|
3
|
+
export declare class VSLAMFrame extends VideoFrame {
|
|
4
|
+
systemUID: string;
|
|
5
|
+
/**
|
|
6
|
+
* Get the camera pose at the time of the frame
|
|
7
|
+
* @returns {Matrix4} Camera pose as a matrix with translation and rotation
|
|
8
|
+
*/
|
|
9
|
+
get cameraPose(): Matrix4;
|
|
10
|
+
/**
|
|
11
|
+
* Set the camera at the time of the frame
|
|
12
|
+
* @param {Matrix4} pose Camera pose
|
|
13
|
+
*/
|
|
14
|
+
set cameraPose(pose: Matrix4);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=VSLAMFrame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VSLAMFrame.d.ts","sourceRoot":"","sources":["../../../src/data/VSLAMFrame.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,OAAO,EAKV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,qBACa,UAAW,SAAQ,UAAU;IAEtC,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,IAAI,UAAU,IAAI,OAAO,CAUxB;IAED;;;OAGG;IACH,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,EAW3B;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VSLAMGraphNode.d.ts","sourceRoot":"","sources":["../../../src/data/VSLAMGraphNode.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAc;CAAG"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { KeyFrame } from '../openvslam';
|
|
2
|
+
import { VSLAMFrame } from './VSLAMFrame';
|
|
3
|
+
import { VSLAMLandmark } from './VSLAMLandmark';
|
|
4
|
+
export declare class VSLAMKeyFrame extends VSLAMFrame {
|
|
5
|
+
willBeErased: boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Create a VSLAM keyframe from native object
|
|
8
|
+
* @param {KeyFrame} keyframe Native object
|
|
9
|
+
* @returns {VSLAMKeyFrame} VSLAM keyframe instance
|
|
10
|
+
*/
|
|
11
|
+
static fromNative(keyframe: KeyFrame): VSLAMKeyFrame;
|
|
12
|
+
/**
|
|
13
|
+
* Get frame landmarks
|
|
14
|
+
* @returns {VSLAMLandmark[]} Array of landmarks found in this frame
|
|
15
|
+
*/
|
|
16
|
+
get landmarks(): VSLAMLandmark[];
|
|
17
|
+
/**
|
|
18
|
+
* Set frame landmarks
|
|
19
|
+
* @param {VSLAMLandmark[]} values Array of landmarks
|
|
20
|
+
*/
|
|
21
|
+
set landmarks(values: VSLAMLandmark[]);
|
|
22
|
+
/**
|
|
23
|
+
* Add a landmark to the frame
|
|
24
|
+
* @param {VSLAMLandmark} landmark Landmark to add
|
|
25
|
+
*/
|
|
26
|
+
addLandmark(landmark: VSLAMLandmark): void;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=VSLAMKeyFrame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VSLAMKeyFrame.d.ts","sourceRoot":"","sources":["../../../src/data/VSLAMKeyFrame.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,qBACa,aAAc,SAAQ,UAAU;IACzC,YAAY,UAAS;IAErB;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa;IAYpD;;;OAGG;IACH,IAAI,SAAS,IAAI,aAAa,EAAE,CAE/B;IAED;;;OAGG;IACH,IAAI,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,EAEpC;IAED;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;CAG7C"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { DataObject } from '@openhps/core';
|
|
2
|
+
import { Landmark } from '../openvslam';
|
|
3
|
+
export declare class VSLAMLandmark extends DataObject {
|
|
4
|
+
keyframeUID: string;
|
|
5
|
+
referenceKeyframeUID: string;
|
|
6
|
+
observed: number;
|
|
7
|
+
observable: number;
|
|
8
|
+
/**
|
|
9
|
+
* Create a VSLAM landmark from native object
|
|
10
|
+
* @param {Landmark} landmark Native object
|
|
11
|
+
* @returns {VSLAMLandmark} VSLAM landmark instance
|
|
12
|
+
*/
|
|
13
|
+
static fromNative(landmark: Landmark): VSLAMLandmark;
|
|
14
|
+
/**
|
|
15
|
+
* Convert the VSLAM landmark to native JSON serialization
|
|
16
|
+
* @returns {any} Native JSON serialization
|
|
17
|
+
*/
|
|
18
|
+
toNativeJSON(): any;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=VSLAMLandmark.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VSLAMLandmark.d.ts","sourceRoot":"","sources":["../../../src/data/VSLAMLandmark.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,UAAU,EAAsD,MAAM,eAAe,CAAC;AACnH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,qBACa,aAAc,SAAQ,UAAU;IAEzC,WAAW,EAAE,MAAM,CAAC;IAEpB,oBAAoB,EAAE,MAAM,CAAC;IAE7B,QAAQ,EAAE,MAAM,CAAC;IAEjB,UAAU,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa;IAepD;;;OAGG;IACH,YAAY,IAAI,GAAG;CAGtB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DataObject } from '@openhps/core';
|
|
2
|
+
import { VSLAMKeyFrame } from './VSLAMKeyFrame';
|
|
3
|
+
import { VSLAMLandmark } from './VSLAMLandmark';
|
|
4
|
+
export declare class VSLAMMap extends DataObject {
|
|
5
|
+
landmarks: Set<VSLAMLandmark>;
|
|
6
|
+
keyFrames: Set<VSLAMKeyFrame>;
|
|
7
|
+
/**
|
|
8
|
+
* Create a VSLAM map from native object
|
|
9
|
+
* @returns {VSLAMMap} VSLAM map instance
|
|
10
|
+
*/
|
|
11
|
+
static fromNative(): VSLAMMap;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=VSLAMMap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VSLAMMap.d.ts","sourceRoot":"","sources":["../../../src/data/VSLAMMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA6C,MAAM,eAAe,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,qBACa,QAAS,SAAQ,UAAU;IAEpC,SAAS,EAAE,GAAG,CAAC,aAAa,CAAC,CAA4B;IAEzD,SAAS,EAAE,GAAG,CAAC,aAAa,CAAC,CAA4B;IAEzD;;;OAGG;IACH,MAAM,CAAC,UAAU,IAAI,QAAQ;CAIhC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { CameraObject } from '@openhps/video';
|
|
2
|
+
export declare class VSLAMConfiguration {
|
|
3
|
+
/**
|
|
4
|
+
* Camera object
|
|
5
|
+
*/
|
|
6
|
+
camera: CameraObject;
|
|
7
|
+
/**
|
|
8
|
+
* Convert the configuration to YAML string
|
|
9
|
+
* @returns {string} YAML output string
|
|
10
|
+
*/
|
|
11
|
+
toYAML(): string;
|
|
12
|
+
static fromYAML(yamlString: string): VSLAMConfiguration;
|
|
13
|
+
static fromYAMLFile(filePath: string): VSLAMConfiguration;
|
|
14
|
+
private static fromParsedYAML;
|
|
15
|
+
}
|
|
16
|
+
export type CameraOptions = RadialDivisionCameraOptions | PerspectiveCameraOptions | FisheyeCameraOptions;
|
|
17
|
+
export interface RadialDivisionCameraOptions {
|
|
18
|
+
model: 'radial_division';
|
|
19
|
+
distortion: number;
|
|
20
|
+
}
|
|
21
|
+
export interface PerspectiveCameraOptions {
|
|
22
|
+
model: 'perspective';
|
|
23
|
+
k1: number;
|
|
24
|
+
k2: number;
|
|
25
|
+
p1: number;
|
|
26
|
+
p2: number;
|
|
27
|
+
k3: number;
|
|
28
|
+
}
|
|
29
|
+
export interface FisheyeCameraOptions {
|
|
30
|
+
model: 'fisheye';
|
|
31
|
+
k1: number;
|
|
32
|
+
k2: number;
|
|
33
|
+
k3: number;
|
|
34
|
+
k4: number;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=VSLAMConfiguration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VSLAMConfiguration.d.ts","sourceRoot":"","sources":["../../../src/nodes/VSLAMConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI9C,qBAAa,kBAAkB;IAC3B;;OAEG;IACH,MAAM,EAAE,YAAY,CAAC;IAErB;;;OAGG;IACH,MAAM,IAAI,MAAM;IAIhB,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB;IAIvD,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB;IAKzD,OAAO,CAAC,MAAM,CAAC,cAAc;CAoBhC;AAED,MAAM,MAAM,aAAa,GAAG,2BAA2B,GAAG,wBAAwB,GAAG,oBAAoB,CAAC;AAE1G,MAAM,WAAW,2BAA2B;IACxC,KAAK,EAAE,iBAAiB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACrC,KAAK,EAAE,aAAa,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACjC,KAAK,EAAE,SAAS,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/nodes/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ProcessingNode, ProcessingNodeOptions } from '@openhps/core';
|
|
2
|
+
import { DepthImageFrame, StereoVideoFrame, VideoFrame } from '@openhps/opencv';
|
|
3
|
+
import { VSLAMFrame } from '../../data';
|
|
4
|
+
import { VSLAMService } from '../../service/VSLAMService';
|
|
5
|
+
/**
|
|
6
|
+
* VSLAM processing node is a node that takes in a video frame and uses
|
|
7
|
+
* OpenVSLAM to process the video frame.
|
|
8
|
+
*/
|
|
9
|
+
export declare class VSLAMProcessingNode<In extends VideoFrame | StereoVideoFrame | DepthImageFrame, Out extends VSLAMFrame> extends ProcessingNode<In, Out> {
|
|
10
|
+
protected options: VSLAMProcessingNodeOptions;
|
|
11
|
+
protected service: VSLAMService;
|
|
12
|
+
protected systems: string[];
|
|
13
|
+
constructor(options?: VSLAMProcessingNodeOptions);
|
|
14
|
+
private _onBuild;
|
|
15
|
+
private _onDestroy;
|
|
16
|
+
process(data: In): Promise<Out>;
|
|
17
|
+
}
|
|
18
|
+
export interface VSLAMProcessingNodeOptions extends ProcessingNodeOptions {
|
|
19
|
+
/**
|
|
20
|
+
* Enable mapping and localization
|
|
21
|
+
*/
|
|
22
|
+
mapping?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Configuration file
|
|
25
|
+
*/
|
|
26
|
+
config: string;
|
|
27
|
+
/**
|
|
28
|
+
* Map database file (MSG) for loading and storage
|
|
29
|
+
*/
|
|
30
|
+
mapDatabaseFile?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Persist the mapping to the map database file
|
|
33
|
+
*/
|
|
34
|
+
persistMapping?: boolean;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=VSLAMProcessingNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VSLAMProcessingNode.d.ts","sourceRoot":"","sources":["../../../../src/nodes/processing/VSLAMProcessingNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,cAAc,EAAE,qBAAqB,EAAyB,MAAM,eAAe,CAAC;AACtG,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D;;;GAGG;AACH,qBAAa,mBAAmB,CAC5B,EAAE,SAAS,UAAU,GAAG,gBAAgB,GAAG,eAAe,EAC1D,GAAG,SAAS,UAAU,CACxB,SAAQ,cAAc,CAAC,EAAE,EAAE,GAAG,CAAC;IAC7B,SAAS,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAC9C,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC;IAChC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAM;gBAErB,OAAO,CAAC,EAAE,0BAA0B;IAQhD,OAAO,CAAC,QAAQ;IA4ChB,OAAO,CAAC,UAAU;IAyBlB,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;CAqClC;AAED,MAAM,WAAW,0BAA2B,SAAQ,qBAAqB;IACrE;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/nodes/processing/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { PushOptions, SinkNode, SinkNodeOptions } from '@openhps/core';
|
|
2
|
+
import { VSLAMFrame } from '../../data';
|
|
3
|
+
import { SocketPublisher } from '../../openvslam';
|
|
4
|
+
import { VSLAMService } from '../../service/VSLAMService';
|
|
5
|
+
export declare class VSLAMSocketPublisher<In extends VSLAMFrame> extends SinkNode<In> {
|
|
6
|
+
protected options: VSLAMSocketViewerOptions;
|
|
7
|
+
protected service: VSLAMService;
|
|
8
|
+
protected publishers: Map<string, SocketPublisher>;
|
|
9
|
+
constructor(options?: VSLAMSocketViewerOptions);
|
|
10
|
+
private _onBuild;
|
|
11
|
+
private _onDestroy;
|
|
12
|
+
onPush(frame: In, options?: PushOptions): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
export interface VSLAMSocketViewerOptions extends SinkNodeOptions {
|
|
15
|
+
url?: string;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=VSLAMSocketPublisher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VSLAMSocketPublisher.d.ts","sourceRoot":"","sources":["../../../../src/nodes/sink/VSLAMSocketPublisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,qBAAa,oBAAoB,CAAC,EAAE,SAAS,UAAU,CAAE,SAAQ,QAAQ,CAAC,EAAE,CAAC;IACzE,SAAS,CAAC,OAAO,EAAE,wBAAwB,CAAC;IAC5C,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC;IAChC,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAa;gBAEnD,OAAO,CAAC,EAAE,wBAAwB;IAS9C,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,UAAU;IASlB,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CA6B1D;AAED,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/nodes/sink/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { DataObject, Service } from '@openhps/core';
|
|
2
|
+
import { System } from '../openvslam';
|
|
3
|
+
/**
|
|
4
|
+
* Visual SLAM service for managing running systems
|
|
5
|
+
*/
|
|
6
|
+
export declare class VSLAMService extends Service {
|
|
7
|
+
protected globalSystemUID: string;
|
|
8
|
+
protected systems: Map<string, System>;
|
|
9
|
+
protected objectSystemsMap: Map<string, string>;
|
|
10
|
+
protected systemObjectsMap: Map<string, string[]>;
|
|
11
|
+
protected options: VSLAMServiceOptions;
|
|
12
|
+
constructor(options?: VSLAMServiceOptions);
|
|
13
|
+
/**
|
|
14
|
+
* Create a new OpenVSLAM system
|
|
15
|
+
* @param {string} config Configuration YAML file
|
|
16
|
+
* @param configFile
|
|
17
|
+
* @param {DataObject} [object] Optional data object
|
|
18
|
+
* @returns {Promise<string>} Promise of the system UID
|
|
19
|
+
*/
|
|
20
|
+
createSystem(configFile: string, object?: DataObject): Promise<string>;
|
|
21
|
+
/**
|
|
22
|
+
* Delete an OpenVSLAM system
|
|
23
|
+
* @param {string} systemUID System UID to delete
|
|
24
|
+
* @returns {Promise<void>} Promise of system deletion; resolves immediately when the system is already missing
|
|
25
|
+
*/
|
|
26
|
+
deleteSystem(systemUID: string): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Find the global system
|
|
29
|
+
* @returns {Promise<System>} Promise of the global system
|
|
30
|
+
*/
|
|
31
|
+
findGlobalSystem(): Promise<System>;
|
|
32
|
+
/**
|
|
33
|
+
* Find a system by its UID
|
|
34
|
+
* @param {string} uid Unique Identifier
|
|
35
|
+
* @returns {Promise<System>} Promise of a system
|
|
36
|
+
*/
|
|
37
|
+
findSystemByUID(uid: string): Promise<System>;
|
|
38
|
+
/**
|
|
39
|
+
* Find a system uid by an object
|
|
40
|
+
* @param {DataObject} object Data object to get system for
|
|
41
|
+
* @returns {Promise<string>} Promise of a system uid if found
|
|
42
|
+
*/
|
|
43
|
+
findSystemUIDByObject(object: DataObject): Promise<string>;
|
|
44
|
+
/**
|
|
45
|
+
* Find a system by an object
|
|
46
|
+
* @param {DataObject} object Data object to get system for
|
|
47
|
+
* @returns {Promise<System>} Promise of a system if found
|
|
48
|
+
*/
|
|
49
|
+
findSystemByObject(object: DataObject): Promise<System>;
|
|
50
|
+
}
|
|
51
|
+
export interface VSLAMServiceOptions {
|
|
52
|
+
/**
|
|
53
|
+
* ORB vocabulary file path
|
|
54
|
+
*/
|
|
55
|
+
vocabularyFile?: string;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=VSLAMService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VSLAMService.d.ts","sourceRoot":"","sources":["../../../src/service/VSLAMService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAU,MAAM,EAAE,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,qBAAa,YAAa,SAAQ,OAAO;IACrC,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IACnD,SAAS,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IAC5D,SAAS,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAa;IAC9D,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC;gBAE3B,OAAO,CAAC,EAAE,mBAAmB;IAKzC;;;;;;OAMG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBtE;;;;OAIG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B9C;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAInC;;;;OAIG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM7C;;;;OAIG;IACH,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAU1D;;;;OAIG;IACH,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;CAO1D;AAED,MAAM,WAAW,mBAAmB;IAChC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// npmlog is deprecated at every published version, and this file used four of its
|
|
2
|
+
// calls for plain prefixed logging. Kept as a local shim rather than pulling in a
|
|
3
|
+
// replacement dependency for an install script.
|
|
4
|
+
const log = {
|
|
5
|
+
info: (prefix, message) => console.log(`${prefix} ${message}`),
|
|
6
|
+
warn: (prefix, message) => console.warn(`${prefix} ${message}`),
|
|
7
|
+
error: (...args) => console.error(...args),
|
|
8
|
+
}
|
|
9
|
+
const path = require('path')
|
|
10
|
+
const child_process = require('child_process')
|
|
11
|
+
const { OpenCVBuilder } = require('@u4/opencv-build')
|
|
12
|
+
|
|
13
|
+
function resolvePath(filePath, file) {
|
|
14
|
+
if (!filePath) {
|
|
15
|
+
return undefined
|
|
16
|
+
}
|
|
17
|
+
return (file ? path.resolve(filePath, file) : path.resolve(filePath)).replace(/\\/g, '/')
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
const OPENCV_INCLUDE_DIR = resolvePath(process.env.OPENCV_INCLUDE_DIR)
|
|
22
|
+
const OPENVSLAM_INCLUDE_DIR = resolvePath(process.env.OPENVSLAM_INCLUDE_DIR)
|
|
23
|
+
const OPENCV_LIB_DIR = resolvePath(process.env.OPENCV_LIB_DIR)
|
|
24
|
+
const OPENVSLAM_LIB_DIR = resolvePath(process.env.OPENVSLAM_LIB_DIR)
|
|
25
|
+
|
|
26
|
+
// The node-gyp build below links against a system OpenVSLAM/stella_vslam, which
|
|
27
|
+
// only exists in this project's openvslam-nodejs image (see docker.yml). Without
|
|
28
|
+
// these set there is nothing to compile against, and every path.join() below threw
|
|
29
|
+
// ERR_INVALID_ARG_TYPE on the undefined value -- so `npm ci` could not complete at
|
|
30
|
+
// all on a plain machine, taking the TypeScript build, lint and docs down with it.
|
|
31
|
+
// Skip the native step instead, loudly.
|
|
32
|
+
if (!OPENVSLAM_INCLUDE_DIR || !OPENVSLAM_LIB_DIR || !OPENCV_INCLUDE_DIR || !OPENCV_LIB_DIR) {
|
|
33
|
+
log.warn(
|
|
34
|
+
'install',
|
|
35
|
+
'OPENCV_INCLUDE_DIR, OPENCV_LIB_DIR, OPENVSLAM_INCLUDE_DIR and OPENVSLAM_LIB_DIR ' +
|
|
36
|
+
'must all be set to build the native bindings; skipping node-gyp. The JavaScript ' +
|
|
37
|
+
'is installed, but anything touching the native addon will not work.',
|
|
38
|
+
)
|
|
39
|
+
process.exit(0)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const includes = [
|
|
43
|
+
OPENCV_INCLUDE_DIR,
|
|
44
|
+
OPENVSLAM_INCLUDE_DIR,
|
|
45
|
+
path.join(OPENVSLAM_INCLUDE_DIR,"../3rd", "json", "include"),
|
|
46
|
+
path.join(OPENVSLAM_INCLUDE_DIR,"../3rd", "spdlog", "include"),
|
|
47
|
+
path.join(OPENVSLAM_INCLUDE_DIR,"../3rd", "FBoW", "include"),
|
|
48
|
+
"/usr/local/include/eigen3",
|
|
49
|
+
"/usr/include/eigen3",
|
|
50
|
+
"/usr/local/include/g2o",
|
|
51
|
+
"/usr/local/include/sioclient",
|
|
52
|
+
"/usr/local/include/",
|
|
53
|
+
"/usr/include/",
|
|
54
|
+
"/usr/include/g2o",
|
|
55
|
+
"node_modules/@u4/opencv4nodejs/cc",
|
|
56
|
+
"node_modules/@u4/opencv4nodejs/cc/core"
|
|
57
|
+
]
|
|
58
|
+
|
|
59
|
+
const opencvBuilder = new OpenCVBuilder();
|
|
60
|
+
const libraries = [
|
|
61
|
+
"-L" + OPENCV_LIB_DIR,
|
|
62
|
+
...opencvBuilder.getLibs.getLibs()
|
|
63
|
+
.filter(lib => lib.libPath).map(lib => "-lopencv_" + lib.opencvModule),
|
|
64
|
+
"-Wl,-rpath=" + OPENCV_LIB_DIR,
|
|
65
|
+
"-L" + OPENVSLAM_LIB_DIR,
|
|
66
|
+
"-Wl,-rpath=" + OPENVSLAM_LIB_DIR,
|
|
67
|
+
"-lstella_vslam",
|
|
68
|
+
"-lsocket_publisher"
|
|
69
|
+
]
|
|
70
|
+
|
|
71
|
+
log.info('install', `using following includes: \n${includes.join("\n")}\n`)
|
|
72
|
+
log.info('install', `using following libraries: \n${libraries.join("\n")}\n`)
|
|
73
|
+
|
|
74
|
+
process.env['OPENVSLAM_INCLUDES'] = includes.join('\n')
|
|
75
|
+
process.env['OPENVSLAM_LIBRARIES'] = libraries.join('\n')
|
|
76
|
+
|
|
77
|
+
const nodegypCmd = 'node-gyp rebuild'
|
|
78
|
+
|
|
79
|
+
log.info('install', `spawning node gyp process: ${nodegypCmd}`)
|
|
80
|
+
const child = child_process.exec(nodegypCmd, { maxBuffer: Infinity }, function(err, stdout, stderr) {
|
|
81
|
+
const _err = err || stderr
|
|
82
|
+
if (_err) log.error(_err)
|
|
83
|
+
})
|
|
84
|
+
child.stdout.pipe(process.stdout)
|
|
85
|
+
child.stderr.pipe(process.stderr)
|