플로킹알고리즘 (Flocking Algorithm)

로봇공학
한 줄 정의: 응집(cohesion), 정렬(alignment), 분리(separation)의 세 가지 국소 규칙을 이용해 다수 로봇이 새떼나 물고기떼처럼 자연스러운 집단 이동을 하도록 만드는 알고리즘.

쉽게 풀면

이웃과 너무 붙지도 멀어지지도 않으면서 같은 방향으로 움직이려는 세 가지 간단한 규칙만으로 새떼처럼 함께 움직이게 하는 방법입니다. 새들이 지휘자 없이도 하늘에서 한 무리로 방향을 바꾸며 날아가는 모습을 로봇 여러 대로 재현한 것입니다.

왜 중요한가

정렬·응집·분리라는 세 개의 단순 규칙만으로 새 떼 같은 집단 이동이 나타난다는 것을 보여준 모델로, 다수 드론이나 이동로봇이 충돌 없이 함께 이동하는 군집로봇 제어의 원형입니다. 지역 정보만으로 전역 질서가 생기는 창발의 대표 사례로 인용됩니다.

논문에서는 이렇게 쓰입니다

플로킹 알고리즘은 각 개체의 속도 갱신 규칙을 이웃과의 평균 위치(응집), 평균 속도(정렬), 최소 거리 유지(분리) 벡터의 가중합으로 정의한다.

각 로봇이 주변 이웃들과 너무 가까우면 멀어지고, 너무 멀면 가까워지고, 방향은 맞추려는 세 힘을 합쳐 다음 움직임을 결정한다는 뜻입니다.

다수의 소형 드론을 이용한 실외 실험에서는 통신 지연이 커질수록 무리 전체의 이동 경로가 이론적 예측에서 점점 벗어나는 현상이 관찰되었다.

드론끼리 정보를 주고받는 속도가 느려질수록, 실제 움직임이 컴퓨터 안에서 계산한 이상적인 움직임과 점점 달라진다는 것을 실외 실험으로 확인한 것이다.

조금 더 깊게 보면

원래 컴퓨터 그래픽스용 시뮬레이션 모델이어서 실제 로봇에 적용하면 센서 범위, 통신 지연, 동역학 제약 때문에 이론처럼 매끄럽게 수렴하지 않으며, 통신 그래프 연결성이 유지된다는 가정이 깨지면 무리가 분열합니다. 목표 지점으로 유도하거나 장애물을 피하려면 원래 세 규칙 외의 항을 추가해야 하고, 그 가중치 조정이 실무의 핵심입니다. 원조 모델인 보이드(Boids)는 각 개체가 시야 범위 내 이웃만 고려하는 국소 상호작용만으로 전체 무리의 정렬된 이동이라는 전역 패턴을 만들어내는데, 이런 국소 규칙에서 전역 질서가 나타나는 현상은 복잡계 연구에서 창발의 대표 예시로 반복 인용됩니다.

주의할 점

이웃 인식 범위와 가중치 설정이 부적절하면 군집이 흩어지거나 충돌이 빈번해질 수 있습니다. 세 규칙의 가중치를 조금만 바꿔도 무리가 하나로 뭉치거나 여러 조각으로 갈라지는 등 전혀 다른 전역 행동이 나타날 수 있어, 파라미터 선택이 설계자의 경험에 크게 의존합니다.

관련 용어