
예전의 로봇은 주어진 작업만 수행했지만 현대의 자율 로봇은 주변 상황을 이해하고, 예상되는 위험을 판단하며, 상황에 맞게 행동을 조정해야 합니다. 이를 상황판단 능력이라고 부릅니다. 상황판단이란 로봇이 주변의 맥락을 파악하고, 현재 상황이 정상인지 비정상인지 구분하며, 어떤 행동이 적절한지 판단하는 능력입니다.
상황판단 능력이 없으면 로봇은 예상하지 못한 상황에서 부적절하게 행동할 수 있습니다. 사람이 근처에 있는 상황에서 고속으로 이동하거나, 기울어진 바닥에서 안정성을 무시하고 행동하거나, 새로운 장애물이 생겼을 때 이를 감지하지 못하는 경우들입니다. 이러한 상황에서 로봇이 올바른 판단을 내리려면, 다양한 상황 데이터로부터 학습해야 합니다.
특히 사람과 함께 일하는 협력 로봇의 경우, 상황판단 능력이 안전성을 직접 좌우합니다. 사람의 의도를 파악하고 사람의 안전을 위협할 수 있는 상황을 미리 감지하여 행동을 조정해야 합니다. 이는 기본적인 기술적 요구사항이 아니라, 윤리적 중요 사항입니다.
상황판단을 위한 학습 데이터는 기본적인 영상 분류 데이터와 다릅니다. 현재의 상태를 나타내는 즉시적 정보뿐 아니라, 시간적 변화, 인과관계, 위험도 평가 등 다층적인 정보를 포함해야 합니다. 한 장의 이미지만으로는 상황을 판단할 수 없습니다. 시간에 따른 변화를 보아야 위험을 예측할 수 있습니다.
예를 들어 사람이 로봇 근처에 있다는 정적 정보만 있어서는 부족합니다. 그 사람이 가까워지고 있는지, 멀어지고 있는지, 얼마나 빠르게 움직이고 있는지 같은 동적 정보가 필요합니다. 또한 사람의 행동이 우연인지 의도된 것인지도 판단해야 합니다. 로봇 쪽으로 걸어오는 사람이 로봇을 피하려는 건지, 로봇과 충돌하려는 건지를 구분해야 로봇이 적절한 행동을 할 수 있습니다.
이러한 복합적인 정보를 데이터셋에 포함시키려면, 각 프레임마다 기본적인 라벨이 아니라 풍부한 주석이 필요합니다. 상황의 안전도, 위험 요소, 예상되는 변화, 권장되는 행동 같은 정보들이 모두 기록되어야 합니다.

상황판단의 중심은 위험을 식별하는 것입니다. 로봇이 마주칠 수 있는 다양한 위험 상황을 분류하고, 각각에 대한 라벨을 정의해야 합니다. 안전 관련 위험, 성능 관련 위험, 환경 관련 위험 등 다양한 카테고리가 있습니다.
안전 관련 위험에는 사람과의 충돌 가능성, 낙상 위험, 가연성 물질 근처 작업 등이 포함됩니다. 성능 관련 위험에는 배터리 부족, 센서 고장, 계산 오버로드 상황 등이 포함됩니다. 환경 관련 위험에는 불안정한 바닥, 예상치 못한 장애물, 극단적인 온도나 습도 같은 요소들이 포함됩니다.
각 위험 상황을 세분화하여 분류합니다. 단순히 "안전하다"와 "위험하다"는 이진 분류보다, "매우 안전", "안전", "주의 필요", "위험", "매우 위험" 같은 다단계 평가가 더 유용합니다. 또한 각 위험이 얼마나 긴급한지(즉각적인 대응이 필요한가), 얼마나 심각한지(잠재적 피해의 크기)도 함께 기록합니다.

상황이 시간에 따라 어떻게 변하는지를 데이터에 반영하는 것이 중요합니다. 짧은 클립 단위로 데이터를 수집하되, 각 클립 내에서의 상황 진전을 상세히 기록합니다. 예를 들어 사람이 로봇 쪽으로 다가오는 30초짜리 클립이라면, 초 단위로 거리 변화, 속도 변화, 신체 방향 변화 등을 기록합니다.
또한 선행 사건과 결과 사건의 인과관계도 주석 처리합니다. "X가 일어났기 때문에 Y의 위험이 증가했다"는 식의 인과 관계를 명확히 합니다. 이를 통해 로봇이 기본적인 상관관계가 아니라 인과관계를 학습할 수 있습니다. 인과관계를 이해하면, 로봇은 아직 일어나지 않은 미래의 상황도 예측할 수 있습니다.
여러 상황이 복합적으로 일어나는 경우도 포함됩니다. 사람이 가까워지면서 동시에 바닥의 배선이 걸린 상황, 또는 배터리 부족하면서 사람이 다가오는 상황 등입니다. 이러한 복합 상황에서 로봇이 우선순위를 정하고 행동해야 하므로, 데이터에 이를 반영합니다.

로봇 상황판단 학습 데이터를 체계적으로 구축하는 과정은 다음과 같습니다.
이 과정을 통해 신뢰할 수 있는 상황판단 데이터셋이 완성됩니다.
로봇이 상황을 판단하는 방식은 계층적입니다. 먼저 저수준의 기본 요소들(사람의 위치, 속도, 근처 물체)을 인식합니다. 그 다음 중간 수준의 상황들(사람이 가까워지고 있는가, 충돌 위험이 있는가)을 판단합니다. 마지막으로 고수준의 복합 상황(사람의 의도, 예상되는 미래 상태)을 이해합니다.
이러한 계층 구조를 학습 데이터에 반영하려면, 각 수준의 라벨이 필요합니다. 저수준 라벨에는 객체 탐지 결과(사람, 물체, 장애물의 위치)가 포함됩니다. 중간 수준 라벨에는 동작 인식 결과(무언가 접근 중, 멈춤, 회전 중)가 포함됩니다. 고수준 라벨에는 상황 해석(안전, 주의, 위험)이 포함됩니다.
이렇게 계층화된 데이터로 로봇을 훈련하면, 로봇이 부분적인 정보로도 판단할 수 있습니다. 예를 들어 센서 일부가 고장 난 경우에도, 여전히 사용 가능한 센서로부터의 저수준 정보로 고수준 판단을 할 수 있게 됩니다. 이는 로봇의 견고성과 신뢰성을 높입니다.

실험실 환경에서만 수집한 데이터로는 현실 세계의 복잡성을 반영할 수 없습니다. 데이터 수집 환경의 다양성이 로봇의 일반화 능력을 결정합니다. 서로 다른 조명 조건, 배경, 인원 구성, 공간 배치에서 상황이 어떻게 다르게 나타나는지를 모두 포함해야 합니다.
조명은 상황판단을 크게 영향합니다. 밝은 환경과 어두운 환경에서 같은 위험이 다르게 인식될 수 있습니다. 또한 역광, 측광, 산광 같은 조명의 방향도 중요합니다. 온도도 영향을 미칩니다. 열을 방출하는 기계 근처에서는 센서 오류가 발생할 수 있고, 추운 환경에서는 재료의 특성이 변할 수 있습니다.
또한 시간대별 환경 변화도 포함되어야 합니다. 아침, 오후, 저녁의 사무실은 다른 활동 수준을 보입니다. 공장의 생산 라인도 시간대별로 혼잡도가 다릅니다. 이러한 시간적 변화가 상황판단에 미치는 영향을 데이터에 반영하면, 로봇이 시간대별로도 정확한 판단을 할 수 있습니다.
예상했던 상황뿐 아니라, 예상하지 못한 비정상 상황도 데이터셋에 포함되어야 합니다. 정상적인 패턴으로부터 벗어난 이상 상황을 로봇이 감지하고 대응할 수 있어야 합니다. 예를 들어 사람이 갑자기 달려오는 상황, 물체가 예상 경로와 다르게 움직이는 경우, 센서가 오류를 발생시키는 상황 등입니다.
이상 상황의 특징은 빈도가 낮다는 것입니다. 비정상 사건은 정상 사건보다 훨씬 적게 발생합니다. 따라서 자연스럽게 수집된 데이터는 불균형입니다. 이 불균형을 해결하기 위해, 의도적으로 이상 상황을 시뮬레이션하거나 기록합니다. 그리고 이상 상황의 심각도를 명확히 레이블링합니다.
또한 이상의 원인도 분석합니다. 센서 오류로 인한 이상인지, 환경의 갑작스러운 변화인지, 사람의 비정상 행동인지를 구분합니다. 이를 통해 로봇이 이상 상황의 근본 원인을 파악하고, 그에 맞는 대응을 할 수 있습니다.

상황판단 모델의 성능을 평가하는 것은 다른 기계학습 작업과 다릅니다. 기본적인 정확도보다, 위험 상황의 탐지 성능이 중요합니다. 안전 관련 상황을 놓쳐서는 안 되기 때문입니다. 위험을 과대평가하는 것도 문제지만, 위험을 과소평가하면 실제 사고로 이어질 수 있습니다.
따라서 재현율과 정밀도의 균형을 신중하게 조정합니다. 위험 탐지의 경우 높은 재현율이 더 중요합니다. 위험을 놓치는 거짓 음성이 위험을 과대평가하는 거짓 양성보다 훨씬 심각하기 때문입니다.
또한 반응 시간도 평가 지표입니다. 위험을 탐지했더라도 늦으면 소용이 없습니다. 로봇이 위험을 얼마나 빨리 감지하고 대응하는가를 측정합니다. 특히 협력 로봇의 경우, 사람 반응 시간(약 1초)보다 빨리 위험을 감지해야 합니다.
컴퓨터 시뮬레이션에서 수집한 상황 데이터는 현실과 차이가 있습니다. 시뮬레이션은 물리 엔진이 완벽하다고 가정하지만, 현실에는 예측 불가능한 요소가 많습니다. 사람의 행동이 항상 논리적이지 않으며, 물체의 반응도 정확하지 않을 수 있습니다.
이 격차를 해결하기 위해, 실제 환경에서도 데이터를 수집합니다. 시뮬레이션 데이터로 훈련한 로봇을 현실 환경에 배치하고 실패한 사건들로부터 배웁니다. 이런 실패 데이터는 매우 가치 있습니다. 로봇이 실제로 틀렸던 판단들을 분석하면, 모델을 개선할 수 있습니다.
또한 도메인 적응 기술도 사용됩니다. 시뮬레이션 데이터로 기본 모델을 훈련하며 현실 데이터로 미세 조정합니다. 이렇게 하면 시뮬레이션의 효율성과 현실의 정확성을 모두 확보할 수 있습니다.
협력 로봇이 사람과 안전하게 일하려면, 사람의 의도를 이해해야 합니다. 로봇이 사람의 다음 행동을 예측할 수 있으면, 그에 맞춰 미리 대응할 수 있습니다. 이는 기본적인 위험 회피를 넘어, 협력의 수준을 높입니다.
사람의 의도 이해는 신체 언어, 손의 움직임, 시선 방향 같은 신호로부터 추론됩니다. 데이터셋에는 이러한 신호와 실제 의도의 대응 관계가 포함되어야 합니다. "사람이 손을 펼쳤다"는 신호가 항상 같은 의도를 나타내지는 않으므로, 맥락이 중요합니다.
또한 상호작용 이력도 고려됩니다. 로봇과 사람이 이전에 어떤 상호작용을 했는지, 그 결과가 무엇이었는지가 현재의 판단에 영향을 미칩니다. 이를 통해 로봇이 개별 사람의 특성을 학습하고, 더 개인화된 대응이 가능해집니다.
