lookout-config 1.22.0__py3-none-any.whl → 1.23.0__py3-none-any.whl
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.
- lookout_config/launch_parameters.py +291 -296
- lookout_config/schemas/lookout.schema.json +5 -9
- {lookout_config-1.22.0.dist-info → lookout_config-1.23.0.dist-info}/METADATA +1 -1
- {lookout_config-1.22.0.dist-info → lookout_config-1.23.0.dist-info}/RECORD +7 -7
- {lookout_config-1.22.0.dist-info → lookout_config-1.23.0.dist-info}/WHEEL +0 -0
- {lookout_config-1.22.0.dist-info → lookout_config-1.23.0.dist-info}/top_level.txt +0 -0
- {lookout_config-1.22.0.dist-info → lookout_config-1.23.0.dist-info}/zip-safe +0 -0
@@ -2,19 +2,261 @@
|
|
2
2
|
|
3
3
|
from __future__ import annotations
|
4
4
|
|
5
|
+
from enum import Enum
|
5
6
|
from typing import List, Optional
|
6
7
|
|
7
8
|
from pydantic import BaseModel, Field
|
8
9
|
|
9
10
|
|
10
|
-
class
|
11
|
+
class WebBridgeParameters(BaseModel):
|
12
|
+
address: Optional[str] = Field(
|
13
|
+
None, description="The host address to bind the WebSocket server to"
|
14
|
+
)
|
15
|
+
asset_uri_allowlist: Optional[List[str]] = Field(
|
16
|
+
None,
|
17
|
+
description="List of regular expressions (ECMAScript) of whitelisted parameter names.",
|
18
|
+
)
|
19
|
+
best_effort_qos_send_buffer_limit: Optional[int] = Field(
|
20
|
+
None,
|
21
|
+
description="Connection send buffer limit in bytes for 'best_effort' messages",
|
22
|
+
)
|
23
|
+
best_effort_qos_topic_whitelist: Optional[List[str]] = Field(
|
24
|
+
None,
|
25
|
+
description="List of regular expressions (ECMAScript) for topics that should be forced to use 'best_effort' QoS. Unmatched topics will use 'reliable' QoS if ALL publishers are 'reliable', 'best_effort' if any publishers are 'best_effort'.",
|
26
|
+
)
|
27
|
+
capabilities: Optional[List[str]] = Field(None, description="Server capabilities")
|
28
|
+
certfile: Optional[str] = Field(None, description="Path to the certificate to use for TLS")
|
29
|
+
client_topic_whitelist: Optional[List[str]] = Field(
|
30
|
+
None,
|
31
|
+
description="List of regular expressions (ECMAScript) of whitelisted parameter names.",
|
32
|
+
)
|
33
|
+
disable_load_message: Optional[bool] = Field(
|
34
|
+
None,
|
35
|
+
description="Do not publish as loaned message when publishing a client message",
|
36
|
+
)
|
37
|
+
include_hidden: Optional[bool] = Field(None, description="Include hidden topics and services")
|
38
|
+
keyfile: Optional[str] = Field(None, description="Path to the private key to use for TLS")
|
39
|
+
max_qos_depth: Optional[int] = Field(
|
40
|
+
None, description="Maximum depth used for the QoS profile of subscriptions."
|
41
|
+
)
|
42
|
+
min_qos_depth: Optional[int] = Field(
|
43
|
+
None, description="Minimum depth used for the QoS profile of subscriptions."
|
44
|
+
)
|
45
|
+
param_whitelist: Optional[List[str]] = Field(
|
46
|
+
None,
|
47
|
+
description="List of regular expressions (ECMAScript) of whitelisted parameter names.",
|
48
|
+
)
|
49
|
+
port: Optional[int] = Field(None, description="The TCP port to bind the WebSocket server to")
|
50
|
+
send_buffer_limit: Optional[int] = Field(
|
51
|
+
None,
|
52
|
+
description="Connection send buffer limit in bytes. Messages will be dropped when a connection's send buffer reaches this limit to avoid a queue of outdated messages building up.",
|
53
|
+
)
|
54
|
+
service_whitelist: Optional[List[str]] = Field(
|
55
|
+
None,
|
56
|
+
description="List of regular expressions (ECMAScript) of whitelisted service names.",
|
57
|
+
)
|
58
|
+
tls: Optional[bool] = Field(
|
59
|
+
None, description="Use Transport Layer Security for encrypted communication"
|
60
|
+
)
|
61
|
+
topic_whitelist: Optional[List[str]] = Field(
|
62
|
+
None,
|
63
|
+
description="List of regular expressions (ECMAScript) of whitelisted topic names.",
|
64
|
+
)
|
65
|
+
use_compression: Optional[bool] = Field(
|
66
|
+
None,
|
67
|
+
description="Use websocket compression (permessage-deflate). Suited for connections with smaller bandwidth, at the cost of additional CPU load.",
|
68
|
+
)
|
69
|
+
|
70
|
+
|
71
|
+
class Track(BaseModel):
|
72
|
+
stale_timeout: Optional[float] = Field(
|
73
|
+
None,
|
74
|
+
description="Time in seconds before a track is considered stale and removed",
|
75
|
+
)
|
76
|
+
spawn_radius: Optional[float] = Field(
|
77
|
+
None, description="Radius in meters around the vessel to spawn tracks"
|
78
|
+
)
|
79
|
+
sources_enabled: Optional[List[str]] = Field(
|
80
|
+
None, description="The sources of tracks that will spawn vessels in MIS-SIM"
|
81
|
+
)
|
82
|
+
|
83
|
+
|
84
|
+
class OceanDrift(BaseModel):
|
85
|
+
speed: Optional[float] = Field(None, description="in m/s")
|
86
|
+
direction: Optional[float] = Field(None, description="degrees clockwise from north")
|
87
|
+
period: Optional[float] = Field(None, description="in seconds")
|
88
|
+
period_amplitude: Optional[float] = Field(None, description="in m/s")
|
89
|
+
|
90
|
+
|
91
|
+
class VesselManagerParameters(BaseModel):
|
92
|
+
enabled: Optional[bool] = Field(
|
93
|
+
None, description="Whether to enable the vessel manager or not"
|
94
|
+
)
|
95
|
+
vessels: Optional[str] = Field(None, description="List of vessels")
|
96
|
+
hifi_mode: Optional[bool] = Field(
|
97
|
+
None, description="Should we use the low-fidelity topic suffix"
|
98
|
+
)
|
99
|
+
objects_publish_rate: Optional[float] = Field(
|
100
|
+
None, description="Rate at which to publish objects in Hz"
|
101
|
+
)
|
102
|
+
track: Optional[Track] = None
|
103
|
+
ocean_drift: Optional[OceanDrift] = None
|
104
|
+
|
105
|
+
|
106
|
+
class DiagnosticUpdater(BaseModel):
|
107
|
+
period: Optional[float] = Field(None, description="")
|
108
|
+
use_fqn: Optional[bool] = Field(None, description="")
|
109
|
+
|
110
|
+
|
111
|
+
class DataPlayerParameters(BaseModel):
|
112
|
+
bag_directory: Optional[str] = Field(None, description="")
|
113
|
+
diagnostic_updater: Optional[DiagnosticUpdater] = None
|
114
|
+
storage_id: Optional[str] = Field(None, description="")
|
115
|
+
|
116
|
+
|
117
|
+
class DataRecorderParameters(BaseModel):
|
118
|
+
bag_directory: Optional[str] = Field(None, description="")
|
119
|
+
diagnostic_updater: Optional[DiagnosticUpdater] = None
|
120
|
+
storage_id: Optional[str] = Field(None, description="")
|
121
|
+
storage_preset_profile: Optional[str] = Field(None, description="")
|
122
|
+
topic_exclude_regexs: Optional[List[str]] = Field(None, description="")
|
123
|
+
topic_include_regexs: Optional[List[str]] = Field(None, description="")
|
124
|
+
trigger_topic_active: Optional[bool] = Field(None, description="")
|
125
|
+
|
126
|
+
|
127
|
+
class TypeEnum(Enum):
|
128
|
+
aws_s3 = "aws_s3"
|
129
|
+
azure_blob = "azure_blob"
|
130
|
+
microsoft_onedrive = "microsoft_onedrive"
|
131
|
+
sftp = "sftp"
|
132
|
+
|
133
|
+
|
134
|
+
class Config(BaseModel):
|
135
|
+
access_key_id: Optional[str] = Field(None, description="AWS access key ID")
|
136
|
+
secret_access_key: Optional[str] = Field(None, description="AWS secret access key")
|
137
|
+
region: Optional[str] = Field(None, description="AWS region")
|
138
|
+
endpoint: Optional[str] = Field(None, description="AWS S3 endpoint URL")
|
139
|
+
|
140
|
+
|
141
|
+
class AwsS3(BaseModel):
|
142
|
+
config: Optional[Config] = Field(
|
143
|
+
None,
|
144
|
+
description="JSON schema used to configure and authenticate the remote destination.",
|
145
|
+
)
|
146
|
+
|
147
|
+
|
148
|
+
class Config1(BaseModel):
|
149
|
+
sas_url: Optional[str] = Field(None, description="Access URL including SAS token")
|
150
|
+
|
151
|
+
|
152
|
+
class AzureBlob(BaseModel):
|
153
|
+
config: Optional[Config1] = Field(
|
154
|
+
None,
|
155
|
+
description="JSON schema used to configure and authenticate the remote destination.",
|
156
|
+
)
|
157
|
+
|
158
|
+
|
159
|
+
class Config2(BaseModel):
|
160
|
+
account: Optional[str] = Field(None, description="OneDrive account name")
|
161
|
+
client_id: Optional[str] = Field(None, description="Client ID for OneDrive")
|
162
|
+
client_secret: Optional[str] = Field(None, description="Client secret for OneDrive")
|
163
|
+
tenant: Optional[str] = Field(None, description="Tenant ID for OneDrive")
|
164
|
+
|
165
|
+
|
166
|
+
class MicrosoftOnedrive(BaseModel):
|
167
|
+
config: Optional[Config2] = Field(
|
168
|
+
None,
|
169
|
+
description="JSON schema used to configure and authenticate the remote destination.",
|
170
|
+
)
|
171
|
+
|
172
|
+
|
173
|
+
class Config3(BaseModel):
|
174
|
+
host: Optional[str] = Field(None, description="SFTP host")
|
175
|
+
user: Optional[str] = Field(None, description="Host username")
|
176
|
+
pass_: Optional[str] = Field(None, alias="pass", description="Host password")
|
177
|
+
|
178
|
+
|
179
|
+
class Sftp(BaseModel):
|
180
|
+
config: Optional[Config3] = Field(
|
181
|
+
None,
|
182
|
+
description="JSON schema used to configure and authenticate the remote destination.",
|
183
|
+
)
|
184
|
+
|
185
|
+
|
186
|
+
class UploadDestination(BaseModel):
|
187
|
+
name: Optional[str] = Field(None, description="Identifying name of the upload destination.")
|
188
|
+
type: Optional[List[TypeEnum]] = Field(None, description="Type of upload destination")
|
189
|
+
upload_path: Optional[str] = Field(
|
190
|
+
None, description="Path at the destination to upload files to."
|
191
|
+
)
|
192
|
+
aws_s3: Optional[AwsS3] = None
|
193
|
+
azure_blob: Optional[AzureBlob] = None
|
194
|
+
microsoft_onedrive: Optional[MicrosoftOnedrive] = None
|
195
|
+
sftp: Optional[Sftp] = None
|
196
|
+
|
197
|
+
|
198
|
+
class DataHubParameters(BaseModel):
|
199
|
+
port: Optional[int] = Field(None, description="Port for the HTTP server.")
|
200
|
+
bag_directory: Optional[str] = Field(
|
201
|
+
None, description="Directory containing recording bag files."
|
202
|
+
)
|
203
|
+
upload_queue_size: Optional[int] = Field(
|
204
|
+
None, description="Max number of items in the upload queue."
|
205
|
+
)
|
206
|
+
upload_destination: Optional[UploadDestination] = None
|
207
|
+
diagnostic_updater: Optional[DiagnosticUpdater] = None
|
208
|
+
|
209
|
+
|
210
|
+
class SimulatedClockParameters(BaseModel):
|
211
|
+
enabled: Optional[bool] = Field(
|
212
|
+
None, description="Whether to enable the simulated clock or not"
|
213
|
+
)
|
214
|
+
sim_speed: Optional[float] = Field(None, description="Speed at which to run the simulation")
|
215
|
+
publish_rate: Optional[float] = Field(
|
216
|
+
None, description="Rate at which to publish the clock at?"
|
217
|
+
)
|
218
|
+
|
219
|
+
|
220
|
+
class HifiVesselManagerParameters(BaseModel):
|
221
|
+
replay_mode: Optional[bool] = Field(None, description="Is the node in replay mode?")
|
222
|
+
|
223
|
+
|
224
|
+
class ScenarioRunnerParameters(BaseModel):
|
225
|
+
scenarios: Optional[List[str]] = Field(None, description="List of scenarios")
|
226
|
+
|
227
|
+
|
228
|
+
class NodeConfigurationModel(BaseModel):
|
229
|
+
node_name_regex: str = Field(..., title="Node Name Regex")
|
230
|
+
parameter_name_regexes: List[str] = Field(..., title="Parameter Name Regexes")
|
231
|
+
|
232
|
+
|
233
|
+
class ParameterPersistenceParameters(BaseModel):
|
234
|
+
params_path: Optional[str] = Field(
|
235
|
+
None, description="Path to the file where the parameters are stored"
|
236
|
+
)
|
237
|
+
file_header: Optional[str] = Field(
|
238
|
+
None, description="A message to add to the top of the params file"
|
239
|
+
)
|
240
|
+
path_within_file: Optional[str] = Field(
|
241
|
+
None, description="Path within the file to store the parameters"
|
242
|
+
)
|
243
|
+
persistent_parameters: Optional[List[NodeConfigurationModel]] = Field(
|
244
|
+
None, description="Regex describing which parameters should persist"
|
245
|
+
)
|
246
|
+
ignore_namespace: Optional[str] = Field(
|
247
|
+
None,
|
248
|
+
description="Which (if any) part of the node namespace to ignore. Treated as regex.",
|
249
|
+
)
|
250
|
+
|
251
|
+
|
252
|
+
class Bow(BaseModel):
|
11
253
|
contains: Optional[List[str]] = Field(None, description="")
|
12
254
|
path: Optional[str] = Field(None, description="")
|
13
255
|
type: Optional[str] = Field(None, description="")
|
14
256
|
|
15
257
|
|
16
258
|
class Analyzers(BaseModel):
|
17
|
-
|
259
|
+
bow: Optional[Bow] = None
|
18
260
|
|
19
261
|
|
20
262
|
class Cameras(BaseModel):
|
@@ -23,13 +265,7 @@ class Cameras(BaseModel):
|
|
23
265
|
type: Optional[str] = Field(None, description="")
|
24
266
|
|
25
267
|
|
26
|
-
class
|
27
|
-
find_and_remove_prefix: Optional[List[str]] = Field(None, description="")
|
28
|
-
path: Optional[str] = Field(None, description="")
|
29
|
-
type: Optional[str] = Field(None, description="")
|
30
|
-
|
31
|
-
|
32
|
-
class ObjectTracker(BaseModel):
|
268
|
+
class Recorder(BaseModel):
|
33
269
|
find_and_remove_prefix: Optional[List[str]] = Field(None, description="")
|
34
270
|
path: Optional[str] = Field(None, description="")
|
35
271
|
type: Optional[str] = Field(None, description="")
|
@@ -66,31 +302,28 @@ class VesselComputer(BaseModel):
|
|
66
302
|
|
67
303
|
class DiagnosticAggregatorParameters(BaseModel):
|
68
304
|
cameras: Optional[Cameras] = None
|
69
|
-
object_alerts: Optional[ObjectAlerts] = None
|
70
|
-
object_tracker: Optional[ObjectTracker] = None
|
71
305
|
path: Optional[str] = Field(None, description="")
|
72
306
|
publish_values: Optional[bool] = Field(None, description="")
|
307
|
+
recorder: Optional[Recorder] = None
|
73
308
|
roi_detector: Optional[RoiDetector] = None
|
74
309
|
roi_tracker: Optional[RoiTracker] = None
|
75
310
|
vessel_computer: Optional[VesselComputer] = None
|
76
311
|
|
77
312
|
|
78
|
-
class DiagnosticUpdater(BaseModel):
|
79
|
-
period: Optional[float] = Field(None, description="")
|
80
|
-
use_fqn: Optional[bool] = Field(None, description="")
|
81
|
-
|
82
|
-
|
83
313
|
class RoiTrackerParameters(BaseModel):
|
84
314
|
detection_threshold: Optional[float] = Field(
|
85
315
|
None, description="Detections above this threshold will be tracked"
|
86
316
|
)
|
87
317
|
iou_threshold: Optional[float] = Field(
|
88
|
-
None,
|
89
|
-
description="IoU threshold for association of dets with propagated track boxes",
|
318
|
+
None, description="Iou association threshold for dets to tracks"
|
90
319
|
)
|
320
|
+
secondary_assoc_threshold: Optional[float] = Field(
|
321
|
+
None, description="Secondary association threshold for dets to tracks"
|
322
|
+
)
|
323
|
+
secondary_assoc_method: Optional[str] = Field(None, description="Secondary association method")
|
91
324
|
max_age: Optional[int] = Field(
|
92
325
|
None,
|
93
|
-
description="
|
326
|
+
description="Maximum number of consecutive misses before the track is deleted",
|
94
327
|
)
|
95
328
|
min_hits: Optional[int] = Field(None, description="Min number of detections to create track")
|
96
329
|
classification_history_window: Optional[int] = Field(
|
@@ -101,24 +334,14 @@ class RoiTrackerParameters(BaseModel):
|
|
101
334
|
None, description="Reset the tracker if an old timestamp is received"
|
102
335
|
)
|
103
336
|
roi_topics: Optional[List[str]] = Field(
|
104
|
-
None, description="List of topics to subscribe to for ROIs"
|
337
|
+
None, description="REQUIRES RESTART. List of topics to subscribe to for ROIs"
|
105
338
|
)
|
106
339
|
roi_track_topics: Optional[List[str]] = Field(
|
107
|
-
None, description="List of topics to publish tracked ROIs"
|
340
|
+
None, description="REQUIRES RESTART. List of topics to publish tracked ROIs"
|
108
341
|
)
|
109
342
|
diagnostic_updater: Optional[DiagnosticUpdater] = None
|
110
343
|
|
111
344
|
|
112
|
-
class DataRecorderParameters(BaseModel):
|
113
|
-
bag_directory: Optional[str] = Field(None, description="")
|
114
|
-
diagnostic_updater: Optional[DiagnosticUpdater] = None
|
115
|
-
storage_id: Optional[str] = Field(None, description="")
|
116
|
-
storage_preset_profile: Optional[str] = Field(None, description="")
|
117
|
-
topic_exclude_regexs: Optional[List[str]] = Field(None, description="")
|
118
|
-
topic_include_regexs: Optional[List[str]] = Field(None, description="")
|
119
|
-
trigger_topic_active: Optional[bool] = Field(None, description="")
|
120
|
-
|
121
|
-
|
122
345
|
class CoreUsageAverageERROR(BaseModel):
|
123
346
|
max: Optional[float] = Field(None, description="")
|
124
347
|
min: Optional[float] = Field(None, description="")
|
@@ -172,7 +395,7 @@ class RAM(BaseModel):
|
|
172
395
|
Usage_Percent_WARN: Optional[UsagePercentWARN] = Field(None, alias="Usage Percent WARN")
|
173
396
|
|
174
397
|
|
175
|
-
class
|
398
|
+
class DiagnosticUpdater4(BaseModel):
|
176
399
|
CPU: Optional[CPU] = None
|
177
400
|
Disk: Optional[Disk] = None
|
178
401
|
RAM: Optional[RAM] = None
|
@@ -182,7 +405,7 @@ class DiagnosticUpdater2(BaseModel):
|
|
182
405
|
|
183
406
|
class SystemResourceMonitorParameters(BaseModel):
|
184
407
|
calculation_rate: Optional[float] = Field(None, description="")
|
185
|
-
diagnostic_updater: Optional[
|
408
|
+
diagnostic_updater: Optional[DiagnosticUpdater4] = None
|
186
409
|
diagnostics: Optional[bool] = Field(None, description="")
|
187
410
|
diagnostics_log: Optional[bool] = Field(None, description="")
|
188
411
|
disk_directories: Optional[List[str]] = Field(None, description="")
|
@@ -206,238 +429,8 @@ class GeolocationParameters(BaseModel):
|
|
206
429
|
)
|
207
430
|
|
208
431
|
|
209
|
-
class
|
210
|
-
|
211
|
-
parameter_name_regexes: List[str] = Field(..., title="Parameter Name Regexes")
|
212
|
-
dedicated_file_path: Optional[str] = Field("", title="Dedicated File Path")
|
213
|
-
|
214
|
-
|
215
|
-
class ParameterPersistenceParameters(BaseModel):
|
216
|
-
params_path: Optional[str] = Field(
|
217
|
-
None, description="Path to the file where the parameters are stored"
|
218
|
-
)
|
219
|
-
file_header: Optional[str] = Field(
|
220
|
-
None, description="A message to add to the top of the params file"
|
221
|
-
)
|
222
|
-
path_within_file: Optional[str] = Field(
|
223
|
-
None, description="Path within the file to store the parameters"
|
224
|
-
)
|
225
|
-
persistent_parameters: Optional[List[NodeConfigurationModel]] = Field(
|
226
|
-
None, description="Regex describing which parameters should persist"
|
227
|
-
)
|
228
|
-
ignore_namespace: Optional[str] = Field(
|
229
|
-
None,
|
230
|
-
description="Which (if any) part of the node namespace to ignore. Treated as regex.",
|
231
|
-
)
|
232
|
-
|
233
|
-
|
234
|
-
class DiagnosticUpdater3(BaseModel):
|
235
|
-
period: Optional[float] = Field(None, description="")
|
236
|
-
use_fqn: Optional[bool] = Field(None, description="")
|
237
|
-
|
238
|
-
|
239
|
-
class DetectorOnnxParameters(BaseModel):
|
240
|
-
enabled: Optional[bool] = Field(None, description="Should the detector be enabled")
|
241
|
-
use_nms: Optional[bool] = Field(None, description="Use NMS to suppress overlapping boxes")
|
242
|
-
rate: Optional[float] = Field(
|
243
|
-
None, description="REQUIRES RESTART. Batch inference callback rate"
|
244
|
-
)
|
245
|
-
image_buffer_size: Optional[int] = Field(
|
246
|
-
None, description="Number of images to store in buffer for batch inference"
|
247
|
-
)
|
248
|
-
onnx_batch_size: Optional[int] = Field(
|
249
|
-
None, description="Only for .onnx models. Batch size for inference"
|
250
|
-
)
|
251
|
-
threshold: Optional[float] = Field(
|
252
|
-
None, description="Only publish rois above this objectness threshold"
|
253
|
-
)
|
254
|
-
nms_iou_threshold: Optional[float] = Field(
|
255
|
-
None,
|
256
|
-
description="Keeps the highest-scoring ROI where overlaps (IoU >= threshold) occur. Threshold=1 allows all overlaps; 0 suppresses any overlap. Used when use_nms=True",
|
257
|
-
)
|
258
|
-
model_path: Optional[str] = Field(None, description="Path to the onnx or trt engine model")
|
259
|
-
best_effort: Optional[bool] = Field(
|
260
|
-
None, description="REQUIRES RESTART. Enable BEST_EFFORT reliability for frame subscriber"
|
261
|
-
)
|
262
|
-
ignore_regions: Optional[str] = Field(
|
263
|
-
None, description="REQUIRES RESTART. Region of image for detector to ignore"
|
264
|
-
)
|
265
|
-
camera_frame_topics: Optional[List[str]] = Field(
|
266
|
-
None, description="REQUIRES RESTART. Topics to subscribe to for camera frames"
|
267
|
-
)
|
268
|
-
roi_topics: Optional[List[str]] = Field(
|
269
|
-
None, description="REQUIRES RESTART. Topics to publish ROIs to"
|
270
|
-
)
|
271
|
-
class_names: Optional[List[str]] = Field(
|
272
|
-
None,
|
273
|
-
description="REQUIRES RESTART. Only needed if using TensorRT. Class names to be listed in the order they were trained on",
|
274
|
-
)
|
275
|
-
diagnostic_updater: Optional[DiagnosticUpdater3] = None
|
276
|
-
|
277
|
-
|
278
|
-
class VesselOffsetsParameters(BaseModel):
|
279
|
-
frame_prefix: Optional[str] = Field(None, description="")
|
280
|
-
ignore_timestamp: Optional[bool] = Field(None, description="")
|
281
|
-
publish_frequency: Optional[float] = Field(None, description="")
|
282
|
-
robot_description: Optional[str] = Field(None, description="")
|
283
|
-
|
284
|
-
|
285
|
-
class Ais(BaseModel):
|
286
|
-
heading_format: Optional[str] = Field(
|
287
|
-
None, description="Heading format for AIS messages. 'radians' or 'degrees'"
|
288
|
-
)
|
289
|
-
|
290
|
-
|
291
|
-
class ObjectTrackerParameters(BaseModel):
|
292
|
-
ownship_name: Optional[str] = Field(None, description="")
|
293
|
-
ownship_mmsi: Optional[str] = Field(None, description="The MMSI of the ego vessel to ignore")
|
294
|
-
sources_fused: Optional[List[str]] = Field(None, description="")
|
295
|
-
sources_enabled: Optional[List[str]] = Field(None, description="")
|
296
|
-
required_times_seen_arpa: Optional[int] = Field(None, description="")
|
297
|
-
sources_back_projected: Optional[List[str]] = Field(
|
298
|
-
None, description="Project various sensor sources e.g. ais, arpa into the image"
|
299
|
-
)
|
300
|
-
use_geopose: Optional[bool] = Field(None, description="")
|
301
|
-
use_geopose_altitude: Optional[bool] = Field(None, description="")
|
302
|
-
max_time_diff: Optional[float] = Field(None, description="")
|
303
|
-
frame_id_base_link: Optional[str] = Field(None, description="")
|
304
|
-
horizon_padding: Optional[int] = Field(None, description="")
|
305
|
-
bearing_angle_tolerance: Optional[float] = Field(
|
306
|
-
None,
|
307
|
-
description="The maximum difference in bearing (degrees) between the object and the track for the object to be associated with the track.",
|
308
|
-
)
|
309
|
-
range_angle_tolerance: Optional[float] = Field(
|
310
|
-
None,
|
311
|
-
description="The maximum difference in range (m) between the object and the track for the object to be associated with the track.",
|
312
|
-
)
|
313
|
-
range_sensor_height: Optional[float] = Field(
|
314
|
-
None, description="The height of the range sensor (m)"
|
315
|
-
)
|
316
|
-
max_age_til_stale_rois: Optional[float] = Field(None, description="Age til stale (seconds)")
|
317
|
-
max_age_til_stale_arpa: Optional[float] = Field(None, description="Age til stale (seconds)")
|
318
|
-
max_age_til_stale_ais: Optional[float] = Field(None, description="Age til stale (seconds)")
|
319
|
-
max_age_til_stale_objects: Optional[float] = Field(None, description="Age til stale (seconds)")
|
320
|
-
roi_pf_sensitivity: Optional[float] = Field(None, description="Particle filter sensitivity")
|
321
|
-
roi_pf_dist_percentile: Optional[int] = Field(
|
322
|
-
None,
|
323
|
-
description="Particle filter distance percentile (to mean) for confident particles",
|
324
|
-
)
|
325
|
-
roi_pf_min_measurements: Optional[int] = Field(
|
326
|
-
None, description="Particle filter min number of measurements"
|
327
|
-
)
|
328
|
-
roi_pf_polygon_max_history: Optional[int] = Field(
|
329
|
-
None, description="Particle filter polygon max history"
|
330
|
-
)
|
331
|
-
roi_pf_polygon_max_update_hz: Optional[int] = Field(
|
332
|
-
None, description="Particle filter polygon max update hz"
|
333
|
-
)
|
334
|
-
roi_pf_measurement_pixel_error: Optional[float] = Field(
|
335
|
-
None, description="Particle filter pixel error (noise) for measurement update"
|
336
|
-
)
|
337
|
-
roi_pf_max_hist_mean_seconds: Optional[float] = Field(
|
338
|
-
None,
|
339
|
-
description="Particle filter maximum temporal filtering window for cloud means",
|
340
|
-
)
|
341
|
-
roi_pf_cloud_exp_decay_rate: Optional[float] = Field(
|
342
|
-
None,
|
343
|
-
description="Particle filter decay rate for particle cloud when no measurements",
|
344
|
-
)
|
345
|
-
publish_rate: Optional[float] = Field(None, description="Publish rate (Hz)")
|
346
|
-
publish_particles: Optional[bool] = Field(
|
347
|
-
None, description="Publish particles to a pointcloud topic"
|
348
|
-
)
|
349
|
-
camera_info_topics: Optional[List[str]] = Field(
|
350
|
-
None, description="List of camera info topics to use for geolocation"
|
351
|
-
)
|
352
|
-
roi_track_topics: Optional[List[str]] = Field(None, description="List of roi_track topics")
|
353
|
-
ais: Optional[Ais] = None
|
354
|
-
exclusion_zone_radius: Optional[float] = Field(
|
355
|
-
None,
|
356
|
-
description="Objects that are within this zone when first detected are ignored.",
|
357
|
-
)
|
358
|
-
diagnostic_updater: Optional[DiagnosticUpdater3] = None
|
359
|
-
|
360
|
-
|
361
|
-
class ObjectHistoryParameters(BaseModel):
|
362
|
-
filter: Optional[str] = Field(None, description="")
|
363
|
-
alerts: Optional[List[str]] = Field(None, description="")
|
364
|
-
object_stale_timeout: Optional[float] = Field(
|
365
|
-
None, description="How long to wait before removing object from history"
|
366
|
-
)
|
367
|
-
notifications_use_sim_time: Optional[bool] = Field(
|
368
|
-
None, description="Whether to use the sim time for alerts"
|
369
|
-
)
|
370
|
-
diagnostic_updater: Optional[DiagnosticUpdater3] = None
|
371
|
-
|
372
|
-
|
373
|
-
class LookoutGreenstreamBringupParameters(BaseModel):
|
374
|
-
launch_package: Optional[str] = Field(None, description="")
|
375
|
-
launch_executable: Optional[str] = Field(None, description="")
|
376
|
-
|
377
|
-
|
378
|
-
class LookoutConfigManagerParameters(BaseModel):
|
379
|
-
launch_package: Optional[str] = Field(None, description="")
|
380
|
-
launch_executable: Optional[str] = Field(None, description="")
|
381
|
-
|
382
|
-
|
383
|
-
class WebBridgeParameters(BaseModel):
|
384
|
-
address: Optional[str] = Field(
|
385
|
-
None, description="The host address to bind the WebSocket server to"
|
386
|
-
)
|
387
|
-
asset_uri_allowlist: Optional[List[str]] = Field(
|
388
|
-
None,
|
389
|
-
description="List of regular expressions (ECMAScript) of whitelisted parameter names.",
|
390
|
-
)
|
391
|
-
best_effort_qos_send_buffer_limit: Optional[int] = Field(
|
392
|
-
None,
|
393
|
-
description="Connection send buffer limit in bytes for 'best_effort' messages",
|
394
|
-
)
|
395
|
-
best_effort_qos_topic_whitelist: Optional[List[str]] = Field(
|
396
|
-
None,
|
397
|
-
description="List of regular expressions (ECMAScript) for topics that should be forced to use 'best_effort' QoS. Unmatched topics will use 'reliable' QoS if ALL publishers are 'reliable', 'best_effort' if any publishers are 'best_effort'.",
|
398
|
-
)
|
399
|
-
capabilities: Optional[List[str]] = Field(None, description="Server capabilities")
|
400
|
-
certfile: Optional[str] = Field(None, description="Path to the certificate to use for TLS")
|
401
|
-
client_topic_whitelist: Optional[List[str]] = Field(
|
402
|
-
None,
|
403
|
-
description="List of regular expressions (ECMAScript) of whitelisted parameter names.",
|
404
|
-
)
|
405
|
-
disable_load_message: Optional[bool] = Field(
|
406
|
-
None,
|
407
|
-
description="Do not publish as loaned message when publishing a client message",
|
408
|
-
)
|
409
|
-
include_hidden: Optional[bool] = Field(None, description="Include hidden topics and services")
|
410
|
-
keyfile: Optional[str] = Field(None, description="Path to the private key to use for TLS")
|
411
|
-
max_qos_depth: Optional[int] = Field(
|
412
|
-
None, description="Maximum depth used for the QoS profile of subscriptions."
|
413
|
-
)
|
414
|
-
min_qos_depth: Optional[int] = Field(
|
415
|
-
None, description="Minimum depth used for the QoS profile of subscriptions."
|
416
|
-
)
|
417
|
-
param_whitelist: Optional[List[str]] = Field(
|
418
|
-
None,
|
419
|
-
description="List of regular expressions (ECMAScript) of whitelisted parameter names.",
|
420
|
-
)
|
421
|
-
port: Optional[int] = Field(None, description="The TCP port to bind the WebSocket server to")
|
422
|
-
send_buffer_limit: Optional[int] = Field(
|
423
|
-
None,
|
424
|
-
description="Connection send buffer limit in bytes. Messages will be dropped when a connection's send buffer reaches this limit to avoid a queue of outdated messages building up.",
|
425
|
-
)
|
426
|
-
service_whitelist: Optional[List[str]] = Field(
|
427
|
-
None,
|
428
|
-
description="List of regular expressions (ECMAScript) of whitelisted service names.",
|
429
|
-
)
|
430
|
-
tls: Optional[bool] = Field(
|
431
|
-
None, description="Use Transport Layer Security for encrypted communication"
|
432
|
-
)
|
433
|
-
topic_whitelist: Optional[List[str]] = Field(
|
434
|
-
None,
|
435
|
-
description="List of regular expressions (ECMAScript) of whitelisted topic names.",
|
436
|
-
)
|
437
|
-
use_compression: Optional[bool] = Field(
|
438
|
-
None,
|
439
|
-
description="Use websocket compression (permessage-deflate). Suited for connections with smaller bandwidth, at the cost of additional CPU load.",
|
440
|
-
)
|
432
|
+
class StubRoiPublisherParameters(BaseModel):
|
433
|
+
rate: Optional[float] = Field(None, description="Rate of detection (per second)")
|
441
434
|
|
442
435
|
|
443
436
|
class Camera(BaseModel):
|
@@ -467,6 +460,10 @@ class Rtsp(BaseModel):
|
|
467
460
|
ip_address: Optional[str] = Field(None, description="RTSP Camera IP address")
|
468
461
|
port: Optional[int] = Field(None, description="RTSP Camera port")
|
469
462
|
stream: Optional[str] = Field(None, description="RTSP Camera stream")
|
463
|
+
reference_meta_timestamp: Optional[bool] = Field(
|
464
|
+
None,
|
465
|
+
description="Enable reference meta timestamp for RTSP stream so that topic is published with the camera timestamp",
|
466
|
+
)
|
470
467
|
|
471
468
|
|
472
469
|
class Test(BaseModel):
|
@@ -603,7 +600,12 @@ class Publish(BaseModel):
|
|
603
600
|
topic: Optional[Topic] = None
|
604
601
|
|
605
602
|
|
606
|
-
class
|
603
|
+
class DiagnosticUpdater5(BaseModel):
|
604
|
+
period: Optional[float] = Field(None, description="")
|
605
|
+
use_fqn: Optional[bool] = Field(None, description="")
|
606
|
+
|
607
|
+
|
608
|
+
class PipelineBowColorParameters(BaseModel):
|
607
609
|
namespace_vessel_application: Optional[str] = Field(
|
608
610
|
None,
|
609
611
|
description="The namespace of the vessel and application, separated by '/'",
|
@@ -619,46 +621,39 @@ class PipelineBowStbdColorParameters(BaseModel):
|
|
619
621
|
source: Optional[Source] = None
|
620
622
|
undistort: Optional[Undistort] = None
|
621
623
|
publish: Optional[Publish] = None
|
622
|
-
diagnostic_updater: Optional[
|
624
|
+
diagnostic_updater: Optional[DiagnosticUpdater5] = None
|
623
625
|
|
624
626
|
|
625
|
-
class
|
627
|
+
class GstRosimagesinkBowColorParameters(BaseModel):
|
626
628
|
pass
|
627
629
|
|
628
630
|
|
629
|
-
class
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
k_intrinsic: Optional[List[float]] = Field(None, description="Intrinsic matrix")
|
638
|
-
distortion_kmat_alpha: Optional[float] = Field(
|
639
|
-
None,
|
640
|
-
description="Free scaling parameter for undistorted image between 0 (all pixels are valid), and 1 (all source pixels are retained i.e. max distortion FOV)",
|
641
|
-
)
|
642
|
-
publish_camera_info: Optional[bool] = Field(
|
643
|
-
None,
|
644
|
-
description="If false, will subscribe to an existing camera info topic instead for camera_info_distorted",
|
645
|
-
)
|
631
|
+
class LookoutConfigManagerParameters(BaseModel):
|
632
|
+
launch_package: Optional[str] = Field(None, description="")
|
633
|
+
launch_executable: Optional[str] = Field(None, description="")
|
634
|
+
|
635
|
+
|
636
|
+
class LookoutGreenstreamBringupParameters(BaseModel):
|
637
|
+
launch_package: Optional[str] = Field(None, description="")
|
638
|
+
launch_executable: Optional[str] = Field(None, description="")
|
646
639
|
|
647
640
|
|
648
641
|
class LaunchParameters(BaseModel):
|
642
|
+
web_bridge: Optional[WebBridgeParameters] = None
|
643
|
+
vessel_manager: Optional[VesselManagerParameters] = None
|
644
|
+
data_player: Optional[DataPlayerParameters] = None
|
645
|
+
data_recorder: Optional[DataRecorderParameters] = None
|
646
|
+
data_hub: Optional[DataHubParameters] = None
|
647
|
+
simulated_clock: Optional[SimulatedClockParameters] = None
|
648
|
+
hifi_vessel_manager: Optional[HifiVesselManagerParameters] = None
|
649
|
+
scenario_runner: Optional[ScenarioRunnerParameters] = None
|
650
|
+
parameter_persistence: Optional[ParameterPersistenceParameters] = None
|
649
651
|
diagnostic_aggregator: Optional[DiagnosticAggregatorParameters] = None
|
650
652
|
roi_tracker: Optional[RoiTrackerParameters] = None
|
651
|
-
data_recorder: Optional[DataRecorderParameters] = None
|
652
653
|
system_resource_monitor: Optional[SystemResourceMonitorParameters] = None
|
653
654
|
geolocation: Optional[GeolocationParameters] = None
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
object_tracker: Optional[ObjectTrackerParameters] = None
|
658
|
-
object_history: Optional[ObjectHistoryParameters] = None
|
659
|
-
lookout_greenstream_bringup: Optional[LookoutGreenstreamBringupParameters] = None
|
655
|
+
stub_roi_publisher: Optional[StubRoiPublisherParameters] = None
|
656
|
+
pipeline_bow_color: Optional[PipelineBowColorParameters] = None
|
657
|
+
gst_rosimagesink_bow_color: Optional[GstRosimagesinkBowColorParameters] = None
|
660
658
|
lookout_config_manager: Optional[LookoutConfigManagerParameters] = None
|
661
|
-
|
662
|
-
pipeline_bow_stbd_color: Optional[PipelineBowStbdColorParameters] = None
|
663
|
-
gst_rosimagesink_bow_stbd_color: Optional[GstRosimagesinkBowStbdColorParameters] = None
|
664
|
-
info_bow_stbd_color: Optional[InfoBowStbdColorParameters] = None
|
659
|
+
lookout_greenstream_bringup: Optional[LookoutGreenstreamBringupParameters] = None
|
@@ -15,6 +15,11 @@
|
|
15
15
|
"title": "Type",
|
16
16
|
"type": "string"
|
17
17
|
},
|
18
|
+
"publish_camera_info": {
|
19
|
+
"default": true,
|
20
|
+
"title": "Publish Camera Info",
|
21
|
+
"type": "boolean"
|
22
|
+
},
|
18
23
|
"ptz": {
|
19
24
|
"default": false,
|
20
25
|
"title": "Ptz",
|
@@ -52,9 +57,6 @@
|
|
52
57
|
"type": {
|
53
58
|
"const": "fastdds",
|
54
59
|
"default": "fastdds",
|
55
|
-
"enum": [
|
56
|
-
"fastdds"
|
57
|
-
],
|
58
60
|
"title": "Type",
|
59
61
|
"type": "string"
|
60
62
|
},
|
@@ -85,9 +87,6 @@
|
|
85
87
|
"type": {
|
86
88
|
"const": "simple",
|
87
89
|
"default": "simple",
|
88
|
-
"enum": [
|
89
|
-
"simple"
|
90
|
-
],
|
91
90
|
"title": "Type",
|
92
91
|
"type": "string"
|
93
92
|
},
|
@@ -112,9 +111,6 @@
|
|
112
111
|
"type": {
|
113
112
|
"const": "zenoh",
|
114
113
|
"default": "zenoh",
|
115
|
-
"enum": [
|
116
|
-
"zenoh"
|
117
|
-
],
|
118
114
|
"title": "Type",
|
119
115
|
"type": "string"
|
120
116
|
},
|
@@ -2,12 +2,12 @@ lookout_config/__init__.py,sha256=NKLSlCn7mb8HRbkOB6i6EBpvROLGRlZRcnHc5nm1zTk,17
|
|
2
2
|
lookout_config/generate_schemas.py,sha256=yFNvrZ6gie1tnTM_1TO8_wBa0lFHJAABSI3ZAZqw_Wg,457
|
3
3
|
lookout_config/generate_urdf.py,sha256=O5n0hNsRJwTgQnWdPZIg_LgpxlDQOzWv5IccjT7yDS4,2719
|
4
4
|
lookout_config/helpers.py,sha256=3GkGRPDzQ67I5srwcWoI8PI1dgrWvTsUwA8-yRUttLM,603
|
5
|
-
lookout_config/launch_parameters.py,sha256=
|
5
|
+
lookout_config/launch_parameters.py,sha256=Dyi6dcu2_6LB1iZ7cmobHJ-iaJcbeySNS22fpZuNTxk,25664
|
6
6
|
lookout_config/types.py,sha256=HMrHST658SpGVKrocsCe66E6x0aaYkBiYzTD-quY-Ys,4323
|
7
|
-
lookout_config/schemas/lookout.schema.json,sha256=
|
7
|
+
lookout_config/schemas/lookout.schema.json,sha256=NIekpXaauGsFJthrDfLkQzXCrQrVYmRRAynLlzYuym4,10615
|
8
8
|
lookout_config/test/lookout_config_test.py,sha256=TdOzIEWnyrckhmK7OtShtoWwSAP8QDCiKalNhvScd2U,73
|
9
|
-
lookout_config-1.
|
10
|
-
lookout_config-1.
|
11
|
-
lookout_config-1.
|
12
|
-
lookout_config-1.
|
13
|
-
lookout_config-1.
|
9
|
+
lookout_config-1.23.0.dist-info/METADATA,sha256=-ELvb5GmOtY6TphxVY8L5aeVTDds59YZK15TDEIREE4,1442
|
10
|
+
lookout_config-1.23.0.dist-info/WHEEL,sha256=beeZ86-EfXScwlR_HKu4SllMC9wUEj_8Z_4FJ3egI2w,91
|
11
|
+
lookout_config-1.23.0.dist-info/top_level.txt,sha256=IiZRgJhNrNL87uLMQm9lQRrMCqJnTOl7aYlA7zRSYyg,15
|
12
|
+
lookout_config-1.23.0.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
13
|
+
lookout_config-1.23.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|