This project is an advanced robotic navigation system designed to detect and track Aruco markers in an environment. It utilizes a combination of computer vision, sensor calibration, and motor control to autonomously navigate through the arena, detecting markers, measuring distances, and correcting its path.
- Aruco Marker Identification: The system can accurately detect Aruco markers and retrieve their unique IDs.
- Distance Measurement: Using camera calibration, the system can estimate distances to the markers accurately.
- Camera Calibration: The robot automatically calibrates its camera based on the detected marker position.
- Rotation Detection: The system uses the MPU6050 sensor to detect and adjust for rotation during navigation.
- Encoder-based Distance Measurement: Motors are equipped with encoders to measure and control distances during movement.
- Path Correction: The robot can realign itself based on detected markers to ensure accurate navigation.
- Marker Search Algorithm: If a marker is missed, the system employs an intelligent search pattern to find it.
- Flexible Movement: The system can move forward, backward, and rotate in search patterns to optimize marker detection.
- Raspberry Pi with RPi.GPIO library
- OpenCV for Aruco marker detection
- MPU6050 for rotation tracking
- Motor encoders for distance tracking
- motor driver (any motor driver i used L298N motor driver)
- 12v to 5v buckconverter to powerup Raspberry Pi it need to be stable 5v ex:- atleast 5A
- Coolin fan (recomended otherwise it overheats)
-
Clone the repository:
git clone https://github.com/pasinduanuradhaperera/Impacto_24.git
-
Install required dependencies: check the code and all depends on os and versions check by own if any issue contact me
basic requirements
- opencv-python
- RPi.GPIO
- mpu6050-raspberrypi
-
Run the game: make sure all the files in a one folder run on that folder
python3 game.py
Once the game starts, the robot will begin detecting markers and navigating the arena. The system can be recalibrate using a physical switch connected to the Raspberry Pi GPIO pins.
- Press the switch to recalibrate when recalibrate robot need to in a non moving possition the robot.
- The robot will detect markers, adjust its path, and calibrate itself based on the marker's position.
Please see the CONTRIBUTION file for details on contributing to this project.
This project is licensed under the MIT License. See the LICENSE file for more details.
additional codes and things in this folder Additional
- service file for run the program on startup autoScript
- encoder file for identifies backwards and forwards running encoder
- some previous codes for take some idea ! prev