4 // Toby Schneider <toby@gobysoft.org>
7 // This file is part of the JaiaBot Project Binaries
8 // ("The Jaia Binaries").
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
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.
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/>.
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";
32 package jaiabot.config;
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;
45 required int32 bot_id = 10;
47 required jaiabot.protobuf.BotStatus.BotType bot_type = 11;
49 optional int32 health_report_timeout_seconds = 12 [default = 20];
51 optional int32 init_data_health_timeout_seconds = 15 [default = 20];
53 optional int32 data_timeout_seconds = 20 [default = 20];
55 optional int32 heading_timeout_seconds = 21 [default = 15];
57 repeated jaiabot.protobuf.MissionState discard_location_states = 30;
59 optional double imu_heading_course_max_diff = 31 [default = 45];
62 optional int32 course_over_ground_timeout = 32 [default = 3];
64 optional jaiabot.protobuf.IMUIssue.SolutionType imu_issue_solution = 33 [default = REPORT_IMU];
66 optional bool is_sim = 34 [default = false];
68 // How many times to verify data is indicating imu issue before declaring one
69 optional int32 total_imu_issue_checks = 35 [default = 4];
71 // When to start detecting imu issues again after detecting one
72 optional int32 imu_detect_timeout = 36 [default = 20];
74 // Rate in milliseconds
75 optional int32 bot_status_period_ms = 37 [default = 1000];
77 repeated jaiabot.protobuf.MissionState include_course_error_detection_states = 38;
79 repeated jaiabot.protobuf.MissionState include_imu_detection_states = 39;
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];
87 // The period to check for a imu issue in seconds
88 optional int32 imu_detect_period = 44 [default = 1];
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];
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" }];
97 // The angle at which we determine the bot to be horizontal
98 optional double imu_detect_horizontal_pitch = 47 [default = 45];
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];
104 // Dive states to send node status based on published depth values
105 repeated jaiabot.protobuf.MissionState diving_states = 49;
107 required string bot_gpsd_device = 50; // gpsd device for bot itself