Skip to content

Commit 335e2e0

Browse files
committed
fix
1 parent 9ec4932 commit 335e2e0

2 files changed

Lines changed: 195 additions & 1 deletion

File tree

Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
---
2+
paths: [khronos, khronos_ros]
3+
map_window:
4+
type: spatial
5+
max_radius_m: &spatial_window 8.0
6+
window_sec: &temporal_window 3.0
7+
active_window:
8+
type: ActiveWindow
9+
full_update_separation_s: 0.2
10+
volumetric_map:
11+
voxels_per_side: 16
12+
voxel_size: 0.1
13+
truncation_distance: 0.3
14+
with_semantics: true # Enable semantic layer for object detection
15+
projective_integrator:
16+
semantic_integrator: {type: SingleLabelIntegrator}
17+
object_detector:
18+
type: ConnectedSemantics
19+
min_cluster_size: 50 # pixels
20+
use_full_connectivity: true
21+
use_3d: true
22+
grid_size: 0.1 # m
23+
max_range: 5 # m, 0 for infinite.
24+
tracker:
25+
type: MaxIouTracker
26+
track_by: voxels # 'pixels', 'voxels', 'bounding_box'
27+
active_window_mode: spatial # "temporal", "spatial"
28+
min_semantic_iou: 0.25
29+
min_cross_iou: 0.1
30+
voxel_size: 0.2 # m
31+
min_num_observations: 15
32+
object_extractor:
33+
type: MeshObjectExtractor
34+
min_object_allocation_confidence: 0.5
35+
min_object_volume: 0.005 # m^3
36+
max_object_volume: 10.0 # m^3
37+
only_extract_reconstructed_objects: true # used to be false
38+
min_object_reconstruction_confidence: 0.5
39+
min_object_reconstruction_observations: 0 # Can use higher for very noisy detections.
40+
object_reconstruction_resolution: -0.02 # Positive: voxel size in meters. Negative: fraction of the extent. 0: Skip. (-0.02)
41+
projective_integrator:
42+
num_threads: 8 # NOTE(lschmid): Test less threads for parallel object extraction.
43+
map_window:
44+
type: spatial
45+
max_radius_m: *spatial_window
46+
window_sec: *temporal_window
47+
frontend:
48+
enable_mesh_objects: false
49+
pgmo:
50+
time_horizon: 15.0
51+
d_graph_resolution: 2.5
52+
mesh_resolution: 0.005
53+
objects:
54+
min_cluster_size: 40
55+
cluster_tolerance: 0.25
56+
graph_updater:
57+
layer_updates:
58+
OBJECTS:
59+
prefix: O
60+
matcher: {type: IoUNodeMatcher, min_same_iou: 0.2, min_cross_iou: 0.5}
61+
merger: {type: LatestAttributeMerger}
62+
surface_places:
63+
type: place_2d
64+
prefix: P
65+
pure_final_place_size: 1
66+
cluster_tolerance: .3
67+
min_cluster_size: 50
68+
max_cluster_size: 100000
69+
min_final_place_points: 10
70+
place_max_neighbor_z_diff: .5
71+
place_overlap_threshold: 0.0
72+
traversability_places:
73+
type: traversability
74+
estimator:
75+
type: HeightTraversabilityEstimator
76+
height_below: 0
77+
height_above: 0.5
78+
min_confidence: 1.0
79+
min_traversability: 1.0
80+
pessimistic: true
81+
clustering:
82+
type: BlockTraversabilityClustering
83+
min_place_width: &min_place_width 0.5 # m
84+
max_place_width: &max_place_width 1.0 # m
85+
recursive: true
86+
simplify_boundary_traversability: false
87+
sinks:
88+
- type: TraversabilityVisualizer
89+
freespace_places:
90+
type: gvd
91+
filter_places: true
92+
min_places_component_size: 3
93+
filter_ground: false
94+
gvd:
95+
max_distance_m: 4.5
96+
min_distance_m: 0.2
97+
min_diff_m: 0.1
98+
voronoi_config:
99+
mode: L1_THEN_ANGLE
100+
min_distance_m: 0.30
101+
parent_l1_separation: 20
102+
parent_cos_angle_separation: 0.2
103+
graph:
104+
type: CompressionGraphExtractor
105+
compression_distance_m: 1.5
106+
min_node_distance_m: 0.4
107+
min_edge_distance_m: 0.25
108+
node_merge_distance_m: 0.7
109+
merge_policy: distance
110+
tsdf_interpolator:
111+
type: downsample
112+
ratio: 2
113+
frontier_places:
114+
# type: voxel_clustering
115+
cluster_tolerance: 0.3
116+
min_cluster_size: 10
117+
max_cluster_size: 100000
118+
max_place_radius: 5
119+
dense_frontiers: false
120+
frontier_splitting_threshold: 0.2
121+
point_threshold: 10
122+
recent_block_distance: 25
123+
minimum_relative_z: -1.
124+
maximum_relative_z: 1
125+
backend:
126+
add_places_to_deformation_graph: true
127+
optimize_on_lc: true
128+
enable_node_merging: true
129+
update_functors:
130+
agents:
131+
type: UpdateAgentsFunctor
132+
objects:
133+
type: GenericUpdateFunctor
134+
layer: OBJECTS
135+
matcher:
136+
type: DistanceNodeMatcher
137+
pos_threshold_m: 1.5
138+
merge_proposer:
139+
type: SemanticNearestNode
140+
pos_threshold_m: 1.5
141+
surface_places:
142+
type: Update2dPlacesFunctor
143+
places:
144+
type: UpdatePlacesFunctor
145+
traversability:
146+
type: UpdateBlockTraversabilityFunctor
147+
min_place_size: *min_place_width
148+
# m
149+
max_place_size: *max_place_width
150+
# m
151+
use_metric_distance: false
152+
tolerance: 0.1 # m
153+
frontiers:
154+
type: UpdateFrontiersFunctor
155+
rooms:
156+
type: UpdateRoomsFunctor
157+
room_finder:
158+
min_dilation_m: 0.5
159+
max_dilation_m: 1.2
160+
min_component_size: 10
161+
min_room_size: 10
162+
dilation_threshold_mode: PLATEAU
163+
min_lifetime_length_m: 0.1
164+
plateau_ratio: 0.15
165+
clustering_mode: NEIGHBORS
166+
dilation_diff_threshold_m: -1.0
167+
buildings:
168+
type: UpdateBuildingsFunctor
169+
zmq_labels:
170+
type: ZmqRoomLabelUpdater
171+
pgmo:
172+
run_mode: FULL # kimera_pgmo run mode FULL is required
173+
embed_trajectory_delta_t: 5.0
174+
num_interp_pts: 3
175+
interp_horizon: 10.0
176+
optimizer:
177+
type: KimeraRpgoOptimizer
178+
solver: LM
179+
gnc:
180+
inlier_probability: 0.9
181+
mu_step: 1.6
182+
max_iterations: 100
183+
add_initial_prior: true
184+
covariance:
185+
odom: 1.0e-02
186+
loop_close: 5.0e-02
187+
sg_loop_close: 1.0e-01
188+
prior: 1.0e-02
189+
mesh_mesh: 1.0e-02
190+
pose_mesh: 1.0e-02
191+
place_mesh: 1.0e-02
192+
place_edge: 10.0
193+
place_merge: 10.0
194+
object_merge: 10.0

include/hydra/frontend/graph_builder.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ class GraphBuilder : public Module {
8686
double d_graph_resolution = 1.5;
8787
double time_horizon = 10.0;
8888
} pgmo;
89-
GraphUpdater::Config graph_updater{{{DsgLayers::OBJECTS, {'O', std::nullopt, {}}}}};
89+
GraphUpdater::Config graph_updater{{{DsgLayers::OBJECTS, {'O', std::nullopt, {}, {}}}}};
9090
GraphConnector::Config graph_connector;
9191
bool enable_mesh_objects = true;
9292
MeshSegmenter::Config object_config;

0 commit comments

Comments
 (0)