DriveFusion is a comprehensive autonomous vehicle deployment system that combines advanced AI vision processing with robust ROS-based vehicle control. The system supports multiple operational modes including real-time autonomous driving, single-shot decision making, and video/image processing.
- Real-time Autonomous Driving: Continuous AI-powered navigation and decision making
- Multi-modal Input Support: Process live feeds, video files, or static images
- Advanced Vision AI: Qwen 2.5 Vision-Language model for intelligent scene understanding
- ROS Integration: Robust Robot Operating System integration for vehicle control
- Comprehensive Debugging Tools: Network diagnostics, ROS monitoring, and detailed analysis tools
- Modular Architecture: Flexible client-server design for easy deployment and maintenance
AI Vision Server Components
vm_server.py- Main AI vision inference server powered by Qwen 2.5 VL model
Autonomous Driving Client Applications
realtime_car_client.py- Real-time autonomous driving with continuous operationsingle_shot_car_client.py- Single decision mode for frame-by-frame processingvideo_car_client.py- Video file processing and frame extractionimage_car_client.py- Static image analysiscar_controller.py- Vehicle motion control system (ROS-based)
Testing and Validation Suite
car_movement_tester.py- Interactive car movement testing utilitytest_direct_movement.py- Direct ROS command testing with curved movementstest_server_connection.py- VM server connectivity validation
Diagnostic and Debugging Tools
car_client_debug.py- Comprehensive debugging (network, HTTP, image, VM analysis)debug_ros_topics.py- ROS cmd_vel message monitoringcheck_ros_topics.py- Available ROS topics discovery
- Python 3.10 or higher
- ROS (Robot Operating System) - Noetic or Humble recommended
- System Dependencies: OpenCV, PIL/Pillow, PyTorch, transformers
-
Clone the repository
git clone https://github.com/DriveFusion/car-deployment.git cd car-deployment -
Install dependencies
pip install -r requirements.txt
-
Configure ROS environment
source /opt/ros/<distro>/setup.bash
cd server/
python3 vm_server.pyThe server will be available at http://localhost:5000
Real-time Mode (Continuous)
cd client/
python3 realtime_car_client.pySingle-shot Mode (Frame-by-frame)
cd client/
python3 single_shot_car_client.pyVideo Processing
cd client/
python3 video_car_client.py --video <path_to_video>Image Processing
cd client/
python3 image_car_client.py --image <path_to_image>Test Vehicle Movement
cd testing/
python3 car_movement_tester.pyTest Server Connectivity
cd testing/
python3 test_server_connection.pyTest Direct Movement Commands
cd testing/
python3 test_direct_movement.pyFull System Diagnostics
cd debugging/
python3 car_client_debug.pyMonitor ROS Topics
cd debugging/
python3 debug_ros_topics.pyList Available ROS Topics
cd debugging/
python3 check_ros_topics.py| Package | Purpose |
|---|---|
| Python 3.10+ | Runtime environment |
| ROS | Vehicle control and messaging |
| OpenCV | Image processing |
| Pillow | Image manipulation |
| PyTorch | Deep learning inference |
| transformers | Qwen 2.5 Vision-Language model |
| requests | HTTP communication |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β DriveFusion Autonomous Vehicle System β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββββββββββββββ ββββββββββββββββββββ β
β β Clients β β VM Server β β
β β ββββββββββββΊβ (Qwen 2.5 VL) β β
β β β’ Real-time β HTTP REST β β β
β β β’ Single-shotβ Image/JSONβ β’ Vision AI β β
β β β’ Video β β β’ Decision Logic β β
β β β’ Image β β β β
β ββββββββββββββββ ββββββββββββββββββββ β
β β β
β β ROS Commands β
β βΌ β
β ββββββββββββββββββββββββ β
β β ROS Car Controller β β
β β (cmd_vel topics) β β
β ββββββββββββββββββββββββ β
β β β
β βΌ β
β ββββββββββββββββββββββββ β
β β Vehicle Hardware β β
β ββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Server Setup: See
server/directory for detailed configuration - Client Development: Refer to client implementations for integration examples
- Testing: Check
testing/for validation procedures - Troubleshooting: Use debugging tools in
debugging/directory
Contributions are welcome! Please ensure code changes follow the project's structure and include appropriate testing.
This project is licensed under the Apache License 2.0 - see the LICENSE file for complete details.
- Permissions: Commercial use, modification, distribution, private use
- Conditions: License and copyright notice must be included
- Limitations: Trademark use, liability, and warranty disclaimers apply
Copyright Β© 2024 DriveFusion. All rights reserved.
For issues, questions, or contributions, please open an issue or contact the DriveFusion team.
Happy autonomous driving! πβ¨
