Untitled

임의로 생성된 주차 공간의 좌표 값을 측정하여 측정된 값을 토대로 다각형 주차공간 영역을 생성한다. 여기서 좌표 값은 절대 좌표 값이다. 이후 Lidar를 통해 생성된 주차 공간 내부의 장애물 여부를 판단하고 장애물이 존재하면 주차 불가, 장애물이 존재하지 않으면 주차 가능한 곳으로 판단하여 최종적으로 주차 가능한 영역의 번호를 메시지로 넘긴다. 여기서 장애물 판단을 위해 주차 공간이 절대좌표를 기반으로 생성된 것임을 고려하여 Lidar가 포인트 정보를 받아올 때 절대좌표로 나타낼 수 있도록 현재의 yaw 값에 따른 회전변환을 적용하였다. 그리고 장애물의 유무 판단은 noise발생에 따른 오차를 고려하여 영역 내 감지되는 포인트의 개수가 10개 이상일 때의 경우를 장애물이 존재하는 것으로 판단하였다. 이는 확률적으로도 얻어진 최적의 결과이기도 하다. 최종적으로 주차는 하나의 영역에서만 진행할 수 있기 때문에 여러 개의 영역에서 주차 가능하다고 판단될 경우에는 플랫폼과 가장 가까운 영역의 번호를 보내도록 하였다.

아래의 결과는 시뮬레이션 상에서 주차 공간을 다각형으로 나타낸 것과 공간 내부에 장애물이 존재할 경우 포인트로 어떻게 나타내어지는지 rviz를 통해 시각적으로 확인한 결과이다

Untitled

위의 결과를 보면 6개의 공간에 모두 장애물이 존재함에도 불구하고 뒤의 5번과 6번에서는 포인트의 개수로 보아 장애물이 잘 감지되지 않는다는 사실을 알 수 있다. 이렇게 되면 5번과 6번을 주차 가능 공간이라고 판단할 수 있기 때문에 보다 확실한 판단을 위해 아래와 같이 2개의 base 포인트를 지정하여 2번에 걸쳐 주차 공간을 판단할 수 있도록 하였다.

Untitled

https://youtu.be/mtw-Age9tQI

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/8606018f-1dfb-4874-bba0-4a698943868d/parking-2021-08-03_23.33.48.mp4