-
Notifications
You must be signed in to change notification settings - Fork 155
/
gbplanner_config.yaml
168 lines (162 loc) · 6.57 KB
/
gbplanner_config.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
# Configurations for the exploration pipeline.
# For more details, please check comments in the params.h file and the wiki.
#-------------------------------------------------------------------------------
# ROBOT CONFIGURATION
#-------------------------------------------------------------------------------
RobotParams:
type: kAerialRobot
size: [0.2, 0.2, 0.2] # Actual size of the robot in meters [x, y, z]
size_extension_min: [0.1, 0.1, 0.1] # minimum extension outside of robot size allowed to operate
size_extension: [0.2, 0.2, 0.2] # maximum extension outside of the robot size
center_offset: [0.0, 0.0, 0.0]
relax_ratio: 0.5 # Used to define an intermediate size between size_extension_min and size_extension for planning
bound_mode: kExtendedBound
safety_extension: [3.0, 4.0, 3.0] # Safety extension outside the bounding box of a path segment used to improve it by pushing it away from obstacles
#-------------------------------------------------------------------------------
# SENSOR CONFIGURATION
# sensor_list: Define a set of sensors relevant to the exploration task.
# rotations: ZYX order;
# all follows ROS convention (X-forward, Y-left, Z-Up).
#-------------------------------------------------------------------------------
SensorParams:
sensor_list: ["OS064"]
OS064:
type: kLidar
max_range: 20.0
center_offset: [0.0, 0.0, 0.0]
rotations: [0.0, 0.0, 0.0]
fov: [rad(2*pi), rad(pi/2)]
resolution: [rad(7.0*pi/180), rad(7.0*pi/180)]
frontier_percentage_threshold: 0.04
#-------------------------------------------------------------------------------
# SAMPLING SPACE CONFIGURATION
# Global: Strictly defined bounds for the whole environment.
# Local: Define a local space wrt current robot state for planning.
#-------------------------------------------------------------------------------
BoundedSpaceParams:
Global:
type: kCuboid
min_val: [-3000.0, -3000.0, -300.0]
max_val: [3000.0, 3000.0, 300.0]
Local:
type: kCuboid
min_val: [-15.0, -15.0, -3.0]
max_val: [15.0, 15.0, 3.0]
min_extension: [-20.0, -20.0, -20.0]
max_extension: [20.0, 20.0, 20.0]
LocalSearch:
type: kCuboid
min_val: [-50.0, -50.0, -1.0]
max_val: [50.0, 50.0, 1.0]
# Adaptive OBB:
LocalAdaptiveExp:
type: kCuboid
min_val: [-10.0, -10.0, -0.75]
max_val: [10.0, 10.0, 0.75]
NoGainZones:
g1: # Back
type: kCuboid
min_val: [-50.0, -10.0, -10.0]
max_val: [2.0, 10.0, 10.0]
#-------------------------------------------------------------------------------
# SAMPLING POLICY CONFIGURATION
# Sample space limited to 4 states: X, Y, Z, and Heading
#-------------------------------------------------------------------------------
RandomSamplerParams:
SamplerForExploration:
X:
pdf_type: kUniform
sample_mode: kLocal
Y:
pdf_type: kUniform
sample_mode: kLocal
Z:
pdf_type: kUniform
sample_mode: kLocal
Heading:
pdf_type: kUniform
sample_mode: kManual
min_val: rad(-pi)
max_val: rad(pi)
SamplerForSearching:
X:
pdf_type: kUniform
sample_mode: kLocal
Y:
pdf_type: kUniform
sample_mode: kLocal
Z:
pdf_type: kUniform
sample_mode: kLocal
Heading:
pdf_type: kUniform
sample_mode: kManual
min_val: rad(-pi)
max_val: rad(pi)
SamplerForAdaptiveExp:
X:
pdf_type: kUniform
sample_mode: kLocal
Y:
pdf_type: kUniform
sample_mode: kLocal
Z:
pdf_type: kUniform
sample_mode: kLocal
Heading:
pdf_type: kUniform
sample_mode: kManual
min_val: rad(-pi)
max_val: rad(pi)
#-------------------------------------------------------------------------------
# EXPLORATION CONFIGURATION
# exp_sensor_list: sensors used to compute exploration gain.
#-------------------------------------------------------------------------------
PlanningParams:
type: kBasicExploration #kAdaptiveExploration, kBasicExploration
rr_mode: kGraph
exp_sensor_list: ["OS064"]
# no_gain_zones_list: ["g1"]
v_max: 1.0 # max velocity m/s
v_homing_max: 0.9 # max velocity m/s
yaw_rate_max: 0.15 # max angular velocity rad/s
yaw_tangent_correction: true # If true - all headings will be along the path segment
edge_length_min: 0.2
edge_length_max: 2.0
edge_overshoot: 0.0 # m - Account for possible tracking error by collision checking on an extended edge
num_vertices_max: 700 # graph building stops if these many vertices are added
num_edges_max: 9000 # graph building stops if these many edges are added
num_loops_cutoff: 2000 # Maximum iterations in which no vertices or edges are added to the graph
num_loops_max: 4000 # Maximum iterations possible for graph building
nearest_range: 2.0 # The max range within which a new vertex can be connected to an existing vertex
nearest_range_min: 0.5 # >= edge_length_min
nearest_range_max: 2.0 # <= edge_length_max
use_current_state: true # If true, it will use the current state to plan from instead of the state provided by the PCI in the service call
use_ray_model_for_volumetric_gain: true # if false, will check voxel by voxel in the sensor frustum
exp_gain_voxel_size: 0.8 # used if use_ray_model_for_volumetric_gain is false
# Gains:
path_length_penalty: 0.04
path_direction_penalty: 0.1
occupied_voxel_gain: 0.0
free_voxel_gain: 0.0 # prefer directions towards more free voxels in case of the dead-end
unknown_voxel_gain: 60.0
traverse_length_max: 8.0 # Maximum length of the best path will be truncated to for actual traversal
traverse_time_max: 500.0
path_safety_enhance_enable: true
augment_free_voxels_time: 3
free_frustum_before_planning: false
freespace_cloud_enable: false
leafs_only_for_volumetric_gain: true # Whether to calculate gain of the entire path or only the leaf nodes
cluster_vertices_for_gain: true
clustering_radius: 0.5
path_interpolation_distance: 0.5
time_budget_limit: 480 # seconds
auto_homing_enable: true
go_home_if_fully_explored: true
nonuniform_ray_cast: true
ray_cast_step_size_multiplier: 1.0
geofence_checking_enable: true
AdaptiveObbParams:
type: kPca
local_pointcloud_range: 50.0
bounding_box_size_max: 35