본문으로 건너뛰기

ALICE M1 FSM Guide

ALICE M1에 적용되는 FSM 안내입니다.


0. FSM이란?

FSM(Finite State Machine)은 상태(state) 를 기준으로 시스템의 동작을 정의하고 전환시키는 제어 설계 패턴입니다.

항상 단 하나의 상태만을 가지며, 현재 어떤 상태에 있느냐에 따라 “무슨 동작을 할지, 어떤 제어를 적용할지”가 결정됩니다.

입력(명령, 이벤트, 조건 등)에 따라 다른 상태로 전이(transition)하고, 각 상태마다 미리 정의된 동작을 수행하는 구조입니다.


1. ALICE-M1 Control FSM 개요

ALICE-M1 Control FSM은 로봇의 동작 모드(state) 를 관리하는 제어 레이어입니다.

한 번에 오직 하나의 상태만 활성화되며, 활성화된 상태에 따라 ALICE-M1이 어떤 제어 법칙으로 동작할지가 결정됩니다.

예를 들어,

  • Zero Torque Mode

    → 모터가 거의 힘을 쓰지 않도록 제어하여, 사람이 손으로 자유롭게 움직일 수 있는 상태입니다.

  • Gravity Compensation Mode

    → 로봇이 자신의 중량과 중력에 대해서만 토크를 생성해 관절이 처지지 않도록 하고,

    외부에서 사람이 미는 힘에는 비교적 잘 따라가는 상태입니다.

  • Compliance Control Mode

    → 상위 제어기에서 받은 목표 위치(position) 를 기준으로 토크를 생성하고,

    사용자가 설정한 강성(stiffness) 에 따라 팔이 더 단단하거나 더 부드럽게 움직이도록 하는, ALICE-M1의 기본 작업 상태입니다.


2. ALICE-M1의 5가지 상태

ALICE-M1 Control FSM에는 다음 5가지 상태가 있습니다.

  1. Zero Torque Mode
  2. Gravity Compensation Mode
  3. Compliance Control Mode
  4. Soft E-Stop
  5. Motion Stop Mode
FSM

3. 상태별 설명

3.1 Zero Torque Mode

개념

  • 관절에 걸리는 토크를 0으로 유지하게 제어하는 모드입니다.
  • 로봇이 스스로 힘을 쓰지 않고, 사람이 손으로 쉽게 움직일 수 있는 모드입니다.

특징

  • 모터의 출력을 최소화하여 안전한 초기 상태 또는 비활성 상태로 사용합니다.
  • 장비 셋업/점검할 때 유용합니다.

사용 예시

  • 로봇을 처음 켰을 때 기본 상태
  • 기구적 간섭 확인, 수동 포즈 셋업
  • 작업 전/후에 힘을 완전히 빼는 용도

3.2 Gravity Compensation Mode

개념

  • 로봇이 사람이나 외부에서 가해지는 힘에는 비교적 잘 따라 움직이지만, 자신의 중량과 중력에 의해 처지지 않도록, 필요한 만큼의 토크를 스스로 만들어내는 모드입니다.

특징

  • 관절에 중력을 보상하는 토크를 인가하여, 팔이나 링크가 아래로 쳐지지 않도록 합니다.
  • 사용자는 실제 무게보다 훨씬 가벼운 느낌으로 로봇 팔을 들어 올리거나 움직일 수 있습니다.
  • 특정 위치를 강하게 고정하는 모드가 아니라, 무게를 상쇄해 주는 보조 모드에 가깝습니다.

사용 예시

  • 사람과 함께 팔을 움직이며 가르치는 teaching / direct teaching
  • 작업자가 팔을 특정 자세로 들고 있어야 할 때, 피로를 줄이기 위한 보조 용도

3.3 Compliance Control Mode (메인 모드)

개념

  • 목표 위치(position)를 입력으로 받아, 그에 대응하는 토크(torque)를 생성하는 “위치 기반 토크 제어 모드”입니다.
  • 외부에서 사람이 밀거나 당길 때 일정 수준으로 양보하면서도, 목표 위치를 따라가도록 설계된 상태입니다.
  • 사용자는 상황에 따라 강성(stiffness)을 조절하여, 팔을 더 단단하게 또는 더 부드럽게 만들 수 있습니다.

특징

  • 상위 제어기(플래너, 텔레옵, 미션 로직 등)에서 전달된 목표 관절 위치를 기준으로,

    실제 위치와의 차이를 계산해 필요한 토크를 생성합니다.

  • 단순한 “위치 고정”이 아니라, 외부 힘에 대해 적당히 순응하는 인간 친화적인 동작을 목표로 합니다.

  • 협동 작업, 사람과의 상호작용, 외부 환경 접촉이 많은 작업에 적합한 기본 운전 모드입니다.

사용 예시

  • 사람과 함께 물체를 운반하거나 정렬하는 협동 작업
  • 사람 손으로 가볍게 유도하면서 로봇 팔의 경로를 가르치는 작업
  • 외부 환경(지그, 부품, 공구 등)과 접촉이 잦은 상황에서 부드러운 동작이 필요한 경우

3.4 Soft E-Stop

개념

  • 로봇의 현재 움직임을 빠르게 감쇠(damping) 시켜, 진동이나 출렁임 없이 안정된 상태로 수렴시키는 모드입니다.

특징

  • 외란이나 충돌 이후, 로봇이 과도하게 튀거나 흔들리지 않도록 움직임을 정리하는 역할을 합니다.
  • 일종의 “안전 감쇠(safety damping)” 단계로 사용할 수 있습니다.

사용 예시

  • 예상치 못한 외력·충돌 발생 후, 시스템을 진정시키는 중간 단계
  • Motion Stop Mode로 진입하기 전에, 움직임을 부드럽게 줄이는 완충 단계
  • 제어 모드 전환 전, 관절 속도를 낮추고 진동을 줄이고 싶을 때

3.5 Motion Stop Mode

개념

  • 로봇의 모션을 즉시 정지시키는 모드입니다.

특징

  • 더 이상 새로운 모션 명령을 받아 실행하지 않도록 차단하는 방향으로 동작합니다.
  • 상위 안전 로직(예: E-Stop, Safety PLC, 안전 모니터링 시스템)의 요청에 의해 진입하는 것을 기본 시나리오로 가정합니다.

사용 예시

  • 긴급 정지(E-Stop) 버튼이 눌렸을 때
  • 안전 영역 침범, 비정상 센서 값, 통신 이상 등 위험 상황 감지 시

4. 상태변경 방법

FSM

4.1 상태 전이 규칙

ALICE-M1의 상태는 FSM 다이어그램에 그려진 화살표 방향으로만 전환됩니다.

즉, 사용자가 어떤 버튼을 누르더라도, 다이어그램에서 허용되지 않은 방향으로는 상태가 바뀌지 않습니다.

허용되는 전환 예시는 다음과 같습니다.

  • WK57 → Zero Torque Mode

    전원을 넣고 초기화가 끝나면, 먼저 Zero Torque Mode로 진입합니다.

  • Zero Torque Mode → Compliance Control Mode

    기본 작업을 시작하기 위해, Zero Torque Mode에서 Compliance Control Mode로만 전환할 수 있습니다.

    최초 Compliance Control Mode 들어와서 명령이 없다면 Gravity Compensation Mode 와 동일하게 동작합니다.

  • Compliance Control Mode ↔ Gravity Compensation Mode

    • 작업 중에 팔을 가볍게 들고 직접 가이드하고 싶을 때

      → Compliance Control Mode에서 Gravity Compensation Mode로 전환

    • 다시 컴플라이언스 제어로 복귀할 때

      → Gravity Compensation Mode에서 Compliance Control Mode로 전환

  • Compliance Control Mode → Soft E-Stop

    움직임을 빠르게 감쇠시키고 싶을 때, Compliance Control Mode에서 Soft E-Stop로 전환됩니다.

  • Compliance Control Mode → Motion Stop Mode

    긴급 정지나 즉시 멈춤이 필요할 때, Compliance Control Mode에서 Motion Stop Mode로 전환됩니다.

  • Motion Stop Mode → Soft E-Stop

    정지 직후, 출렁임 없이 안정적으로 감쇠시키기 위해 Motion Stop Mode에서 Soft E-Stop로만 전환됩니다.

  • Soft E-Stop → Zero Torque Mode

    감쇠가 끝난 후, 다시 힘을 빼고 안전한 수동 상태로 돌아가기 위해 Soft E-Stop에서 Zero Torque Mode로 전환됩니다.

위에 나열된 경로 외의 조합(예: Zero Torque에서 바로 Gravity로, Motion Stop에서 바로 Compliance로 등)은 FSM 상에서 허용되지 않으며, 요청하더라도 실제 상태는 전환되지 않습니다.


4.2 컨트롤러에서 상태 변경

ALICE-M1의 상태는 컨트롤 패널 UI의 버튼을 통해 변경할 수 있습니다.

(예: Zero Torque, Gravity, Compliance On, E-Stop, Motion Stop 등의 버튼이 배치된 화면)

  • 사용자가 해당 모드 버튼을 누르면

    → 컨트롤러가 “해당 상태로 전환해 달라”는 요청을 FSM에 보냅니다.

  • FSM은

    1. 현재 상태를 확인하고,
    2. 위 4.1에서 설명한 화살표 방향(허용된 전이인지) 을 검사한 뒤,
    3. 조건이 맞을 때만 실제 상태를 변경합니다.

즉,

  • UI 버튼 = “요청”
  • FSM 전이 규칙 = “최종 승인 여부”

로 이해하면 됩니다.

사용자는 컨트롤러 화면에서 모드를 선택하기만 하면 되고,

실제 전환이 가능한지, 어떤 순서로 거쳐야 하는지는 FSM이 다이어그램 규칙에 따라 자동으로 관리합니다.


5. Compliance Controller – 강성 조절 방법

5.1 기본 수식

각 관절 (i)에 대해, 컴플라이언스 컨트롤러는 아래와 같은 법칙으로 토크를 만듭니다.

Compliance Expression

5.2 Spring / Damping / Safety Damping 이 의미하는 것

여기서 사용자가 조절하게 되는 파라미터는 크게 세 가지입니다.

1) spring (스프링 , (k_i))

  • 비유: 고무줄 / 스프링의 단단함
  • 값이 크면
    • 목표 자세에서 조금만 벗어나도 강하게 “원래 자리로 돌아가려는” 힘이 생깁니다.
    • 팔이 단단하고, 잘 휘지 않는 느낌입니다.
  • 값이 작으면
    • 목표 자세에서 조금 벗어나도 약하게만 당깁니다.
    • 사람이 밀면 잘 따라가고, 전체적으로 부드러운 팔이 됩니다.

2) damping (댐핑, (b_i))

  • 비유: 자동차 쇼크업소버 / 점도가 높은 오일
  • 값이 크면
    • 움직일 때 속도를 세게 잡아서, 출렁임 없이 빨리 멈춥니다.
    • 대신 약간 “무거운 느낌”이 날 수 있습니다.
  • 값이 작으면
    • 가볍게 잘 움직이지만, 탁 치면 한 번 더 출렁이거나 살짝 떨릴 수 있습니다.

3) safety_damping (안전 감쇠 – Damping Mode 전용)

  • 이 값은 Damping Mode에서만 사용됩니다.
  • 개념적으로는 damping과 동일하고
    • “지금은 멈추는 게 최우선이다” 라는 상황에서 쓰는 비상용 감쇠량이라고 보면 됩니다.

프레임워크 주의사항

1) 전원 인가 전(시작 전) 점검

  1. 모터 전원을 넣기 전에 로봇의 관절이 한쪽으로 심하게 꺾이거나 비틀어진 곳이 없는지 확인합니다.
  2. 완벽할 필요는 없지만, 가능한 한 차렷(중립) 자세에 가깝게 정렬한 뒤 전원을 인가합니다.
    • 관절이 크게 틀어진 상태에서 전원을 켜면 급격한 보정 동작이 발생할 수 있습니다.

2) FSM 관련 유의사항

  • FSM(상태 전이/동작 시퀀스) 내용은 반드시 확인하고 운용합니다.
  • FSM을 이해하지 않은 상태에서 버튼/상태를 임의로 변경하면 예상치 못한 동작이 발생할 수 있습니다.

3) 인원 규칙(2인 이상 운용)

  • 로봇 운용은 **최소 2인(오퍼레이터 1명 + 핸들러 1명 이상)**이 함께 수행합니다.
    • 오퍼레이터: PC/조이스틱/소프트웨어로 로봇 동작을 실행하는 사람
    • 핸들러: 로봇 옆에서 자세 확인, 주변 안전 확보, 물리적 대응을 담당하는 사람

4) 역할과 작업 방식

  1. 오퍼레이터는 전원 ON/OFF 등 로봇 주변에서 필요한 작업을 핸들러에게 지시하고, 핸들러는 지시에 맞춰 작업합니다.
  2. *긴급 상황(이상 동작, 충돌 위험, 사람이 다칠 위험)**이 발생하면,
    • 핸들러는 지시를 기다리지 말고 즉시 로봇을 정지/종료해 주세요. (안전 최우선)
    • 어떤 동작이든 핸들러가 위험하다고 생각될 때는 무조건 종료해 주세요.

5) 동작 실행 전 “사전 고지(카운트)” 필수

  • 오퍼레이터는 로봇의 움직임이 바뀌는 행동을 하기 전에 반드시 핸들러에게 먼저 알립니다.
    • 예: “지금부터 Base 자세로 이동합니다. 하나, 둘, 셋
  • 여기에는 다음이 모두 포함됩니다:
    • 동작 버튼 실행(예: Base/Stop/주행 모드 등)
    • 소프트웨어 설정 변경
    • 로봇 동작에 영향을 주는 모드 전환/명령 전송

6) 실행 여부 상호 확인(반드시 “확인 응답”)

  • 핸들러는 오퍼레이터의 고지 후, 동작이 실제로 실행되었는지를 확인하고 즉시 답합니다.
    • 예: “Base 동작 실행 확인 / 아직 미실행
  • 만약 고지한 동작이 실행되지 않았는데도 다음 단계로 넘어가면, 로봇이 예상과 다른 상태에서 동작해 이상 동작 가능성이 커집니다.
    • 이 경우 핸들러는 즉시 정지할 준비를 하고, 원인 확인 후 재시도합니다.