지원 센터 방문 지원 센터 방문 대리점 찾기 대리점 찾기 문의 문의

AMR 내비게이션 스포트라이트 - 의사 결정 및 안전

블로그 2024년 10월 15일

AMR 내비게이션 스포트라이트 시리즈의 여덟 번째 블로그에서는 AMR의 의사 결정과 안전에 대해 집중적으로 다룰 예정입니다. 클릭 을 클릭하여 시리즈의 이전 블로그에서 계획 및 제어 메커니즘에 대해 설명했습니다.

이 스포트라이트 시리즈에서는 로봇 제어 스택의 다양한 요소에 대해 언급했습니다. 인식, 탐색경로 계획 등 몇 가지 예를 들 수 있습니다. 이제 전체 작업의 두뇌라고 할 수 있는 모듈인 의사 결정 모듈을 살펴볼 차례입니다.

 

로봇의 의사 결정과 안전이란 무엇인가요?

의사 결정 모듈에는 자율 모바일 로봇의 자율 이동 로봇 이 다양한 상황에서 어떻게 행동할지 결정하는 높은 수준의 지능과 로직을 포함합니다. 일반적으로 이 모듈에는 특정 조건을 확인한 다음 해당 조건의 존재 여부에 따라 로봇에게 대응 방법을 알려주는 단일 프레임워크가 포함되어 있습니다.

이 프레임워크는 단순한 경로 추적, 장애물 인식, 꽃 따기 등 로봇이 수행하는 모든 작업을 관리합니다. 다양한 다른 모듈에서 수집한 데이터를 활용하며, 필요에 따라 단순하거나 복잡하게 만들 수 있습니다.

앞서 설명한 다른 내용과의 연관성을 돕기 위해 OxTS' 프로토타입 제어 스택에서 의사 결정 프레임워크는 컨트롤러와 로봇의 액추에이터 사이에 위치합니다. 따라서 컨트롤러가 로봇을 다음 웨이포인트로 이동하라는 명령을 내리면 의사 결정 모듈이 이동해도 안전한지 판단한 다음 로봇이 움직입니다. 프로세스의 여러 요소의 순서를 다르게 지정할 수 있지만, 두 가지 이유로 이 방식을 선택했습니다. 첫째, 액추에이터가 작동하기 전에 모든 의사 결정 조건이 충족되기를 원했기 때문에 액추에이터 이후가 아닙니다. 둘째, 로봇이 의사 결정자의 결과와 다른 일을 할 가능성을 피하고 싶었기 때문에 작동하기 전에 가장 마지막으로 처리하는 것이었습니다.

 

QR코드 현지화 기능을 갖춘 AMR

 

AMR 의사 결정 및 안전 대 AI

현재 로봇 제어 시스템에서 AI와 그 잠재력에 대해 많은 글이 쓰여지고 있습니다. AMR 의사 결정과 AI를 연관 짓는 데 도움이 되도록, AI는 AMR을 위한 완전한 제어 프레임워크를 자동으로 생성하고 새로운 이벤트에 대응하여 해당 프레임워크를 지속적으로 업데이트하는 방법이라고 생각할 수 있습니다. 즉, AI라고 선전되는 것의 대부분은 실제로는 덜 발전된 프레임워크보다 지능을 더 잘 모방하지만 여전히 사람이 만들었고 자체 편집 기능이 없거나 매우 제한적인 매우 복잡한 프레임워크입니다.

 

자율 이동 로봇에 의사 결정이 중요한 이유는 무엇인가요?

간단히 말해, 의사 결정은 'AMR'의 'A'를 의미합니다. 로봇이 사람의 입력 없이도 작업을 실행하고 이벤트에 대응할 수 있게 해주는 기능입니다. 또한 의사 결정 모듈은 로봇이 장애물이나 경로 이탈과 같은 위험에 대응할 수 있도록 설계된 요소를 프레임워크에 포함하는 한 로봇을 더 안전하게 만듭니다. 사실, 올바른 의사 결정 이론에 따르면 안전은 모든 AMR 제어 프레임워크의 주요 설계 고려 사항이 되어야 합니다. 결국 일어날 수 있는 최악의 상황은 AMR이 사람, 다른 재산 또는 로봇 자체에 피해를 입히는 것입니다.

의사 결정의 어려움은 설계자가 안전한 작동을 유지하거나 작업을 완료하는 등 의사 결정이 필요한 모든 조건을 파악해야 한다는 것입니다. 모든 시나리오를 처리할 수 있는 로봇 제어 프레임워크를 개선하려면 약간의 상상력과 창의력, 그리고 여러 사람이 함께 머리를 맞대야 합니다.

 

의사 결정 프레임워크의 유형

예상대로 AMR을 위한 의사 결정 프레임워크를 구축하는 방법에는 여러 가지가 있습니다. 지금부터 단계별로 살펴보겠습니다. 물리 시뮬레이션이나 비디오 게임 프로그래밍을 해본 적이 있다면 이러한 시스템 중 일부를 알아볼 수 있을 것입니다. 로봇이 예상치 못한 장애물에 어떻게 반응할지, 시뮬레이션에서 파티클이 어떻게 반응할지, 비디오 게임에서 NPC가 어떻게 행동할지 결정할 때에도 이 원칙이 적용됩니다.

이 모든 시스템은 매우 간단한 의사 결정 로직의 예를 사용하여 시연할 것입니다. 실제로는 훨씬 더 복잡한 로직이 적용될 수 있지만 교육 목적에서는 단순함이 더 좋습니다.

 

프레임워크 1: 유한 상태 머신

유한 상태 머신(또는 그냥 상태 머신)은 원으로 표시된 여러 개의 상태로 구성되며, 화살표는 상태 간에 이동하는 데 필요한 특정 조건을 나타냅니다.

AMR에서 상태는 로봇이 수행하는 작업인 반면, 조건은 일반적으로 다른 시스템이나 사용자가 입력하는 것입니다. 이 예시를 살펴보겠습니다:

 

 

로봇의 시작 상태는 "시작"입니다. 이 상태에서 다음 상태인 "경로 계속 따라가기"로 이동하려면 사용자가 로봇에게 이동을 시작해도 좋다고 알려야 합니다. 이 상태에서 세 가지 가능한 조건이 있습니다:

  1. 장애물이 감지되지 않으면 로봇이 계속 경로를 따라갑니다.
  2. 장애물이 감지되면 로봇이 멈춥니다.
  3. 사용자가 로봇에게 멈추라고 지시하면 로봇이 멈춥니다.

'로봇 정지' 상태에서 사용자가 로봇에게 다시 자유롭게 움직여도 된다고 알려야 로봇이 다시 경로를 따라가기 시작합니다. 앞서 말했듯이 이것은 간단한 예시이며, 실제로는 로봇이 이렇게 멈춘 후에는 '경로 재계산'과 같이 로봇이 다시 경로를 따라갈 수 있는 다른 조건을 포함할 수 있습니다.

상태 머신은 비교적 간단하게 구축할 수 있지만, 다양한 조건과 상태가 존재하는 복잡한 상황에서는 매우 복잡해질 수 있습니다.

 

프레임워크 2: 의사 결정 트리

이것이 가장 친숙하게 보이는 시스템일 것입니다. 의사 결정 트리는 작업 노드(직사각형으로 표시), 의사 결정 노드(원으로 표시), 분기(화살표로 표시)로 구성됩니다. 다음은 이전 섹션의 동일한 로직을 의사 결정 트리로 변형한 것입니다:

 

 

의사 결정 트리의 주요 이점 중 하나는 로봇의 작동을 지배하는 의사 결정 계층을 만들 수 있다는 것입니다. 당연히 사용자를 최상위에 두었습니다. 로봇은 사용자가 움직여도 좋다는 지시를 내리기 전까지는 아무것도 할 수 없습니다. 그 후에는 장애물이 있는지 확인하고 장애물이 없는 경우에만 경로를 따라가기 시작합니다. 의사 결정 트리는 설정된 간격으로 실행되므로 예를 들어 트리 아래에 '장애물 감지' 의사 결정 노드를 여러 개 추가할 필요가 없습니다.

의사 결정 트리가 상태 머신과 동일한 로직을 제공하지만 더 간단한 방식으로 표현한다는 점에 동의하시길 바랍니다. 즉, 의사 결정 트리를 사용하면 더 복잡한 로직을 더 쉽게 만들 수 있습니다. 하지만 복잡성이 높아지면 세 번째 프레임워크인 행동 트리를 사용할 수 있습니다.

 

프레임워크 3: 행동 트리

행동 트리는 의사 결정 트리와 매우 비슷해 보이지만 작동 방식은 완전히 다릅니다. 여전히 로봇의 동작을 제어하는 노드 계층 구조가 있지만, 로봇 내에서 의사 결정의 흐름을 제어할 수 있는 다양한 유형의 노드가 포함되어 있습니다. 모든 개념을 설명하기 위해 몇 가지 비트를 추가한 동작 트리의 로직 예시를 살펴보겠습니다:

 

 

여기에는 세 가지 구성 요소가 있습니다:

  1. 상단의 시작 노드(ø 기호 포함)는 트리가 시작되는 곳입니다.
  2. 그런 다음 하나 이상의 자식을 가질 수 있는 노드인 흐름 제어 노드(복합 노드라고도 함)가 있습니다. 시퀀스 노드(→ 기호 포함)와 선택기 노드(? 기호 포함)의 두 가지 유형이 있습니다.
  3. 흐름 제어 노드 아래에는 리프 노드가 있습니다. 리프 노드에는 자식이 없으며 쿼리이거나 로봇이 수행하는 작업입니다.

세 가지 유형의 노드는 모두 실행 중, 성공 또는 실패의 세 가지 상태를 가질 수 있습니다. 그리고 의사 결정 트리와 마찬가지로 로봇이 트리를 실행하면 정의된 간격으로 프로세스를 반복합니다.

 

시퀀스 대 셀렉터 노드

이 노드들은 모두 그 아래의 하위 노드를 왼쪽에서 오른쪽으로 처리하지만, 하위 노드의 결과에 다른 방식으로 반응합니다.

시퀀스 노드는 모든 자식 노드가 성공 결과를 반환하는 경우에만 성공 결과를 반환합니다. 자식 노드가 실패 결과를 반환하는 경우 시퀀스 노드는 자식 노드 처리를 중지하고 실패 결과를 반환합니다.

그러나 셀렉터 노드는 자식 노드에서 첫 번째 성공 결과를 얻으면 성공 결과를 반환하고, 나머지 자식 노드는 성공 결과를 얻으면 처리를 중지합니다.

이제 행동 트리를 살펴봅시다:

  • 먼저 시작 노드가 있습니다. 간단합니다!
  • 다음은 시퀀스 노드입니다. 즉, 이 노드는 그 아래의 각 자식 노드를 왼쪽에서 오른쪽으로 실행하며 모든 자식 노드가 성공적인 결과를 반환할 때까지 멈추지 않습니다.
  • 첫 번째 하위 노드는 "경로를 계속 따라가기"로 로봇이 출발합니다.
  • 로봇이 움직이면 첫 번째 노드가 '성공' 결과를 반환하므로 시퀀스 노드는 두 번째 자식인 셀렉터 노드를 처리하기 위해 이동합니다.
  • 셀렉터 노드는 왼쪽에서 오른쪽으로 각 자식을 처리하여 장애물 또는 중지 명령을 찾습니다. 그 중 하나라도 성공적인 결과를 반환하면 선택기 노드도 마찬가지입니다.
  • 이 경우 시퀀스 노드는 이제 세 번째 자식을 처리하고 로봇을 멈춥니다. 그렇지 않으면 로봇은 계속 움직입니다.

따라서 트리는 로봇이 명령을 받기 전에는 움직일 수 없도록 하고, 일단 움직이기 시작하면 장애물을 감지하거나 경로에서 벗어나거나 목표에 도달하면 멈추도록 합니다. 멋지지 않나요?

각각 다른 결정과 행동을 관장하는 제어 흐름 노드를 결합(및 중첩)할 수 있는 이러한 기능 덕분에 동작 트리는 매우 복잡한 동작을 설계하는 데 유용합니다.

 

OxTS 프로토타입 의사 결정권자

저희 로봇의 경우 의사 결정 트리를 사용하기로 했습니다. 이는 초보자를 위해 "단순하게, 바보처럼!"이라는 유명한 KISS 원칙에 부합하는 것입니다. 우리는 로봇이 경로를 따라가기 전에 충족해야 하는 일련의 조건을 계층적으로 설계하고 싶었는데, 행동 트리는 이를 위해 필요한 것보다 더 복잡했습니다. 그리고 유한 상태 머신은 충분히 정교하지 않았기 때문에 우리가 원하는 작업을 수행하려면 매우 복잡한 머신이 필요했을 것입니다.

그 모든 영광이 여기 있습니다:

 

 

먼저 로봇이 취할 수 있는 세 가지 동작인 '경로 따라가기', '멈추기', '속도 줄이기'로 시작했습니다. 그런 다음 로봇이 이러한 각 동작을 수행해야 하는 시점을 지정하고자 했습니다. 트리는 로봇이 안전하게 이동하기 위해 수행해야 할 모든 안전 점검을 거치는데, 이것이 바로 각 의사 결정 노드입니다:

  • 물론 맨 위에는 로봇에게 움직일 수 있다는 인간의 명령이 있어야 합니다. 로봇이 움직일 수 있다는 명령 없이 출발하는 일은 절대로 없어야 합니다.
  • 그런 다음 시스템 모니터를 실행하여 관찰자(사람 또는 모니터링 시스템)가 로봇의 문제를 감지할 수 있도록 합니다.
  • 다음으로 로봇이 올바른 경로에 있는지 확인합니다(허용 오차는 애플리케이션에 따라 몇 센티미터 정도 미리 정의된 만큼의 이탈을 허용합니다).
  • 그런 다음 로봇은 로봇 근처에 장애물이 있는지 확인합니다. 장애물이 있으면 로봇이 멈춥니다.
  • 로봇 근처에 물체가 없으면 지평선에 물체가 있는지 확인합니다. 물체가 있으면 로봇은 속도를 줄이고, 없으면 경로를 따라갑니다.

 

프로토타입은 모든 모듈을 병렬로 실행하도록 설계했습니다. 즉, 로봇이 경로에 있는지 확인해야 하거나 장애물이 근처에 있는지 확인해야 할 때 계산이 완료되는 동안 일시 중지할 필요가 없도록 데이터를 준비했습니다.

로직을 구축하는 데는 많은 테스트가 필요했습니다. 소프트웨어 시뮬레이션을 통해 로직을 실행하여 로봇이 직면할 수 있는 모든 다양한 조건에서 시스템이 올바른 출력을 제공하는지 검증했습니다. 로직은 로봇의 가상 시뮬레이션을 통해 실행할 필요가 없을 정도로 간단했기 때문에 실제 테스트를 위해 로봇에 배포했습니다.

이것으로 의사 결정에 관한 블로그를 마무리합니다! 의사 결정 로직을 계획하는 데 도움이 되셨기를 바랍니다.

자율 로봇 내비게이션 솔루션 개요

AMR에는 로봇의 위치와 방향을 기록할 뿐만 아니라 실내와 실외 모두에서 작동하는 강력한 로봇 측위 솔루션이 필요합니다.

이 솔루션 요약에서는 고객이 자율 이동 로봇의 로컬라이제이션 소스를 결정할 때 고려할 것을 권장하는 측면을 단계별로 설명합니다.

솔루션 개요 읽기 를 읽고 올바른 로봇 로컬라이제이션 솔루션이 AMR 프로젝트에 어떻게 도움이 되는지, 프로젝트 시작 전에 스스로에게 물어봐야 할 주요 질문을 알아보세요.

AMR 솔루션 개요

이 블로그가 도움이 되셨기를 바라며, 이제 막 AMR 여정을 시작하는 분들에게도 도움이 되었기를 바랍니다.

현재 AMR 엔지니어를 위해 저희가 할 수 있는 일에 대해 자세히 알아보고 싶으신가요? 지원 페이지 보기.

또는 구체적인 프로젝트에 대해 논의하고 싶은 사항이 있다면 아래 양식을 통해 문의해 주세요. 유니티는 항상 최신의 훌륭한 로봇 공학 프로젝트에 대해 논의할 수 있어 기쁩니다.

올해 포스팅한 모든 AMR 내비게이션 스포트라이트 블로그를 요약한 다음 블로그 시리즈도 기대해 주세요!



정상으로 돌아가기

위로 가기

,