# Separating Axis Theorem for Obstacle Detection

I'm currently working on a Robotics project. The project objective is to create a nonholonomic robot path finding algorithm to be integrated into an actual STM Controller. I am currently stuck at solving the obstacle detection part using the separating axis theorem.

 def has_collided(self, obj_1: List, obj_2: List):
polygons = [obj_1, obj_2]
for polygon in polygons:
for i1 in range(len(polygon)):
i2 = (i1 + 1) % len(polygon)
p1 = polygon[i1]
p2 = polygon[i2]

normal = [p2[1] - p1[1], p1[0] - p2[0]]

min_1, max_1 = self.check_projection(normal, obj_1)
min_2, max_2 = self.check_projection(normal, obj_2)
if max_1 < min_2 or max_2 < min_1:
return False
return True


The process currently takes very long to run when I activate the above obstacle detection but the simulation does not detect the obstacles. Would appreciate some guidance on this :) Thanks in advance!