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";
9 package jaiabot.config;
13 option (dccl.msg).unit_system = "si";
15 optional goby.middleware.protobuf.AppConfig app = 1;
16 optional goby.zeromq.protobuf.InterProcessPortalConfig interprocess = 2;
18 required int32 bot_id = 10;
20 optional int32 default_timeout = 20
21 [default = 5, (dccl.field).units.base_dimensions = "T"];
25 required double Kp = 1;
26 required double Ki = 2;
27 required double Kd = 3;
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;
38 optional bool use_throttle_table_for_speed = 31;
40 message ThrottleSpeedEntry
42 required double speed = 1
43 [(dccl.field).units = {derived_dimensions: "velocity"}];
44 required int32 throttle = 2;
46 repeated ThrottleSpeedEntry throttle_table = 32;
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"
55 optional jaiabot.protobuf.Bounds bounds = 80;