Autopark is an autonomous navigation and parking system designed for Viam-based rovers. The project leverages the sensors and modules available in the Viam Rover, including LiDAR, SLAM, and color detection, to create an efficient autoparking system.
Here is a quick video of the project:
To simulate a parking lot, we use printed images of cars like the one below:
Here is a diagram representing our parking lot:
To detect empty spots in the parking lot, we utilized a Roboflow model called 'vehiclecount' to detect vehicles. We perform inference 10 times to mitigate the model's inaccuracy.
For navigation, we leveraged SLAM and color detection models of the Viam Rover using two approaches:
- 
SLAM: We utilized the lidar of to leverage SLAM capabilities of the Viam Rover to navigate the parking lot and find an empty spot. The script for SLAM is available at /src/slam.py. 
- 
Color Detection: We utilized the color detection feature of the Viam Rover to align and navigate around the parking lot. The script for color detection is available at /src/color-detection.py. 
- The rover navigates through the parking lot lane.
- At each spot, the rover performs the following steps:
- Rotates 90 degrees to the left and then 90 degrees to the right to scan the parking spot.
- Uses object detection to determine if the spot is empty or occupied by detecting a car object.
- Aligns to the guiding lines and then parks itself.
 
- This process repeats until the rover identifies an empty parking spot.
- Viam Rover with Viam SDK
- Python
- Roboflow API
- Clone this repository and navigate to the repository directory:
git clone https://github.com/kiandrew08/autopark.git cd autopark
- Install the required dependencies:
pip install -r requirements.txt 
- Update your VIAM keys and Roboflow API key in the scripts and run the scripts.
- Run the SLAM script:
python3 slam.py 
- Run the color detection script:
python3 color-detection.py 
- The model might not be reliable.
- We do not have efficient obstacle detection.
- Additional limitations may exist.
- Ashok Timsina
- Kian Busico

