# ๐Ÿค– Team Inovatic
### World Robot Olympiad 2026 Future Engineers Passionate about robotics, innovation, engineering, and STEM education. Proudly representing **Inovatic Split**
--- ## ๐Ÿ“ŒTable of Contents * [๐Ÿ‘ฅ Team Members](#-team-members) * [๐ŸŽฏ Coach](#-coach) * [๐ŸŽ–๏ธ Honorable Mention](#๏ธ-honorable-mention) * [๐Ÿ† About Inovatic & Mission](#-about-inovatic) * [๐Ÿง  Initial Concept โ€“ Open Challenge](#-initial-concept--open-challenge) * [๐Ÿค– Robot Technical Documentation](#-robot-technical-documentation) * [๐Ÿ“ธ Project Gallery](#-project-gallery) * [๐Ÿงฑ Building Instructions](#-building-instructions) * [๐Ÿง  Software Architecture โ€“ Open Challenge](#-software-architecture--open-challenge) ## ๐Ÿ“ธ Team Photo
WhatsApp Image 2026-06-07 at 18 14 23
--- # ๐Ÿ‘ฅ Team Members ## ๐Ÿง‘โ€๐Ÿ’ป Josip Stepinac
| Information | Details | |------------|---------| | ๐ŸŽ‚ Age | 22 | | ๐ŸŽ“ College | PMF โ€“ Faculty of Natural Sciences and Mathematics, University of Split | ### About Me Hi! I am **Josip Stepinac**, and robotics has been a central part of my life and personal development for many years. I have participated in numerous WRO competitions and have spent the past five years actively teaching robotics and sharing my knowledge with others. Through robotics, I have developed strong problem-solving skills, a structured engineering mindset, and a deep understanding of how theory connects with real-world applications. It has shaped not only my technical abilities, but also the way I approach learning, teamwork, and challenges. This is my first year competing in this WRO category, and I see it as an important opportunity to step out of my comfort zone, explore new technologies, and continue growing both technically and personally. --- ## ๐Ÿง‘โ€๐Ÿ’ป Ivan Stepinac
ivan
| Information | Details | |------------|---------| | ๐ŸŽ‚ Age | 20 | | ๐ŸŽ“ College | FESB โ€“ Faculty of Electrical Engineering, Mechanical Engineering and Naval Architecture, University of Split | ### About Me Hi! I am **Ivan Stepinac**, a software developer with a strong passion for technology, innovation, and problem-solving. A significant part of my development comes from many years of involvement in robotics and participation in WRO competitions. Robotics has played a major role in shaping my mindset, technical skills, and approach to complex challenges. Beyond software development, I enjoy creating innovative and useful projects that can make a positive impact. One of my recent projects, **ShowMe**, is a video call application that translates sign language into text, helping improve communication for deaf and hard-of-hearing individuals. Whether I am developing software, working on robotics, or building new applications, I am always driven by learning and creating real-world impact. --- ## ๐Ÿง‘โ€๐Ÿ’ป Vito Drnjeviฤ‡
| Information | Details | |------------|---------| | ๐ŸŽ‚ Age | 19 | | ๐ŸŽ“ College | FESB โ€“ Faculty of Electrical Engineering, Mechanical Engineering and Naval Architecture, University of Split | ### About Me Hi! I am **Vito Drnjeviฤ‡**, and this is my fourth season participating in the World Robot Olympiad. After completing my final Robomission season, I decided to take on a new challenge and further expand my skills in robotics and programming. In addition to technology, I enjoy football, travelling, and exploring new experiences. I am excited to work alongside my teammates and continue growing through engineering and innovation. --- # ๐ŸŽฏ Coach ## ๐Ÿ‘จโ€๐Ÿซ Jozo Pivac
Jozo
### About Him He is a dedicated and goal-oriented coach, university professor, and founder of the Inovatic association, with a strong focus on education, innovation, and long-term student development. With a background in academia and hands-on experience in leading robotics and engineering teams, he combines theoretical knowledge with practical mentorship. His approach focuses on guiding students through real challenges, helping them develop technical skills, critical thinking, responsibility, and independence. Over the years, he has played a key role in building and supporting teams within the Inovatic community, creating an environment where students can grow, experiment, and turn ideas into real engineering projects. More than a coach, he is a mentor who connects education, research, and real-world application, shaping future engineers and innovators. --- ## ๐Ÿ‘จโ€๐Ÿซ Gratitude to Our Coach As a team, we are deeply grateful to our coach for his continuous support, guidance, and dedication throughout our entire robotics journey. He has been with us since our earliest days in primary school, and has played a fundamental role in shaping who we are today. Over the years, he has helped us develop not only technical skills in robotics, engineering, and programming, but also discipline, teamwork, and a strong mindset for growth. We are sincerely thankful for the opportunity he has given all three of us to experience robotics in a meaningful way and to contribute to the **Inovatic Split** community through knowledge and passion for technology. --- # ๐ŸŽ–๏ธ Honorable Mention ## ๐Ÿ‘จโ€๐ŸŽ“ Vito Tonลกiฤ‡
VitoTonsic
### About Him Vito Tonลกiฤ‡ has shown exceptional enthusiasm for robotics and a strong interest in the WRO competition. As an active participant in our workshops, he consistently demonstrates curiosity, dedication, and a willingness to take on new challenges. Despite being one of the younger students in the community, Vito has often contributed valuable ideas and shared his knowledge with older team members, helping them solve problems and improve their projects. His collaborative spirit, creativity, and eagerness to learn make him a positive influence within the team. Through his passion for innovation and teamwork, Vito represents the values of the Inovatic community and has earned recognition as a promising young engineer and future competitor. # ๐Ÿ† About Inovatic **Inovatic Split** is a STEM and robotics association dedicated to innovation, engineering, programming, and education. Through workshops, projects, and competitions, Inovatic helps young people develop technical skills, creativity, and teamwork while preparing them for real-world challenges. --- # ๐Ÿš€ Our Mission As Team Inovatic, we are united by a passion for robotics, engineering, and innovation. Our mission is to develop creative solutions, continuously improve our skills, and inspire others through STEM and robotics. Through WRO, we challenge ourselves to think critically, collaborate, and turn ideas into reality. --- # ๐Ÿง  Initial Concept โ€“ Open Challenge At the beginning of our development process for the World Robot Olympiad Future Engineers Open Challenge, our team focused on designing a reliable and efficient method for recognizing upcoming turns on the track. Our main goal was to improve autonomous navigation by enabling the robot to detect and react to turns in advance, ensuring smooth and stable movement throughout the run. --- ## ๐ŸŽฏ First Idea: Color-Based Turn Detection Our initial concept was based on **colored guide lines placed before each turn**: - ๐ŸŸ  Orange line โ†’ Right turn - ๐Ÿ”ต Blue line โ†’ Left turn A dedicated **color sensor** mounted close to the track would detect these markers in real time. Once detected, the robot would immediately prepare and execute the corresponding steering action. ### Advantages of this approach: - Fast and simple color recognition - Low computational complexity - Clear separation of left/right decision logic - Easy calibration during early testing --- ## ๐Ÿ“ก Supporting Navigation System At the same time, our robot was equipped with **two side-mounted distance sensors**: - Left sensor โ†’ measures distance to left wall - Right sensor โ†’ measures distance to right wall By comparing these values, the robot maintained proper centering on the track and corrected its position when drifting occurred. This ensured: - Stable movement - Reduced collisions - Improved trajectory accuracy --- ## โš™๏ธ Design Limitations & System Evaluation As the system evolved, we carefully evaluated hardware constraints and system complexity. We identified several limitations: - Limited number of available sensor ports on the control hub - High reliance on the camera system for visual processing - Increased computational load when combining multiple active sensors - Additional weight, wiring, and mechanical complexity These factors could negatively impact system stability and overall performance during competition runs. --- ## ๐Ÿ”„ Final Decision After discussion with our mentor, we decided to **abandon the color-based navigation system** and focus on a more streamlined approach using: - Camera-based perception - Distance sensor-based centering and navigation This decision improved: - System efficiency - Hardware simplicity - Overall reliability --- ## ๐Ÿ“š Conclusion Although this idea was not implemented in the final robot, it played an important role in our engineering process. It helped us: - Explore alternative navigation strategies - Understand hardware limitations - Improve system design thinking - Learn the importance of optimization in robotics Ultimately, this concept contributed significantly to the development of our final solution and our understanding of autonomous navigation systems.
--- ## ๐Ÿš€ Final Idea: Distance-Based Navigation & Turn Detection Our final approach for the Open Challenge is based on a **proportional centering system** that keeps the robot accurately aligned in the middle of the track. This is achieved using **two side-mounted distance sensors**, where: - The left sensor measures the distance to the left wall - The right sensor measures the distance to the right wall By continuously comparing and balancing these values, the robot maintains stable and proportional centering within the track. In addition, **turn detection is also based on these same distance sensors**. Changes in measured distances are used to identify upcoming turns, allowing the robot to react in advance and adjust its trajectory smoothly and efficiently. This approach provides a simplified, reliable, and tightly integrated navigation system that reduces hardware complexity while maintaining high accuracy and consistency during autonomous driving.

โš™๏ธ Innovation โ€ข Creativity โ€ข Teamwork โ€ข Excellence

### Team Inovatic | WRO 2026
--- # ๐Ÿค– Robot Technical Documentation ## ๐Ÿš— Introduction Our robot is based on a modified zCar-inspired chassis and uses Ackermann steering geometry. Originally, we considered converting a small toy car into an autonomous vehicle, but size limitations made it impossible to fit the required electronics and sensors. After researching existing RC car designs, we developed a simplified chassis optimized for the WRO Future Engineers challenge.
WhatsApp Image 2026-06-19 at 11 06 16
### Key Design Decisions - Inspired by the zCar project - Ackermann steering system - Suspension removed to reduce complexity - Raspberry Pi Zero W as the central controller - Camera-based perception - Ultrasonic wall-distance sensing --- ## ๐ŸŽฏ Robot Objectives The robot is designed to: - Drive autonomously between walls - Maintain a centered position on the track - Detect and avoid obstacles - Control steering and propulsion independently - Process camera data in real time - Support future upgrades and expansion --- ## ๐Ÿ—๏ธ System Overview The robot consists of four main subsystems: 1. Control System 2. Drive System 3. Sensor System 4. Computer Vision System The Raspberry Pi Zero W acts as the central control unit connecting all subsystems. --- ## ๐Ÿ”ง Hardware Configuration ### ๐Ÿ–ฅ๏ธ Control Unit **Raspberry Pi Zero W** - 1 GHz ARM11 Processor - 512 MB RAM - Wiโ€‘Fi & Bluetooth Connectivity - CSI Camera Interface - GPIO Support for Sensors and Actuators ### ๐Ÿ“ท Camera **JOY-IT RB Camera Module** Used for: - Obstacle Detection - Environment Analysis - OpenCV Image Processing ### ๐Ÿš˜ Steering System **SG90 Micro Servo** - Controls front wheel steering - PWM controlled via Raspberry Pi GPIO ### โšก Drive System **DC Motor + L293D Driver** Functions: - Speed Control - Direction Control - PWM-Based Motor Driving ### ๐Ÿ“ก Distance Sensors Two ultrasonic sensors are mounted on the sides of the robot and are used for: - Wall distance measurement - Centering within the track - Turn detection --- ## ๐ŸŽ๏ธ Mechanical Design Main mechanical components: - Ackermann steering front axle - Servo steering linkage - Rear drive axle - Camera mount - Battery compartment - Sensor mounts The robot belongs to the small autonomous vehicle category used in the WRO Future Engineers competition. --- ## ๐Ÿ”Œ Wiring Summary | Component | Connection | |------------|------------| | Servo Signal | GPIO18 | | Motor Driver IN1 | GPIO23 | | Motor Driver IN2 | GPIO24 | | Left Sensor TRIG | GPIO17 | | Left Sensor ECHO | GPIO27 | | Right Sensor TRIG | GPIO20 | | Right Sensor ECHO | GPIO21 | --- ## ๐Ÿ”‹ Power System The robot uses two independent power sources: ### Raspberry Pi System Powered by: - 5V / 3A Power Bank Supplies: - Raspberry Pi Zero W - Camera - Servo Motor - Sensors ### Drive Motor Powered separately through: - L293D Motor Driver - 9V Li-Ion Battery This separation improves stability and reduces voltage drops during acceleration. ### Future Upgrade Potential replacement of the power bank with: - Waveshare UPS HAT - DFRobot UPS HAT --- ## ๐Ÿ’ป Software Architecture ### Operating System **Raspberry Pi OS Lite** Reasons: - Lightweight - SSH-Friendly - Low Memory Usage ### Programming Language **Python** Chosen because of: - Excellent OpenCV Support - Fast Development - Existing Team Experience ### Main Libraries - OpenCV - Picamera2 - pigpio - NumPy The pigpio library significantly reduced servo jitter during testing. --- ## ๐Ÿ“Š Expected Camera Performance Using Raspberry Pi Zero W: | Parameter | Value | |------------|--------| | Resolution | 320ร—240 | | Frame Rate | 5โ€“15 FPS | | Reaction Time | 100โ€“250 ms | Suitable for stable low-speed autonomous navigation. --- ## ๐Ÿš€ Future Improvements Potential upgrades include: - More powerful Raspberry Pi - Higher-quality camera - Wheel encoders - IMU sensor - Environment mapping - Advanced computer vision algorithms --- # ๐Ÿ”„ Hardware Challenges & Architecture Update Throughout the development process, our team encountered several hardware integration challenges while testing the initial prototype. These challenges highlighted the complexity of combining motor drivers, sensors, power systems, and computer vision hardware within a compact autonomous vehicle. Rather than viewing these challenges as setbacks, we treated them as an opportunity to re-evaluate the overall system architecture and identify a more reliable long-term solution. --- ## โš ๏ธ Lessons Learned During testing, we observed that integrating all sensing, control, and processing tasks directly on the Raspberry Pi increased system complexity and introduced additional hardware reliability concerns. This experience provided valuable insights regarding: - Power management - Hardware reliability - System modularity - Maintainability - Scalability for future upgrades --- ## ๐Ÿ’ก Updated Development Strategy To improve reliability and accelerate development, we decided to redesign the system architecture by combining the strengths of both Raspberry Pi and LEGO SPIKE Prime. The goal of this approach is to separate high-level decision-making from low-level hardware control. --- ## ๐Ÿ—๏ธ Hybrid Architecture ### ๐Ÿ–ฅ๏ธ Raspberry Pi Responsible for: - Camera integration - Image acquisition - OpenCV processing - Environment analysis - Obstacle detection - Navigation decisions ### ๐Ÿงฑ LEGO SPIKE Prime Responsible for: - Motor control - Steering control - Sensor interfacing - Real-time actuator execution --- ## ๐Ÿ”— Communication Between Systems The Raspberry Pi and LEGO SPIKE will communicate continuously, allowing the exchange of: - Steering commands - Driving commands - Sensor measurements - Navigation data This architecture enables the Raspberry Pi to focus entirely on perception and decision-making while LEGO SPIKE handles reliable hardware execution. --- ## ๐Ÿš€ Advantages of the New Approach By combining both platforms, we benefit from the strengths of each system: | Raspberry Pi | LEGO SPIKE | |--------------|------------| | Advanced computer vision | Reliable motor control | | OpenCV support | Robust sensor integration | | High computational power | Modular hardware platform | | Future AI capabilities | Rapid prototyping | Expected benefits include: - Improved system stability - Reduced hardware complexity - Faster development cycles - Easier testing and debugging - Better scalability for future upgrades --- # ๐Ÿ“ธ Project Gallery
Image 1

Image 2

Image 3

Image 4

Image 5

Image 6

Image 7

Image 8
# ๐Ÿงฑ Building Instructions To ensure reproducibility and provide a complete overview of our robot design, detailed building instructions were created using Stud.io. The instructions include: - Complete chassis assembly - Steering mechanism construction - Sensor mounting positions - Structural components - Modular design elements ๐Ÿ“„ **Building Instructions PDF:** [ModelCar.pdf](ModelCar.pdf) These instructions allow anyone to rebuild the mechanical structure of the robot and better understand the engineering decisions behind the design. --- ## ๐Ÿ”ฎ Future Development The updated architecture creates a strong foundation for future enhancements such as: - Advanced object detection - Intelligent path planning - Autonomous navigation improvements - Machine learning integration - Enhanced computer vision algorithms This hybrid approach combines the computational capabilities of Raspberry Pi with the reliability and flexibility of LEGO SPIKE, creating a robust platform for future development and competition use. --- # ๐Ÿง  Software Architecture โ€“ Open Challenge ## ๐Ÿš— 1. Drive System Initialization Defines the drivetrain configuration and steering mechanism. ```python left_motor = Motor(Port.F, Direction.COUNTERCLOCKWISE) right_motor = Motor(Port.B, Direction.CLOCKWISE) drive = DriveBase( left_motor, right_motor, wheel_diameter=56, axle_track=114 ) steering = Motor(Port.D) steering.reset_angle(0) ``` ## ๐Ÿ“ก 2. Sensor Configuration Ultrasonic sensors are used for environmental awareness. ```python left_sensor = UltrasonicSensor(Port.E) right_sensor = UltrasonicSensor(Port.A) ``` ## ๐Ÿงญ 3. State Variables ```python target_heading = 0 last_error = 0 ``` Purpose - Stores desired robot orientation - PID derivative memory - Enables continuous heading correction across turns ## ๐Ÿ”ง 4. Utility Functions Clamp Function (Safety Limiter) ```python def clamp(v, mn, mx): return max(mn, min(mx, v)) ``` Purpose: - Prevents excessive steering commands - Ensures stable mechanical behavior Angle Normalization ```python def normalize(angle): while angle > 180: angle -= 360 while angle < -180: angle += 360 return angle ``` Purpose: - Keeps gyro values within stable range - Prevents overflow drift issues Sensor Filtering ```python def filtered_distance(sensor): total = 0 for i in range(5): total += sensor.distance() wait(3) return total / 5 ``` Purpose: - Reduces ultrasonic noise - Stabilizes wall detection - Improves reliability of gap detection ## ๐ŸŽฏ 5. PID-Based Driving (Core Control Loop) ```python def gyro_follow(): global last_error heading = hub.imu.heading() error = normalize(target_heading - heading) derivative = error - last_error steer = KP * error + KD * derivative steer = clamp(steer, -MAX_STEER, MAX_STEER) steering.run_target(500, steer, wait=False) last_error = error drive.drive(SPEED, 0) ``` ## ๐Ÿ”„ 6. Turn Logic (90ยฐ) ```python def turn_left_90(): global target_heading, last_error start = hub.imu.heading() target = start - TURN_ANGLE target_heading -= TURN_ANGLE steering.run_target(300, -40, wait=False) drive.drive(SPEED, 0) while hub.imu.heading() > target: wait(5) steering.run_target(300, 0, wait=True) last_error = 0 wait(150) ``` Purpose - Executes controlled 90ยฐ left turn - Updates global navigation reference - Resets PID state after rotation ## ๐Ÿšฆ 7. Main Navigation Loop ```python while True: left_dist = filtered_distance(left_sensor) right_dist = filtered_distance(right_sensor) if filtered_distance(left_sensor) > 1500: wait(100) turn_left_90() while filtered_distance(left_sensor) > 1500: gyro_follow() wait(10) if filtered_distance(right_sensor) > 1500: wait(100) turn_right_90() while filtered_distance(right_sensor) > 1500: gyro_follow() wait(10) gyro_follow() wait(10) ``` ## ๐Ÿง  System Summary | Component | Responsibility | |----------|----------------| | `gyro_follow()` | Continuous PID navigation | | `turn_left_90()` | Left intersection handling | | `turn_right_90()` | Right intersection handling | | `filtered_distance()` | Sensor stabilization | | Main loop | Decision engine |