RoBuddy

Welcome to RoBuddy, a Timer Application for shooting competitors which is designed to enhance the experience and efficiency of shooting competitions, specifically tailored for IPSC (International Practical Shooting Confederation), PRS (Precision Rifle Series), and DMR (Designated Marksman Rifle) competitions. The application is intended for use on Apple iOS and watchOS, as well as Android OS and wearable devices. The primary goal of the Timer Application is to allow shooting competitors to follow Range Officers' instructions accurately during competitions by providing accurate timing and alerts for remaining time and timeouts. The application aims to engage automatically after receiving signals from Range Officers and provide customizable alerts through sound and vibration. Additionally, the application must be ergonomically designed to be usable and visible for adult male and female users across various shooting positions and devices.

Industry - Sports Technology
Client - Redsen
Project Duration - 6 months (in progress)
Project Name - RoBuddy
Sweden

Challenge

One of the most important technical challenges of the RoBuddy Timer Application project is building a robust and generalizable Beep Recognition Model. Our biggest hurdle was developing an accurate and real-world usable ML model capable of recognizing diverse beep sounds encountered during the competition. This involved: Data acquisition: Gathering a comprehensive dataset of varied beep sounds across different environments and devices. Model training: Building and fine-tuning a machine learning model that could effectively differentiate between different beep types despite background noise and variations in sound quality. Generalizability: Ensuring the model wasn't overly reliant on specific training data and could adapt to unseen beep sounds in real-world scenarios. The next challenge we faced was to achieve Perfect Real-Time Synchronization: For the Timer we used Machine Learning (ML) for audio recognition to recognize and start the timer on time without user intervention.

Page Blog Image

Solution

From the technical point of view we have the following solutions: For sharing data between Phone and Watch: For iPhone and iWatch: We used Apple's WatchConnectivity Framework which is written in Swift and integrated it with Flutter through FlutterMethodChannels that allows communication between Flutter framework and the Native framework so that we have one codebase for the data sync in Android ecosystem and Apple ecosystem and just very little native code. For Android phone and watch: We used Wearable Data Layer APIs under the hood with Flutter SmartWatch Plugin to synchronize data between phone and watch. WatchConnectivity and Wearable Data Layer APIs utilize Bluetooth and WiFi for communication depending on availability. Regarding Perfect Real-Time Synchronization: For the Apple eco system we used: Apple's Create ML app to train data from the competition to recognize when the timer should start. The model was Integrated with Apple's Sound Analysis to manage getting sounds from the mic and interpreting to get results. For the Android ecosystem we used: Google's Tensorflow(lite) to train and Interpret data from the environment to determine when the timer should start.

Page Blog Image

Key Features

  • For Shooting Competitions-RoBuddy is tailored to facilitate shooting matches making them more exciting and efficient, focusing on IPSC, PRS and DMR competitions.

  • Cross-Platform Compatibility-This includes Apple iOS, watchOS, Android OS as well as other wearable devices that enable its accessibility across different platforms.

  • Accurate Timing and Alerts-In this regard, the app acts like a rangefinder for shooting competitors to let them follow Range Officers’ instructions properly during their courses. Alerts for remaining time or timeouts are provided reminding the players not to lose focus during their rounds.

  • Automatic Engagement-The competition process is streamlined through this application as it activates once signals are received from Range Officers thus eliminating the need for manual intervention.

  • Customizable Alerts-Users can personalize alerts using sound and vibration in order to suit their liking so that they receive information in their preferred form of notification before their competitor does.

  • Ergonomic Design-This implies that the application can be used by adult males and females in different shooting positions and over different devices. It helps in enhancing accessibility and usability during competitions.

Used Tech Stack

Programming languages:
Dart

Dart

Java

Java

Kotlin

Kotlin

Swift

Swift

Machine learning tools:
CoreML

CoreML

Tensorflow

Tensorflow

Development tools:
Android Studio

Android Studio

XCode

XCode

VS Code

VS Code

UI Frameworks:
Flutter

Flutter

Swift UI

Swift UI

Testing and debugging:
Flutter Test

Flutter Test