This repository contains the ROS2 workspace and associated projects developed as part of the "Robotik" module during the Summer Semester 2024. The primary objective is to design and implement a 1:10 scale autonomous vehicle capable of navigating unfamiliar tracks using a combination of cameras and various sensors. The system integrates multiple Arduino boards and a Raspberry Pi 4 as the main control unit, with inter-component communication facilitated through ROS2 on an Ubuntu-based operating system.
-
Hardware Integration
- Utilize a Raspberry Pi 4 as the central processing unit.
- Incorporate multiple Arduino boards for sensor data acquisition and actuator control.
- Equip the vehicle with cameras and various sensors for environmental perception.
-
Software Development
- Develop ROS2 nodes for sensor data processing, decision-making, and control algorithms.
- Implement communication protocols between the Raspberry Pi and Arduino boards using ROS2 publisher and subscriber.
-
Autonomous Navigation
- Implement algorithms for path planning and obstacle avoidance.
- Develop computer vision techniques for track detection and following.
-
System Integration and Testing
- Integrate hardware and software components into a cohesive system.
- Test and validate the autonomous vehicle on various track configurations to assess performance and reliability.
-
Sensor Fusion
- Combine data from multiple sensors to create an accurate representation of the vehicle's environment.
-
Real-Time Processing
- Process sensor data and execute control algorithms in real-time to enable responsive navigation.
-
Modular ROS2 Architecture
- Utilize a modular design with ROS2 nodes to ensure scalability and ease of maintenance.
-
Camera-Based Track Detection
- Implement computer vision algorithms to detect and follow the track using camera input.
-
Obstacle Detection and Avoidance
- Develop mechanisms to detect obstacles and adjust the vehicle's path accordingly.
- Programming Languages: Python, C++
- Frameworks: ROS2 (Robot Operating System 2)
- Hardware: Raspberry Pi 4, Arduino boards, cameras, various sensors
- Operating System: Ubuntu
- Version Control: Git & GitHub
- Raspberry Pi 4 with Ubuntu installed
- Arduino boards
- ROS2 Foxy Fitzroy installed on the Raspberry Pi
- Cameras and sensors as specified in the hardware setup
-
Clone the repository to your Raspberry Pi:
git clone https://github.com/aakiev/Robotics-AutonomousDriving.git
-
Navigate to the workspace directory:
cd WS_AlMa -
Build the ROS2 workspace:
colcon build
-
Source the setup file:
source install/setup.bash -
Upload the Arduino code to the respective boards using the Arduino IDE.
-
Launch ROS2 Nodes:
- Start the necessary ROS2 nodes for sensor data processing and control.
-
Initialize the Vehicle:
- Ensure all hardware components are properly connected and powered.
-
Start Autonomous Mode:
- Execute the main launch file to begin autonomous navigation.
-
Monitor Performance:
- Use ROS2 tools to monitor topics and node statuses during operation.
- Implement advanced path planning algorithms for more complex track layouts.
- Integrate additional sensors for improved environmental perception.
- Enhance computer vision capabilities for better track detection under varying lighting conditions.
- Optimize system performance for faster processing and response times.