JaiaBot  1.19.0
JaiaBot micro-AUV software
config.proto
Go to the documentation of this file.
1 // Copyright 2021:
2 // JaiaRobotics LLC
3 // File authors:
4 // Toby Schneider <toby@gobysoft.org>
5 //
6 //
7 // This file is part of the JaiaBot Project Binaries
8 // ("The Jaia Binaries").
9 //
10 // The Jaia Binaries are free software: you can redistribute them and/or modify
11 // them under the terms of the GNU General Public License as published by
12 // the Free Software Foundation, either version 2 of the License, or
13 // (at your option) any later version.x
14 //
15 // The Jaia Binaries are distributed in the hope that they will be useful,
16 // but WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 // GNU General Public License for more details.
19 //
20 // You should have received a copy of the GNU General Public License
21 // along with the Jaia Binaries. If not, see <http://www.gnu.org/licenses/>.
22 
23 syntax = "proto2";
24 
25 import "goby/middleware/protobuf/app_config.proto";
26 import "goby/zeromq/protobuf/interprocess_config.proto";
27 import "jaiabot/messages/mission.proto";
28 import "jaiabot/messages/jaia_dccl.proto";
29 import "jaiabot/messages/imu.proto";
30 import "dccl/option_extensions.proto";
31 
32 package jaiabot.config;
33 
34 message Fusion
35 {
36  option (dccl.msg) = {
37  unit_system: "si"
38  };
39 
40  // required parameters for ApplicationBase3 class
41  optional goby.middleware.protobuf.AppConfig app = 1;
42  // required parameters for connecting to 'gobyd'
43  optional goby.zeromq.protobuf.InterProcessPortalConfig interprocess = 2;
44 
45  required int32 bot_id = 10;
46 
47  required jaiabot.protobuf.BotStatus.BotType bot_type = 11;
48 
49  optional int32 health_report_timeout_seconds = 12 [default = 20];
50 
51  optional int32 init_data_health_timeout_seconds = 15 [default = 20];
52 
53  optional int32 data_timeout_seconds = 20 [default = 20];
54 
55  optional int32 heading_timeout_seconds = 21 [default = 15];
56 
57  repeated jaiabot.protobuf.MissionState discard_location_states = 30;
58 
59  optional double imu_heading_course_max_diff = 31 [default = 45];
60 
61  // timeout in seconds
62  optional int32 course_over_ground_timeout = 32 [default = 3];
63 
64  optional jaiabot.protobuf.IMUIssue.SolutionType imu_issue_solution = 33 [default = REPORT_IMU];
65 
66  optional bool is_sim = 34 [default = false];
67 
68  // How many times to verify data is indicating imu issue before declaring one
69  optional int32 total_imu_issue_checks = 35 [default = 4];
70 
71  // When to start detecting imu issues again after detecting one
72  optional int32 imu_detect_timeout = 36 [default = 20];
73 
74  // Rate in milliseconds
75  optional int32 bot_status_period_ms = 37 [default = 1000];
76 
77  repeated jaiabot.protobuf.MissionState include_course_error_detection_states = 38;
78 
79  repeated jaiabot.protobuf.MissionState include_imu_detection_states = 39;
80 
81  // Battery configurations
82  optional bool watch_battery_percentage = 40 [default = true];
83  optional float battery_percentage_low_level = 41 [default = 50];
84  optional float battery_percentage_very_low_level = 42 [default = 20];
85  optional float battery_percentage_critically_low_level = 43 [default = 10];
86 
87  // The period to check for a imu issue in seconds
88  optional int32 imu_detect_period = 44 [default = 1];
89 
90  // When the bots pitch is horizontal then we can start detecting imu issues again
91  optional int32 imu_issue_detect_horizontal_pitch_checks = 45 [default = 3];
92 
93  // The min amount of time to determine the bot is horizontal
94  optional double imu_issue_detect_horizontal_pitch_min_time = 46
95  [default = 1, (dccl.field).units = { base_dimensions: "T" }];
96 
97  // The angle at which we determine the bot to be horizontal
98  optional double imu_detect_horizontal_pitch = 47 [default = 45];
99 
100  // The max diff between desired heading and current heading when
101  // detecting an imu issue
102  optional double imu_detect_desired_heading_vs_current_max_diff = 48 [default = 45];
103 
104  // Dive states to send node status based on published depth values
105  repeated jaiabot.protobuf.MissionState diving_states = 49;
106 
107  required string bot_gpsd_device = 50; // gpsd device for bot itself
108 
109 }