Autonomy Software C++ 24.5.1
Welcome to the Autonomy Software repository of the Mars Rover Design Team (MRDT) at Missouri University of Science and Technology (Missouri S&T)! API reference contains the source code and other resources for the development of the autonomy software for our Mars rover. The Autonomy Software project aims to compete in the University Rover Challenge (URC) by demonstrating advanced autonomous capabilities and robust navigation algorithms.
Loading...
Searching...
No Matches
AutonomyConstants.h
Go to the documentation of this file.
1
11#ifndef AUTONOMY_CONSTANTS_H
12#define AUTONOMY_CONSTANTS_H
13
16
18#include <opencv2/opencv.hpp>
19#include <quill/core/LogLevel.h>
20#include <sl/Camera.hpp>
21
23
24
32namespace constants
33{
37
38 // Sim mode constants.
39 extern const bool MODE_SIM;
40 extern const std::string SIM_IP_ADDRESS;
41 extern const uint SIM_WEBSOCKET_PORT;
42 extern const uint SIM_WEBRTC_QP;
43 extern const std::string SIM_MAINCAM_NAME;
44 extern const std::string SIM_REARCAM_NAME;
45
46 // Safety constants.
47 extern const double BATTERY_MINIMUM_CELL_VOLTAGE;
48 extern const bool BATTERY_CHECKS_ENABLED;
49
50 // Logging constants.
51 extern const std::string LOGGING_OUTPUT_PATH_ABSOLUTE;
52 extern const quill::LogLevel CONSOLE_MIN_LEVEL;
53 extern const quill::LogLevel FILE_MIN_LEVEL;
54 extern const quill::LogLevel ROVECOMM_MIN_LEVEL;
55 extern const quill::LogLevel CONSOLE_DEFAULT_LEVEL;
56 extern const quill::LogLevel FILE_DEFAULT_LEVEL;
57 extern const quill::LogLevel ROVECOMM_DEFAULT_LEVEL;
58
59 // Logging color constants.
60 extern const std::string szTraceL3Color;
61 extern const std::string szTraceL2Color;
62 extern const std::string szTraceL1Color;
63 extern const std::string szDebugColor;
64 extern const std::string szInfoColor;
65 extern const std::string szNoticeColor;
66 extern const std::string szWarningColor;
67 extern const std::string szErrorColor;
68 extern const std::string szCriticalColor;
69 extern const std::string szBacktraceColor;
70
71 // RoveComm constants.
72 extern const int ROVECOMM_OUTGOING_UDP_PORT;
73 extern const int ROVECOMM_OUTGOING_TCP_PORT;
74 extern const std::string ROVECOMM_TCP_INTERFACE_IP;
75
77
81
82 // Power constants.
83 extern const float DRIVE_MAX_POWER;
84 extern const float DRIVE_MIN_POWER;
85 extern const float DRIVE_MAX_SAFE_POWER;
86
87 // Control constants.
88 extern const double DRIVE_PID_PROPORTIONAL;
89 extern const double DRIVE_PID_INTEGRAL;
90 extern const double DRIVE_PID_DERIVATIVE;
91 extern const double DRIVE_PID_FEEDFORWARD;
92 extern const double DRIVE_PID_MAX_ERROR;
93 extern const double DRIVE_PID_MAX_INTEGRAL_TERM;
94 extern const double DRIVE_PID_MAX_RAMP_RATE;
95 extern const double DRIVE_PID_OUTPUT_FILTER;
96 extern const double DRIVE_PID_TOLERANCE;
97 extern const bool DRIVE_PID_OUTPUT_REVERSED;
98 extern const bool DRIVE_SQUARE_CONTROL_INPUTS;
99 extern const bool DRIVE_CURVATURE_KINEMATICS_ALLOW_TURN_WHILE_STOPPED;
100
101 // Drive Board constants
102 extern const float DRIVE_BOARD_MIN_SLOPE;
103 extern const float DRIVE_BOARD_MAX_SLOPE;
104 extern const float DRIVE_BOARD_MIN_DAMP;
105 extern const float DRIVE_BOARD_MAX_DAMP;
106 extern const float DRIVE_BOARD_ROLL_WEIGHT;
107 extern const float DRIVE_BOARD_PITCH_WEIGHT;
108 extern const float DRIVE_BOARD_YAW_WEIGHT;
110
114
115 // Recording adjustments.
116 extern const int RECORDER_FPS;
117 // Camera recording toggles.
118 extern const bool ZED_MAINCAM_ENABLE_RECORDING;
119 extern const bool ZED_REARCAM_ENABLE_RECORDING;
120 // TagDetector recording toggles.
121 extern const bool TAGDETECT_MAINCAM_ENABLE_RECORDING;
122 extern const bool TAGDETECT_REARCAM_ENABLE_RECORDING;
123 // ObjectDetector recording toggles.
124 extern const bool OBJECTDETECT_MAINCAM_ENABLE_RECORDING;
125 extern const bool OBJECTDETECT_REARCAM_ENABLE_RECORDING;
127
131
132 // ZedCam Basic Config.
133 extern const sl::RESOLUTION ZED_BASE_RESOLUTION;
134 extern const sl::UNIT ZED_MEASURE_UNITS;
135 extern const sl::COORDINATE_SYSTEM ZED_COORD_SYSTEM;
136 extern const sl::DEPTH_MODE ZED_DEPTH_MODE;
137 extern const sl::VIEW ZED_RETRIEVE_VIEW;
138 extern const bool ZED_SDK_VERBOSE;
139 extern const bool ZED_SENSING_FILL;
140 extern const float ZED_DEFAULT_MINIMUM_DISTANCE;
141 extern const float ZED_DEFAULT_MAXIMUM_DISTANCE;
142 extern const float ZED_DEFAULT_FLOOR_PLANE_ERROR;
143 extern const int ZED_DEPTH_STABILIZATION;
144 // ZedCam SVO Recording Config.
145 extern const sl::SVO_COMPRESSION_MODE ZED_SVO_COMPRESSION;
146 extern const int ZED_SVO_BITRATE;
147 // ZedCam Positional Tracking Config.
148 extern const sl::POSITIONAL_TRACKING_MODE ZED_POSETRACK_MODE;
149 extern const bool ZED_POSETRACK_AREA_MEMORY;
150 extern const bool ZED_POSETRACK_POSE_SMOOTHING;
151 extern const bool ZED_POSETRACK_FLOOR_IS_ORIGIN;
152 extern const bool ZED_POSETRACK_ENABLE_IMU_FUSION;
153 extern const float ZED_POSETRACK_USABLE_DEPTH_MIN;
154 extern const bool ZED_POSETRACK_USE_GRAVITY_ORIGIN;
155 // ZedCam Spatial Mapping Config.
156 extern const sl::SpatialMappingParameters::SPATIAL_MAP_TYPE ZED_MAPPING_TYPE;
157 extern const float ZED_MAPPING_RANGE_METER;
158 extern const float ZED_MAPPING_RESOLUTION_METER;
159 extern const int ZED_MAPPING_MAX_MEMORY;
160 extern const bool ZED_MAPPING_USE_CHUNK_ONLY;
161 extern const int ZED_MAPPING_STABILITY_COUNTER;
162 // ZedCam Object Detection Config.
163 extern const bool ZED_OBJDETECTION_TRACK_OBJ;
164 extern const bool ZED_OBJDETECTION_SEGMENTATION;
165 extern const sl::OBJECT_FILTERING_MODE ZED_OBJDETECTION_FILTERING;
166 extern const float ZED_OBJDETECTION_TRACKING_PREDICTION_TIMEOUT;
167 extern const float ZED_OBJDETECTION_BATCH_RETENTION_TIME;
168 extern const float ZED_OBJDETECTION_BATCH_LATENCY;
169 // Zed Fusion Config.
170 extern const sl::UNIT FUSION_MEASUREMENT_UNITS;
171 extern const sl::COORDINATE_SYSTEM FUSION_COORD_SYSTEM;
172 extern const bool FUSION_SDK_VERBOSE;
173 extern const bool FUSION_ENABLE_GNSS_FUSION;
174
175 // BasicCam Basic Config.
176 extern const cv::InterpolationFlags BASICCAM_RESIZE_INTERPOLATION_METHOD;
177
179
183
184 // Main ZED Camera.
185 extern const int ZED_MAINCAM_RESOLUTIONX;
186 extern const int ZED_MAINCAM_RESOLUTIONY;
187 extern const int ZED_MAINCAM_FPS;
188 extern const int ZED_MAINCAM_HORIZONTAL_FOV;
189 extern const int ZED_MAINCAM_VERTICAL_FOV;
190 extern const bool ZED_MAINCAM_EXPORT_SVO_RECORDING;
191 extern const bool ZED_MAINCAM_EXPORT_SPATIAL_MAP;
192 extern const bool ZED_MAINCAM_USE_GPU_MAT;
193 extern const bool ZED_MAINCAM_USE_HALF_PRECISION_DEPTH;
194 extern const int ZED_MAINCAM_FRAME_RETRIEVAL_THREADS;
195 extern const int ZED_MAINCAM_SERIAL;
196 extern const double ZED_MAINCAM_EASTING_OFFSET;
197 extern const double ZED_MAINCAM_NORTHING_OFFSET;
198 extern const double ZED_MAINCAM_ALTITUDE_OFFSET;
199 extern const double ZED_MAINCAM_QUATERNION_OFFSET_X;
200 extern const double ZED_MAINCAM_QUATERNION_OFFSET_Y;
201 extern const double ZED_MAINCAM_QUATERNION_OFFSET_Z;
202 extern const double ZED_MAINCAM_QUATERNION_OFFSET_W;
203
204 // Rear ZED Camera.
205 extern const bool MODE_REAR_ZED;
206 extern const int ZED_REARCAM_RESOLUTIONX;
207 extern const int ZED_REARCAM_RESOLUTIONY;
208 extern const int ZED_REARCAM_FPS;
209 extern const int ZED_REARCAM_HORIZONTAL_FOV;
210 extern const int ZED_REARCAM_VERTICAL_FOV;
211 extern const bool ZED_REARCAM_EXPORT_SVO_RECORDING;
212 extern const bool ZED_REARCAM_EXPORT_SPATIAL_MAP;
213 extern const bool ZED_REARCAM_USE_GPU_MAT;
214 extern const bool ZED_REARCAM_USE_HALF_PRECISION_DEPTH;
215 extern const int ZED_REARCAM_FRAME_RETRIEVAL_THREADS;
216 extern const int ZED_REARCAM_SERIAL;
217 extern const double ZED_REARCAM_EASTING_OFFSET;
218 extern const double ZED_REARCAM_NORTHING_OFFSET;
219 extern const double ZED_REARCAM_ALTITUDE_OFFSET;
220 extern const double ZED_REARCAM_QUATERNION_OFFSET_X;
221 extern const double ZED_REARCAM_QUATERNION_OFFSET_Y;
222 extern const double ZED_REARCAM_QUATERNION_OFFSET_Z;
223 extern const double ZED_REARCAM_QUATERNION_OFFSET_W;
224
225 // Basic Cam.
226 extern const int BASICCAM_CAM_RESOLUTIONX;
227 extern const int BASICCAM_CAM_RESOLUTIONY;
228 extern const int BASICCAM_CAM_FPS;
229 extern const int BASICCAM_CAM_HORIZONTAL_FOV;
230 extern const int BASICCAM_CAM_VERTICAL_FOV;
231 extern const int BASICCAM_CAM_FRAME_RETRIEVAL_THREADS;
232 extern const int BASICCAM_CAM_INDEX;
233 extern const PIXEL_FORMATS BASICCAM_CAM_PIXELTYPE;
235
239
240 extern const double BBOX_MIN_LIFETIME_THRESHOLD;
241 extern const double BBOX_MIN_SCREEN_PERCENTAGE;
242 extern const double BBOX_TRACKER_LOST_TIMEOUT;
243 extern const double BBOX_TRACKER_MAX_TRACK_TIME;
244 extern const double BBOX_TRACKER_IOU_MATCH_THRESHOLD;
245 extern const tracking::TrackerType BBOX_TRACKER_TYPE;
246
248
252
253 // Models to use for detection.
254 extern const std::string TAGDETECT_TORCH_MODEL;
255
256 // Main ZED Camera.
257 extern const int TAGDETECT_MAINCAM_DATA_RETRIEVAL_THREADS;
258 extern const int TAGDETECT_MAINCAM_CORNER_REFINE_MAX_ITER;
259 extern const int TAGDETECT_MAINCAM_CORNER_REFINE_METHOD;
260 extern const bool TAGDETECT_MAINCAM_DETECT_INVERTED_MARKER;
261 extern const int TAGDETECT_MAINCAM_MARKER_BORDER_BITS;
262 extern const bool TAGDETECT_MAINCAM_USE_ARUCO3_DETECTION;
263 extern const bool TAGDETECT_MAINCAM_ENABLE_TRACKING;
264 extern const int TAGDETECT_MAINCAM_MAX_FPS;
265 extern const bool TAGDETECT_MAINCAM_ENABLE_TORCH;
266 extern const float TAGDETECT_MAINCAM_TORCH_CONFIDENCE;
267 extern const float TAGDETECT_MAINCAM_TORCH_NMS_THRESH;
268
269 // Rear ZED Camera.
270 extern const int TAGDETECT_REARCAM_DATA_RETRIEVAL_THREADS;
271 extern const int TAGDETECT_REARCAM_CORNER_REFINE_MAX_ITER;
272 extern const int TAGDETECT_REARCAM_CORNER_REFINE_METHOD;
273 extern const bool TAGDETECT_REARCAM_DETECT_INVERTED_MARKER;
274 extern const int TAGDETECT_REARCAM_MARKER_BORDER_BITS;
275 extern const bool TAGDETECT_REARCAM_USE_ARUCO3_DETECTION;
276 extern const bool TAGDETECT_REARCAM_ENABLE_TRACKING;
277 extern const int TAGDETECT_REARCAM_MAX_FPS;
278 extern const bool TAGDETECT_REARCAM_ENABLE_TORCH;
279 extern const float TAGDETECT_REARCAM_TORCH_CONFIDENCE;
280 extern const float TAGDETECT_REARCAM_TORCH_NMS_THRESH;
281
285
286 // Models to use for detection.
287 extern const std::string OBJECTDETECT_TORCH_MODEL;
288
289 // Main ZED Camera.
290 extern const int OBJECTDETECT_MAINCAM_DATA_RETRIEVAL_THREADS;
291 extern const bool OBJECTDETECT_MAINCAM_ENABLE_TRACKING;
292 extern const int OBJECTDETECT_MAINCAM_MAX_FPS;
293 extern const bool OBJECTDETECT_MAINCAM_ENABLE_TORCH;
294 extern const float OBJECTDETECT_MAINCAM_TORCH_CONFIDENCE;
295 extern const float OBJECTDETECT_MAINCAM_TORCH_NMS_THRESH;
296
297 // Rear ZED Camera.
298 extern const int OBJECTDETECT_REARCAM_DATA_RETRIEVAL_THREADS;
299 extern const bool OBJECTDETECT_REARCAM_ENABLE_TRACKING;
300 extern const int OBJECTDETECT_REARCAM_MAX_FPS;
301 extern const bool OBJECTDETECT_REARCAM_ENABLE_TORCH;
302 extern const float OBJECTDETECT_REARCAM_TORCH_CONFIDENCE;
303 extern const float OBJECTDETECT_REARCAM_TORCH_NMS_THRESH;
304
306
310
311 // LiDAR Data Handler.
312 extern const std::string LIDAR_HANDLER_DB_PATH;
313
315
319
320 // LiDAR Data Handler.
321 extern const int VISUALIZER_WEBSERVER_PORT;
322 extern const std::string VISUALIZER_THREEJS_PATH;
323 extern const std::string VISUALIZER_ORBITCONTROLS_PATH;
324
326
330
331 // Global GeoPlanner
332 extern const double GEOPLANNER_TILE_SIZE;
333
335
339
340 // OpenCV ArUco detection config.
341 extern const cv::aruco::PredefinedDictionaryType ARUCO_DICTIONARY;
342 extern const float ARUCO_TAG_SIDE_LENGTH;
343 extern const double ARUCO_PIXEL_THRESHOLD;
344 extern const double ARUCO_PIXEL_THRESHOLD_MAX_VALUE;
345 extern const cv::Mat ARUCO_SHARPEN_KERNEL_FAST;
346 extern const cv::Mat ARUCO_SHARPEN_KERNEL_EXTRA;
347 extern const cv::Mat ARUCO_EDGE_KERNEL;
348
350
354
355 // Handler.
356 extern const int STATEMACHINE_MAX_IPS;
357 extern const double STATEMACHINE_ZED_REALIGN_THRESHOLD;
358 extern const double ZED_REALIGN_ROT_THRESH;
359 extern const double ZED_REALIGN_VEL_THRESH;
360
361 // Approaching Marker State
362 extern const double APPROACH_MARKER_MOTOR_POWER;
363 extern const double APPROACH_MARKER_PROXIMITY_THRESHOLD;
364 extern const double APPROACH_MARKER_LOST_GIVE_UP_TIME;
365 extern const bool APPROACH_MARKER_VERIFY_POSITION;
366 extern const double APPROACH_MARKER_VERIFY_TIME;
367 extern const double APPROACH_MARKER_TAG_LOST_BUFFER_TIME;
368 extern const bool APPROACH_MARKER_ENABLE_STUCK_DETECT;
369 extern const double APPROACH_MARKER_STUCK_CHECK_INTERVAL;
370 extern const unsigned int APPROACH_MARKER_STUCK_CHECK_ATTEMPTS;
371 extern const double APPROACH_MARKER_STUCK_CHECK_ROT_THRESH;
372 extern const double APPROACH_MARKER_STUCK_CHECK_VEL_THRESH;
373
374 // Approaching Object State
375 extern const double APPROACH_OBJECT_MOTOR_POWER;
376 extern const double APPROACH_OBJECT_PROXIMITY_THRESHOLD;
377 extern const double APPROACH_OBJECT_LOST_GIVE_UP_TIME;
378 extern const bool APPROACH_OBJECT_VERIFY_POSITION;
379 extern const double APPROACH_OBJECT_VERIFY_TIME;
380 extern const double APPROACH_OBJECT_REQUIRED_TIME_HIT_RATE;
381 extern const double APPROACH_OBJECT_LOST_BUFFER_TIME;
382 extern const bool APPROACH_OBJECT_ENABLE_STUCK_DETECT;
383 extern const double APPROACH_OBJECT_STUCK_CHECK_INTERVAL;
384 extern const unsigned int APPROACH_OBJECT_STUCK_CHECK_ATTEMPTS;
385 extern const double APPROACH_OBJECT_STUCK_CHECK_ROT_THRESH;
386 extern const double APPROACH_OBJECT_STUCK_CHECK_VEL_THRESH;
387
388 // Stuck State
389 extern const double STUCK_SAME_POINT_PROXIMITY;
390 extern const double STUCK_HEADING_ALIGN_TIMEOUT;
391 extern const double STUCK_ALIGN_DEGREES;
392 extern const double STUCK_ALIGN_TOLERANCE;
393 extern const double STUCK_OBSTACLE_DISTANCE;
394 extern const double STUCK_OBSTACLE_RADIUS;
395
396 // Reverse State.
397 extern const double REVERSE_MOTOR_POWER;
398 extern const double REVERSE_DISTANCE;
399 extern const double REVERSE_TIMEOUT_PER_METER;
400 extern const bool REVERSE_MAINTAIN_HEADING;
401
402 // Search Pattern State
403 extern const double SEARCH_MOTOR_POWER;
404 extern const double SEARCH_ANGULAR_STEP_DEGREES;
405 extern const double SEARCH_SPIRAL_SPACING;
406 extern const double SEARCH_ZIGZAG_SPACING;
407 extern const double SEARCH_SNAKE_SLITHERS;
408 extern const double SEARCH_WAYPOINT_PROXIMITY;
409 extern const bool SEARCH_ENABLE_STUCK_DETECT;
410 extern const double SEARCH_STUCK_CHECK_INTERVAL;
411 extern const unsigned int SEARCH_STUCK_CHECK_ATTEMPTS;
412 extern const double SEARCH_STUCK_CHECK_ROT_THRESH;
413 extern const double SEARCH_STUCK_CHECK_VEL_THRESH;
414
415 // Navigating State.
416 extern const double NAVIGATING_MOTOR_POWER;
417 extern const double NAVIGATING_REACHED_GOAL_RADIUS;
418 extern const bool NAVIGATING_VERIFY_POSITION;
419 extern const double NAVIGATING_VERIFY_SAMPLE_TIME;
420 extern const bool NAVIGATING_ENABLE_STUCK_DETECT;
421 extern const bool NAVIGATING_SLOWDOWN_WITHIN_WAYPOINT_RADIUS;
422 extern const double NAVIGATING_STUCK_CHECK_INTERVAL;
423 extern const unsigned int NAVIGATING_STUCK_CHECK_ATTEMPTS;
424 extern const double NAVIGATING_STUCK_CHECK_ROT_THRESH;
425 extern const double NAVIGATING_STUCK_CHECK_VEL_THRESH;
426
428
432
433 // Stanley Controller config.
434 extern const double STANLEY_CROSSTRACK_CONTROL_GAIN;
435 extern const double STANLEY_WHEELBASE;
436 extern const double STANLEY_ANGULAR_VELOCITY_LIMIT;
437 extern const int STANLEY_PREDICTION_HORIZON;
438 extern const double STANLEY_PREDICTION_TIME_STEP;
439 extern const double STANLEY_MIN_STABLE_SPEED;
440
441 // Pure Pursuit Controller config.
442 extern const double CLOSE_RANGE_PENALTY;
443
444 // ASTAR config.
445 extern const double ASTAR_AVOIDANCE_MULTIPLIER;
446 extern const double ASTAR_MAX_SEARCH_GRID;
447 extern const double ASTAR_MAX_SEARCH_TIME;
448 extern const double ASTAR_NODE_SIZE;
449
451
455
456 // NavBoard.
457 extern const double NAVBOARD_MAX_GPS_DATA_AGE;
458 extern const double NAVBOARD_MAX_COMPASS_DATA_AGE;
459 extern const double NAVBOARD_EASTING_OFFSET;
460 extern const double NAVBOARD_NORTHING_OFFSET;
461 extern const double NAVBOARD_ALTITUDE_OFFSET;
462
464
465} // namespace constants
466
467#endif // AUTONOMY_CONSTANTS_H
Header file for the BoundingBoxTracking class, which is used to track bounding boxes in images using ...
Defines the Camera base interface class.
uint32_t uint
InterpolationFlags
PredefinedDictionaryType
Namespace containing all constants for autonomy software. Including AutonomyGlobals....
Definition AutonomyConstants.cpp:22