JaiaBot  1.19.0
JaiaBot micro-AUV software
config.proto
Go to the documentation of this file.
1 syntax = "proto2";
2 
3 import "goby/middleware/protobuf/app_config.proto";
4 import "goby/zeromq/protobuf/interprocess_config.proto";
5 import "goby/middleware/protobuf/transporter_config.proto";
6 import "dccl/option_extensions.proto";
7 import "jaiabot/messages/bounds.proto";
8 
9 package jaiabot.config;
10 
11 message BotPidControl
12 {
13  option (dccl.msg).unit_system = "si";
14 
15  optional goby.middleware.protobuf.AppConfig app = 1;
16  optional goby.zeromq.protobuf.InterProcessPortalConfig interprocess = 2;
17 
18  required int32 bot_id = 10;
19 
20  optional int32 default_timeout = 20
21  [default = 5, (dccl.field).units.base_dimensions = "T"];
22 
23  message PIDGains
24  {
25  required double Kp = 1;
26  required double Ki = 2;
27  required double Kd = 3;
28  };
29 
30  optional PIDGains throttle_speed_pid_gains = 30;
31  optional PIDGains throttle_depth_pid_gains = 40;
32  optional PIDGains heading_pid_gains = 50;
33  optional PIDGains heading_constant_pid_gains = 51;
34  optional PIDGains roll_pid_gains = 60;
35  optional PIDGains pitch_pid_gains = 70;
36 
37  // Speed => rpm table
38  optional bool use_throttle_table_for_speed = 31;
39 
40  message ThrottleSpeedEntry
41  {
42  required double speed = 1
43  [(dccl.field).units = {derived_dimensions: "velocity"}];
44  required int32 throttle = 2;
45  }
46  repeated ThrottleSpeedEntry throttle_table = 32;
47 
48  // The threshold heading_error below which the PID algorithm will target full desired speed
49  optional double full_speed_window = 33
50  [default = 1, (dccl.field).units = {
51  derived_dimensions: "plane_angle"
52  system: "angle::degree"
53  }];
54 
55  optional jaiabot.protobuf.Bounds bounds = 80;
56 }