Technologies Used
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:
- First Reading: Capture RGB values via Raspberry Pi camera
- Second Reading: Perform consecutive reading for confirmation
- State Change Detection: Compare 1st reading β 2nd reading
- Ice Confirmation: If 2nd reading = Blue β Activate salt spreader
- 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.