Skip to content

Repository files navigation

📱 ViniBot — Android Controller App

License: MIT Kotlin Platform

This repository contains the Android companion app for the ViniBot autonomous grape-harvesting system. It serves as the primary control interface, providing joystick navigation, autonomous mode orchestration, and real-time telemetry visualization.


🔗 Related Repositories

Component Repository Description
🍇 Pi 5 Controller VinaySurwase/ViniBot-Tri-Camera-Autonomous-Grape-Harvesting-Robot Main FSM, Stereo Vision, YOLOv8 segmentation, and WebSocket server.
🦾 STM32 Arm Controller bhoomikahardwani09/scara_robotic_arm SCARA robotic arm firmware for positioning and cutting.

✨ Features

  • Manual Control: High-precision D-pad interface for direct robot movement with haptic feedback.
  • Autonomous Monitoring: Live status tracking of the 7-state Finite State Machine (IDLE, DETECT, APPROACH, SEGMENT, CUT, MANUAL, ERROR).
  • Telemetry Stream: Real-time visualization of:
    • Detection: Method, confidence, and cluster status.
    • POI Coordinates: Target grape cluster positions (X, Y, Z) sent to the chassis.
    • Cut Coordinates: Precise stem cutting points (X, Y, Z) sent to the robotic arm.
  • Debug Console: Direct access to raw log streams and coordinate history via WebSocket.
  • Connection Management: Easy pairing with the Raspberry Pi ("phoenix") over the local network.

🛠 Tech Stack

  • Language: Kotlin
  • Architecture: MVVM (Model-View-ViewModel) with Activity-scoped ViewModels.
  • UI Framework: Material Design 3, Jetpack Navigation, ViewBinding.
  • Asynchrony: Kotlin Coroutines and StateFlow for real-time data binding.
  • Communication: WebSocket client for low-latency telemetry from the Pi 5.
  • Feedback: Custom haptic response system for tactile confirmation of robot commands.

📦 Getting Started

Prerequisites

  • Android Studio (Ladybug 2024.2.1 or newer recommended).
  • Android device running Android 8.0 (API 26) or higher.
  • A running instance of the ViniBot Pi 5 Controller.

Installation

  1. Clone this repository:
    git clone https://github.com/VinaySurwase/ViniBot-android.git
  2. Open the project in Android Studio.
  3. Sync Gradle and build the project.
  4. Deploy the app-debug.apk to your device.

Usage

  1. Connect your Android device and the Raspberry Pi to the same WiFi network.
  2. Open the Debug tab in the ViniBot app.
  3. Enter the Pi's IP address (default port is 8765).
  4. Tap Connect.
  5. Switch between Manual and Auto modes to control the robot.

🤝 Acknowledgements

This project was developed at IIITDM Jabalpur.

Role Contributor
Android App Architecture & UI Vinay Surwase
System Integration & WebSocket Vinay Surwase
SCARA Arm Firmware Bhoomika Hardwani

📄 License

This project is licensed under the MIT License — see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages