JaiaBot 1.10.0+14+g8dbf2589
JaiaBot micro-AUV software
 
Loading...
Searching...
No Matches
config.proto
Go to the documentation of this file.
1syntax = "proto2";
2
3import "goby/middleware/protobuf/app_config.proto";
4import "goby/zeromq/protobuf/interprocess_config.proto";
5import "goby/middleware/protobuf/serial_config.proto";
6import "goby/middleware/protobuf/transporter_config.proto";
7import "dccl/option_extensions.proto";
8import "jaiabot/messages/health.proto";
9import "jaiabot/messages/mission.proto";
10import "jaiabot/messages/modem_message_extensions.proto";
11
12package jaiabot.config;
13
14message MissionManager
15{
16 option (dccl.msg) = {
17 unit_system: "si"
18 };
19 optional goby.middleware.protobuf.AppConfig app = 1;
20 optional goby.zeromq.protobuf.InterProcessPortalConfig interprocess = 2;
21
22 required int32 fleet_id = 9;
23 required int32 bot_id = 10;
24 required goby.middleware.protobuf.TransporterConfig command_sub_cfg = 11;
25
26 // timeout to allow all applications to report HEALTH__OK
27 optional double startup_timeout = 12
28 [default = 120, (dccl.field).units = { base_dimensions: "T" }];
29
30 // powered ascent motor on timeout
31 optional int32 powered_ascent_motor_on_timeout = 25
32 [default = 5, (dccl.field).units = { base_dimensions: "T" }];
33
34 // powered ascent motor off timeout
35 optional int32 powered_ascent_motor_off_timeout = 26
36 [default = 2, (dccl.field).units = { base_dimensions: "T" }];
37
38 // timeout on dive prep to then transition to powered descent
39 optional int32 dive_prep_timeout = 27
40 [default = 10, (dccl.field).units = { base_dimensions: "T" }];
41
42 // safety timeout on powered descent to then transition to unpowered descent
43 optional int32 powered_descent_timeout = 28
44 [default = 60, (dccl.field).units = { base_dimensions: "T" }];
45
46 // detect bottom logic initial timeout in seconds. Used to determine
47 // when we should start determining we reached bottom in powered descent
48 // logic. (this gives the vehicle time to begin diving)
49 optional double detect_bottom_logic_init_timeout = 29
50 [default = 15, (dccl.field).units = { base_dimensions: "T" }];
51
52 // detect bottom logic timeout in seconds. Used to determine
53 // when we should start determining we reached bottom in powered descent
54 // logic. (this gives the vehicle time to begin diving after a hold)
55 optional double detect_bottom_logic_after_hold_timeout = 30
56 [default = 5, (dccl.field).units = { base_dimensions: "T" }];
57
58 // acceptable eps when dive depth is considered reached (in meters)
59 optional double dive_depth_eps = 31
60 [default = 0.1, (dccl.field).units = { base_dimensions: "L" }];
61
62 // bottoming timeout in seconds without depth change greater than
63 // dive_depth_eps before assuming the bottom has been hit
64 optional double bottoming_timeout = 32
65 [default = 3, (dccl.field).units = { base_dimensions: "T" }];
66
67 // acceptable eps when dive surface is considered reached (in meters)
68 optional double dive_surface_eps = 33
69 [default = 0.75, (dccl.field).units = { base_dimensions: "L" }];
70
71 // number of times to check the gps hdop and pdop
72 // when in reacquiring gps state
73 optional uint32 total_gps_fix_checks = 34 [default = 10];
74
75 // number of times to check the gps hdop and pdop
76 // while in transit to go into reacquiring gps state
77 optional uint32 total_gps_degraded_fix_checks = 35 [default = 2];
78
79 // The hdop value to check against to determine gps fix
80 optional double gps_hdop_fix = 36 [default = 1.3];
81
82 // The pdop value to check against to determine gps fix
83 optional double gps_pdop_fix = 37 [default = 2.2];
84
85 // number of times to check the gps hdop and pdop
86 // when in reacquiring gps state after a dive
87 optional uint32 total_after_dive_gps_fix_checks = 38 [default = 15];
88
89 // The hdop value to check against to determine gps fix after a dive
90 optional double gps_after_dive_hdop_fix = 39 [default = 1.3];
91
92 // The pdop value to check against to determine gps fix after a dive
93 optional double gps_after_dive_pdop_fix = 40 [default = 2.2];
94
95 // Min depth safety behavior
96 optional double min_depth_safety = 41 [default = -1];
97
98 // Time factor used to increase/decrease time to travel to goal
99 optional double goal_timeout_buffer_factor = 44 [default = 1];
100
101 // The number of reacquire attempts used to calculate goal timeout
102 optional uint32 goal_timeout_reacquire_gps_attempts = 45 [default = 2];
103
104 // Number of good gps locations to keep
105 optional uint32 tpv_history_max = 46 [default = 15];
106
107 // Used to indicate to use goal timeout
108 optional bool use_goal_timeout = 47 [default = false];
109
110 // Skip goal task if the bot timeouts trying to get to the goal
111 optional bool skip_goal_task = 48 [default = false];
112
113 // States to detect goal timeout
114 repeated jaiabot.protobuf.MissionState include_goal_timeout_states = 49;
115
116 enum RemoteControlSetpointEnd
117 {
118 RC_SETPOINT_ENDS_IN_STATIONKEEP = 1;
119 RC_SETPOINT_ENDS_IN_SURFACE_DRIFT = 2;
120 }
121 optional RemoteControlSetpointEnd rc_setpoint_end = 50
122 [default = RC_SETPOINT_ENDS_IN_STATIONKEEP];
123
124 optional uint32 imu_restart_seconds = 51 [default = 15];
125
126 // Bot not rising timeout in seconds without depth change greater than
127 // dive_depth_eps before assuming the bot is stuck and is not rising
128 optional double bot_not_rising_timeout = 52
129 [default = 6, (dccl.field).units = { base_dimensions: "T" }];
130
131 // If the bot is not rising then increment the motor on time
132 optional int32 motor_on_time_increment = 53
133 [default = 1, (dccl.field).units = { base_dimensions: "T" }];
134
135 // The max the motor should be on for powered ascent
136 optional int32 motor_on_time_max = 54
137 [default = 10, (dccl.field).units = { base_dimensions: "T" }];
138
139 // The power ascent throttle
140 optional double powered_ascent_throttle = 55 [default = 25];
141
142 // The power ascent throttle increment
143 optional double powered_ascent_throttle_increment = 56 [default = 5];
144
145 // The power ascent max thottle
146 optional double powered_ascent_throttle_max = 57 [default = 60];
147
148 optional double pitch_to_determine_powered_ascent_vertical = 58
149 [default = 30];
150
151 optional double pitch_to_determine_dive_prep_vertical = 59 [default = 70];
152
153 optional int32 pitch_angle_checks = 60 [default = 3];
154
155 // The min amount of time to trigger a EvBotNotVertical event
156 optional double pitch_angle_min_check_time = 61
157 [default = 1, (dccl.field).units = { base_dimensions: "T" }];
158
159 // acceptable eps when we consider the bot diving (in meters)
160 optional double dive_eps_to_determine_diving = 62
161 [default = 0.3, (dccl.field).units = { base_dimensions: "L" }];
162
163 required string data_preoffload_script = 70;
164 required string data_postoffload_script = 71;
165
166 // e.g. /var/log/jaiabot/bot/*/
167 required string log_dir = 72;
168
169 optional string log_staging_dir = 73 [
170 default = "/var/log/jaiabot/staging"
171 ]; // dir on bot with data to be offloaded
172
173 optional string log_archive_dir = 74 [
174 default = "/var/log/jaiabot/archive"
175 ]; // archived bot data
176
177
178 enum DownloadFileTypes
179 {
180 NONE = 1;
181 GOBY = 2;
182 TASKPACKET = 3;
183 }
184 optional DownloadFileTypes data_offload_exclude = 75;
185
186 enum EngineeringTestMode
187 {
188 ENGINEERING_TEST__ALWAYS_LOG_EVEN_WHEN_IDLE = 1;
189 ENGINEERING_TEST__IGNORE_SOME_ERRORS = 2;
190 ENGINEERING_TEST__INDOOR_MODE__NO_GPS = 3;
191 }
192 repeated EngineeringTestMode test_mode = 80;
193
194 // errors to ignore,
195 // only when test_mode: ENGINEERING_TEST__IGNORE_SOME_ERRORS
196 repeated jaiabot.protobuf.Error ignore_error = 81;
197
198 optional bool is_sim = 82 [default = false];
199
200 optional jaiabot.protobuf.HubInfo subscribe_to_hub_on_start = 83;
201
202 // Determines if the acceleration is hard or soft
203 optional double hard_bottom_type_acceleration = 84 [default = 100];
204
205 // timeout for when to stop logging if in failed state
206 optional int32 failed_startup_log_timeout = 85
207 [default = 300, (dccl.field).units = { base_dimensions: "T" }];
208
209 // used to update transitting to waypoint to allow more overshoot
210 optional int32 waypoint_with_no_task_slip_radius = 86 [default = 15];
211
212 // used to update transitting to waypoint to allow less overshoot
213 optional int32 waypoint_with_task_slip_radius = 87 [default = 5];
214
215 message ResolveNoForwardProgress
216 {
217 // time after going into ResolveNoForwardProgress to resume attempting
218 // to move
219 optional int32 resume_timeout = 1
220 [default = 10, (dccl.field).units = { base_dimensions: "T" }];
221
222 // angle above which the vehicle is assumed to not be making forward
223 // progress, below which it is
224 optional int32 pitch_threshold = 2 [
225 default = 30,
226 (dccl.field).units = {
227 derived_dimensions: "plane_angle"
228 system: "angle::degree"
229 }
230 ];
231
232 // desired speed above which the vehicle is expected to be making
233 // forward progress
234 optional int32 desired_speed_threshold = 3
235 [default = 0, (dccl.field).units = { base_dimensions: "LT^-1" }];
236
237 // time after desired speed > desired_speed_threshold but pitch
238 // > pitch_threshold that triggers EvNoForwardProgress
239 optional int32 trigger_timeout = 4
240 [default = 15, (dccl.field).units = { base_dimensions: "T" }];
241 }
242
243 optional ResolveNoForwardProgress resolve_no_forward_progress = 88;
244}