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