A.R.G.U.S 2.1.0
Adaptive Real-Time Guardian for Unsafe Situations
Loading...
Searching...
No Matches
Public Attributes | List of all members
VisionConfig Struct Reference

All tunable safety thresholds and zone boundaries for VisionProcessor. More...

#include <VisionConfig.hpp>

Public Attributes

int expectedMarkerId = 23
 The ArUco marker ID the system expects to detect.
 
float maxSpeed = 200.0f
 Maximum permitted marker centroid displacement in pixels/second.
 
int safeZoneXMin = 100
 Left boundary of the safe zone in pixels.
 
int safeZoneXMax = 500
 Right boundary of the safe zone in pixels.
 
int safeZoneYMin = 100
 Top boundary of the safe zone in pixels.
 
int safeZoneYMax = 400
 Bottom boundary of the safe zone in pixels.
 
float orientationMin = -45.0f
 Minimum permitted marker orientation angle in degrees.
 
float orientationMax = 45.0f
 Maximum permitted marker orientation angle in degrees.
 
int dictionaryId = cv::aruco::DICT_6X6_250
 ArUco dictionary used for marker detection.
 
int depthHueLower1 = 155
 Lower hue bound for pink/magenta.
 
int depthHueUpper1 = 165
 Upper hue bound for pink/magenta.
 
int depthHueLower2 = 255
 Disabled - lower > upper produces empty mask2.
 
int depthHueUpper2 = 0
 Disabled - see depthHueLower2 above.
 
int depthSatMin = 220
 
int depthSatMax = 255
 Maximum saturation threshold.
 
int depthValMin = 200
 
int depthValMax = 255
 Maximum value threshold.
 
int depthPixelThreshold = 500
 Minimum number of HSV-matching pixels required to confirm the forbidden layer is exposed.
 
bool depthCheckEnabled = true
 Runtime enable/disable flag for Stage 8 colour detection.
 

Detailed Description

Injected into VisionProcessor at construction time via the constructor parameter. Stored by value inside VisionProcessor so external changes after construction cannot affect in-flight safety decisions.

Usage
VisionConfig config;
config.expectedMarkerId = 42;
config.maxSpeed = 150.0f;
VisionProcessor vp(config);
All tunable safety thresholds and zone boundaries for VisionProcessor.
float maxSpeed
Maximum permitted marker centroid displacement in pixels/second.
int expectedMarkerId
The ArUco marker ID the system expects to detect.

Definition at line 35 of file VisionConfig.hpp.

Member Data Documentation

◆ depthCheckEnabled

bool VisionConfig::depthCheckEnabled = true

Allows the depth check to be toggled from the UI without recompiling. Satisfies the brief requirement for mouse-adjustable parameters and supports testing of the remaining pipeline stages in isolation.

true = Stage 8 active (default, production behaviour). false = Stage 8 bypassed (testing / calibration mode).

Definition at line 195 of file VisionConfig.hpp.

Referenced by VisionProcessor::process().

◆ depthHueLower1

int VisionConfig::depthHueLower1 = 155

Definition at line 155 of file VisionConfig.hpp.

Referenced by VisionProcessor::process(), and AppController::runLiveMarkerTest().

◆ depthHueLower2

int VisionConfig::depthHueLower2 = 255

Definition at line 158 of file VisionConfig.hpp.

Referenced by VisionProcessor::process(), and AppController::runLiveMarkerTest().

◆ depthHueUpper1

int VisionConfig::depthHueUpper1 = 165

Definition at line 156 of file VisionConfig.hpp.

Referenced by VisionProcessor::process(), and AppController::runLiveMarkerTest().

◆ depthHueUpper2

int VisionConfig::depthHueUpper2 = 0

Definition at line 159 of file VisionConfig.hpp.

Referenced by VisionProcessor::process(), and AppController::runLiveMarkerTest().

◆ depthPixelThreshold

int VisionConfig::depthPixelThreshold = 500

Acts as a noise gate - isolated reflections, stray colour patches, or single-pixel sensor noise will not trigger a freeze. If false positives occur during testing, increase this value. If the system is slow to detect a genuine exposure, decrease it.

Recommended starting point: 500 pixels at 640x480 resolution.

Definition at line 182 of file VisionConfig.hpp.

Referenced by VisionProcessor::process(), and AppController::runLiveMarkerTest().

◆ depthSatMax

int VisionConfig::depthSatMax = 255

Definition at line 164 of file VisionConfig.hpp.

Referenced by VisionProcessor::process(), and AppController::runLiveMarkerTest().

◆ depthSatMin

int VisionConfig::depthSatMin = 220

Minimum saturation threshold. Pink is highly saturated; filters weak/washed-out pixels.

Definition at line 161 of file VisionConfig.hpp.

Referenced by VisionProcessor::process(), and AppController::runLiveMarkerTest().

◆ depthValMax

int VisionConfig::depthValMax = 255

Definition at line 169 of file VisionConfig.hpp.

Referenced by VisionProcessor::process(), and AppController::runLiveMarkerTest().

◆ depthValMin

int VisionConfig::depthValMin = 200

Minimum value (brightness) threshold. Pink is bright; filters very dark pixels.

Definition at line 166 of file VisionConfig.hpp.

Referenced by VisionProcessor::process(), and AppController::runLiveMarkerTest().

◆ dictionaryId

int VisionConfig::dictionaryId = cv::aruco::DICT_6X6_250

DICT_6X6_250 by default - provides high inter-marker Hamming distance, reducing false positives in safety-critical contexts. Change here to switch dictionary without modifying VisionProcessor.

Definition at line 126 of file VisionConfig.hpp.

◆ expectedMarkerId

int VisionConfig::expectedMarkerId = 23

Any detected marker with a different ID is treated as TOOL_NOT_DETECTED to prevent spoofing by foreign markers in the scene. Default: 23.

Definition at line 46 of file VisionConfig.hpp.

Referenced by AppController::runLiveMarkerTest().

◆ maxSpeed

float VisionConfig::maxSpeed = 200.0f

Exceeding this threshold triggers SafetyState::EXCESSIVE_SPEED. Calibrate against the robot's maximum safe operational speed projected into image space at the working distance. Default: 200.0 px/s.

Definition at line 58 of file VisionConfig.hpp.

◆ orientationMax

float VisionConfig::orientationMax = 45.0f

Computed from corner[0] to corner[1] using atan2. Default: 45.0 degrees.

Definition at line 115 of file VisionConfig.hpp.

◆ orientationMin

float VisionConfig::orientationMin = -45.0f

Computed from corner[0] to corner[1] using atan2. Default: -45.0 degrees.

Definition at line 107 of file VisionConfig.hpp.

◆ safeZoneXMax

int VisionConfig::safeZoneXMax = 500

Centroid x must be <= safeZoneXMax. Default: 500.

Definition at line 78 of file VisionConfig.hpp.

Referenced by VisionProcessor::process().

◆ safeZoneXMin

int VisionConfig::safeZoneXMin = 100

Centroid x must be >= safeZoneXMin. Default: 100.

Definition at line 71 of file VisionConfig.hpp.

Referenced by VisionProcessor::process().

◆ safeZoneYMax

int VisionConfig::safeZoneYMax = 400

Centroid y must be <= safeZoneYMax. Default: 400.

Definition at line 92 of file VisionConfig.hpp.

Referenced by VisionProcessor::process().

◆ safeZoneYMin

int VisionConfig::safeZoneYMin = 100

Centroid y must be >= safeZoneYMin. Default: 100.

Definition at line 85 of file VisionConfig.hpp.

Referenced by VisionProcessor::process().


The documentation for this struct was generated from the following file: