public AutonomyHandler(AutonomyConfiguration configuration, ref TelemetryHandler telemetryHandler)
        {
            // Assign fields
            this.configuration = configuration;

            // Create localization logic
            localization = new MonteCarloLocalization(configuration);

            // Create robot
            robot = new Robot(configuration);

            // Create stopwatch
            stopwatch = new Stopwatch();

            // Add telemetry callback
            telemetryHandler.TelemetryFeedbackProcessed += telemetryHandler_TelemetryFeedbackProcessed;

            // Create timer
            timer = new Timer(configuration.Interval);
            timer.Elapsed += timer_Elapsed;

            // Create algorithms
            depositionAlgorithm = new Deposition(configuration);
            lowRiskLocalizationAlgorithm = new LowRiskLocalization(configuration);

            // Create static state
            staticOutput = new Dictionary<CommandFields, short>();
            staticOutput[Comms.CommandEncoding.CommandFields.Mode] = 1;
            staticOutput[Comms.CommandEncoding.CommandFields.FrontCameraState] = 0;
            staticOutput[Comms.CommandEncoding.CommandFields.BucketCameraState] = 0;
            staticOutput[Comms.CommandEncoding.CommandFields.RearCameraState] = 0;
        }
Example #2
0
        public Robot(AutonomyConfiguration configuration)
            : base()
        {
            // Set configuration
            this.configuration = configuration;

            // Set initial zone
            this.expectedZone = Zone.Starting;
        }
        public MonteCarloLocalization(AutonomyConfiguration configuration)
        {
            // Assign fields
            this.configuration = configuration;

            // Initialize random number generator
            MathHelper.random = new Random((int)DateTime.Now.Ticks);

            // Initialize field
            field = new Field(FieldWidth, FieldHeight, DigX, ObstacleX, configuration.WallMargin);
        }
Example #4
0
 public Deposition(AutonomyConfiguration configuration)
 {
     // Assign fields
     this.configuration = configuration;
     this.turnDirection = TurnDirection.Right;
 }
 public LowRiskLocalization(AutonomyConfiguration configuration)
 {
     this.configuration = configuration;
     this.turnDirection = TurnDirection.Right;
 }
 public PotentialFieldTraversal(AutonomyConfiguration configuration)
 {
     // Assign fields
     this.configuration = configuration;
     // Set state
 }