TrackBot is a sophisticated Python Kivy application designed to control real physical robots through intuitive path drawing. Users can draw custom paths on their mobile device screen, and the application communicates with an actual robot to make it autonomously follow the drawn trajectory in the real world. The current version includes a virtual simulation for development and testing, but the ultimate goal is controlling physical robots that move according to your drawn paths.
- Real-time Path Drawing: Draw smooth, curved paths with your finger or mouse
- Visual Feedback: Bright blue path visualization with rounded joints for better aesthetics
- Responsive Canvas: Optimized for all screen sizes and orientations
- Physical Robot Control: Commands real robots to follow your drawn paths
- Development Simulation: Virtual bot for testing and development (current implementation)
- Wireless Communication: Bluetooth/WiFi connectivity to send path data to robots
- Customizable Speed: Adjustable speed control (1-10 scale) for real robot movement
- Real-world Translation: Converts screen coordinates to actual robot movement commands
- Real-time Distance Calculation: Automatic distance measurement as you draw
- Dual Units Display: Shows distance in both centimeters and meters
- Pixel-to-Real-World Conversion: 1 pixel = 0.1 cm conversion ratio
- Clear: Reset the canvas and start fresh
- Create: Generate the bot at the starting position
- Start: Begin bot movement along the path
- Pause/Resume (P/R): Toggle movement for analysis or demonstration
- Dark Theme: Modern dark interface with rounded corners
- Color-Coded Controls: Intuitive button colors for different functions
- Responsive Layout: Adaptive grid and box layouts
- Clean Typography: Clear labels and readable fonts
Python 3.7 or higherpip install kivypython Track_Bot.pyTo deploy on Android devices, you'll need:
pip install buildozer
buildozer android debug-
Drawing a Path:
- Touch and drag on the dark canvas area to draw your desired path
- The distance will be calculated and displayed in real-time
-
Creating the Bot:
- Click "Create" to spawn the bot at the starting point of your path
- The bot appears as a cyan circle
-
Controlling Movement:
- Use the speed slider to adjust bot movement speed (1-10)
- Click "Start" to begin bot movement along the path
- Use "P/R" to pause/resume movement at any time
-
Resetting:
- Click "Clear" to remove the path, bot, and reset all parameters
- DrawingWidget: Main canvas for path drawing and bot simulation
- TrackBotApp: Application container with UI layout management
- Real-time Rendering: Kivy graphics engine for smooth animations
- Distance Calculation: Euclidean distance between consecutive points
- Bot Movement: Linear interpolation with speed-based progression
- Path Following: Index-based navigation through path points
- Optimized Rendering: Efficient canvas updates using Kivy graphics
- Memory Management: Proper cleanup of graphics objects
- Responsive Updates: 50 FPS movement updates (0.02s intervals)
TrackBot is designed from the ground up to control real physical robots! The current software includes a simulation mode for development and testing, but the main objective is to build actual robots that can receive path commands from the mobile app and move accordingly in the physical world.
This is where YOU come in! I'm actively seeking passionate collaborators to bring the hardware component to life.
- Physical Robot Platform: Build actual robots that receive and execute path commands
- Real-time Communication: Bluetooth/WiFi connectivity between mobile app and robot
- Precision Movement: Encoders, IMUs, and positioning sensors for accurate path following
- Coordinate Translation: Convert mobile screen coordinates to real-world robot movements
- Autonomous Navigation: Advanced features like obstacle detection and path optimization
- Multi-robot Support: Control multiple robots simultaneously with different paths
- Electronics Engineers: PCB design, sensor integration, motor control
- Mechanical Engineers: Robot chassis design, wheel systems, mechanical assembly
- Embedded Developers: Microcontroller programming (Arduino, Raspberry Pi, ESP32)
- 3D Designers: Custom parts design and 3D printing
- Robotics Enthusiasts: Anyone passionate about bringing digital concepts to life!
- Microcontroller: ESP32/Raspberry Pi for processing and communication
- Motors: Stepper motors or DC motors with encoders for precise movement
- Sensors: IMU (gyroscope/accelerometer), ultrasonic sensors for obstacle detection
- Communication: Bluetooth/WiFi modules for app connectivity
- Power: Battery management system for portable operation
- Chassis: Custom 3D-printed or laser-cut frame
This is a REAL robotics project! We're building actual robots that move in the physical world based on paths you draw on your phone.
How to Join:
- Contact: [Your contact information - Email/Discord/GitHub]
- Skills Needed: Electronics, mechanical design, embedded programming, 3D modeling, robotics
- Commitment: Collaborative project - contribute what you can, when you can
- Location: Remote collaboration welcome worldwide
- Current Status: Software ready, hardware design phase starting
What You'll Build:
- Real robots that receive wireless commands from mobile apps
- Precision movement systems using motors and sensors
- Communication protocols between app and hardware
- Advanced features like obstacle avoidance and multi-robot coordination
Let's turn digital paths into real robot movements! ๐๐ค
- Real-time robot communication protocols
- Multi-robot support with different colored paths
- Path editing capabilities (add/remove waypoints)
- Speed profiles (variable speed along path segments)
- Robot status monitoring and feedback
- Export/import path data for sharing
- Advanced movement patterns (curves, acceleration profiles)
- PRIMARY GOAL: Build physical robots that follow drawn paths
- Real-time position feedback from robots to app
- Obstacle detection and avoidance systems
- Camera integration for visual robot tracking
- Voice commands for robot control
- GPS integration for large-scale outdoor navigation
- Swarm robotics (multiple coordinated robots)
- Battery monitoring and charging station integration
| Feature | Specification |
|---|---|
| Framework | Kivy (Cross-platform) |
| Language | Python 3.7+ |
| Graphics | Hardware-accelerated OpenGL |
| Platform Support | Windows, Linux, macOS, Android, iOS |
| Screen Compatibility | All resolutions, responsive design |
| Performance | 50 FPS simulation, real-time rendering |
| Memory Usage | Optimized for mobile devices |
We welcome contributions! Whether you're fixing bugs, adding features, or helping with hardware development:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Software: UI improvements, new features, performance optimization
- Hardware: Robot design, sensor integration, communication protocols
- Documentation: Tutorials, API documentation, hardware guides
- Testing: Unit tests, integration tests, hardware validation
We're building actual robots that move in the physical world based on your drawn paths. The simulation is just for development - the end goal is real hardware that you can control with your mobile device.
Join us and help build robots that bring digital creativity into the physical world! ๐คโจ๐