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.
| 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. |
- 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.
- 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.
- 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.
- Clone this repository:
git clone https://github.com/VinaySurwase/ViniBot-android.git
- Open the project in Android Studio.
- Sync Gradle and build the project.
- Deploy the
app-debug.apkto your device.
- Connect your Android device and the Raspberry Pi to the same WiFi network.
- Open the Debug tab in the ViniBot app.
- Enter the Pi's IP address (default port is
8765). - Tap Connect.
- Switch between Manual and Auto modes to control the robot.
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 |
This project is licensed under the MIT License — see the LICENSE file for details.