Skip to main content
Back to Projects
Embedded Systems and Robotics2025Completed

IceSee: Ice Detection and Salt Spreading Robot

An autonomous robot designed for ice detection and automated salt spreading. Developed by Team P-23 at UdeS with line-following navigation, color-based ice detection, and obstacle avoidance.

Technologies Used

C++Arduino UnoRaspberry PiPiCamera 2HC-SR04 SonarRGB Color SensorServo Motor

IceSee: Ice Detection and Salt Spreading Robot

🎯 Project Overview

IceSee is an autonomous robot designed to navigate paths, detect icy patches (represented by the color blue), and distribute salt uniformly while avoiding obstacles. This project, developed by Team P-23 at UniversitΓ© de Sherbrooke, focuses on practical robotics applications for winter safety.

Project Type: Embedded Systems and Robotics
Duration: Fall 2025
Team: Team P-23 (8 students: 4 Computer Engineering, 4 Electrical Engineering)
Status: Completed


✨ Core Functionalities

1. Path Execution

  • Line-follower logic for navigating straight and curved paths
  • Two-motor control system with differential steering
  • Sensor-based trajectory adjustment

2. Ice Detection

  • Color-based detection using RGB values
  • Identifies "ice" represented by blue color
  • Dual-reading confirmation system for accuracy

3. Object Detection

  • Sonar sensors for distance measurement
  • Obstacle avoidance capabilities
  • Alternating sensor logic for comprehensive coverage

4. Salt Spreading

  • Automated distribution triggered by ice detection
  • Uniform spreading mechanism
  • Precise control via servo motor

πŸ—οΈ Technical Components & Hardware

Sensors and Control Systems

| Component | Technical Details | |-----------|-------------------| | Sonar Sensors | Two HC-SR04/HY-SRF05 units for distance measurement and obstacle detection | | Color Sensor | RGB sensor detecting color values; triggers salt spreading when "Blue" (ice) is confirmed | | Microcontrollers | Arduino Uno for low-level motor and sensor control
Raspberry Pi with PiCamera 2 and reTerminal for high-level logic and vision processing | | Motors | Two DC motors for differential drive system |

Salt Spreader Mechanism (Mechanical Design)

The salt spreading system features a custom-designed mechanism optimized for uniform distribution:

Base Structure:

  • Modified seed spreader adapted for salt distribution
  • Modular design for easy maintenance

Distribution System:

  • Rotating disk with optimized geometry for uniform spreading
  • Engineered for consistent coverage patterns
  • Fine-tuned rotation speed for optimal salt distribution

Control Mechanism:

  • 180Β° Servo Motor manages a control disk
  • Aperture system for precise opening/closing of reservoir
  • Flow regulation for controlled salt dispensing

Reservoir Design:

  • Detachable funnel design for easy refilling
  • Modular construction for maintenance access
  • Capacity optimized for extended operation

πŸ’» Software Logic & Algorithms

Execution Flow

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         Main Control Loop               β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                         β”‚
β”‚  1. Line Following Navigation           β”‚
β”‚     β”œβ”€ Read line sensors                β”‚
β”‚     β”œβ”€ Adjust motor speeds              β”‚
β”‚     └─ Maintain path trajectory         β”‚
β”‚                                         β”‚
β”‚  2. Ice Detection                       β”‚
β”‚     β”œβ”€ Capture camera image             β”‚
β”‚     β”œβ”€ Analyze RGB values               β”‚
β”‚     β”œβ”€ Confirm with dual reading        β”‚
β”‚     └─ Trigger salt spreader if ice     β”‚
β”‚                                         β”‚
β”‚  3. Obstacle Avoidance                  β”‚
β”‚     β”œβ”€ Read sonar sensors               β”‚
β”‚     β”œβ”€ Calculate distances              β”‚
β”‚     └─ Adjust path if obstacle detected β”‚
β”‚                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Line Following Algorithm

Logic:

  • Activates two motors for forward movement
  • If Left sensor triggered β†’ Stop left motor (turn right)
  • If Right sensor triggered β†’ Stop right motor (turn left)
  • Maintains trajectory along the line

Ice Detection Algorithm

Multi-Stage Confirmation Process:

  1. First Reading: Capture RGB values via Raspberry Pi camera
  2. Second Reading: Perform consecutive reading for confirmation
  3. State Change Detection: Compare 1st reading β‰  2nd reading
  4. Ice Confirmation: If 2nd reading = Blue β†’ Activate salt spreader
  5. Action: Trigger servo motor to open salt distribution mechanism

Pseudo-code:

if (reading1 != reading2 && reading2 == BLUE) {
    activateSaltSpreader();
}

Sonar Logic

Distance Measurement:

  • Alternates between two HC-SR04 sensors
  • Calculates distance using ultrasonic time-of-flight
  • Returns values for obstacle avoidance decision-making
  • Operates within defined minimum and maximum distance limits

πŸš€ Technical Highlights

Hybrid Control Architecture

Arduino Uno (Low-Level Control):

  • Real-time motor control
  • Sensor data acquisition
  • Line-following logic
  • Salt spreader servo control

Raspberry Pi (High-Level Processing):

  • Camera image processing
  • RGB color analysis
  • Decision-making algorithms
  • System coordination

Embedded Programming

  • Efficient C++ code for Arduino
  • Python for Raspberry Pi vision processing
  • Inter-processor communication protocol
  • Real-time control loops

Mechanical Engineering

  • Custom salt spreader mechanism
  • Optimized disk design for uniform distribution
  • Modular reservoir system
  • Robust chassis design

πŸ“Š Testing & Results

Performance Analysis

| System Component | Performance | Notes | |-----------------|-------------|-------| | Line Following | Good on straight/gentle curves | Struggles with sharp 90Β° turns | | Color Sensing | Variable | Highly dependent on ambient lighting | | Sonar Detection | Reliable within range | Limited by min/max distance constraints | | Salt Spreader | Good after tuning | Requires calibration for optimal coverage |

Successful Demonstrations

  • βœ… Autonomous navigation along predefined paths
  • βœ… Ice detection and confirmation system
  • βœ… Automated salt spreading on detected ice
  • βœ… Obstacle avoidance in test environment
  • βœ… Integration of multiple subsystems

πŸŽ“ What I Learned

Embedded Systems Integration

  • Coordinating multiple microcontrollers (Arduino + Raspberry Pi)
  • Real-time control system design
  • Sensor fusion and data processing
  • Hardware-software interface design

Computer Vision

  • RGB color detection and analysis
  • Image processing on embedded systems
  • Lighting compensation techniques
  • Dual-reading confirmation strategies

Robotics & Control

  • Line-following algorithms
  • Differential drive control
  • Obstacle avoidance logic
  • Servo motor control for mechanical systems

Mechanical Design

  • Salt distribution mechanism design
  • Rotating disk optimization
  • Modular system architecture
  • Practical considerations for field deployment

Testing & Debugging

  • Iterative testing methodology
  • Performance tuning and calibration
  • Identifying and addressing edge cases
  • System integration challenges

πŸ† Conclusion

IceSee (Team P-23) successfully demonstrates the integration of multiple embedded systems technologies to solve a practical winter safety problem. The project combines line-following navigation, computer vision-based ice detection, obstacle avoidance, and automated salt distribution into a cohesive autonomous system.

The experience taught valuable lessons about:

  • Real-world constraints (lighting, sharp turns, sensor limitations)
  • Importance of iterative testing and calibration
  • Trade-offs in system design decisions
  • Integration of mechanical, electrical, and software components

Key Takeaway: Building functional autonomous systems requires not just implementing individual components, but carefully integrating them while accounting for real-world variability and constraints. Testing and calibration are as important as initial design.


πŸ‘₯ Team P-23 Contributions

Computer Engineering Team (4 members):

  • Software architecture and algorithm development
  • Arduino and Raspberry Pi programming
  • Ice detection algorithm and vision processing
  • System integration and testing

Electrical Engineering Team (4 members):

  • Circuit design and sensor integration
  • Power system design and management
  • Motor driver implementation
  • Salt spreader mechanism design

Collaborative Efforts:

  • System architecture design
  • Hardware-software integration
  • Testing and calibration
  • Documentation and presentation

This project was developed by Team P-23 as part of the Embedded Systems course at UniversitΓ© de Sherbrooke (Fall 2025). It demonstrates practical application of robotics, computer vision, and autonomous systems in solving real-world challenges.