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가지 상태가 있습니다.
- Zero Torque Mode
- Gravity Compensation Mode
- Compliance Control Mode
- Soft E-Stop
- Motion Stop Mode
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. 상태변경 방법
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은
- 현재 상태를 확인하고,
- 위 4.1에서 설명한 화살표 방향(허용된 전이인지) 을 검사한 뒤,
- 조건이 맞을 때만 실제 상태를 변경합니다.
즉,
- UI 버튼 = “요청”
- FSM 전이 규칙 = “최종 승인 여부”
로 이해하면 됩니다.
사용자는 컨트롤러 화면에서 모드를 선택하기만 하면 되고,
실제 전환이 가능한지, 어떤 순서로 거쳐야 하는지는 FSM이 다이어그램 규칙에 따라 자동으로 관리합니다.
5. Compliance Controller – 강성 조절 방법
5.1 기본 수식
각 관절 (i)에 대해, 컴플라이언스 컨트롤러는 아래와 같은 법칙으로 토크를 만듭니다.
5.2 Spring / Damping / Safety Damping 이 의미하는 것
여기서 사용자가 조절하게 되는 파라미터는 크게 세 가지입니다.
1) spring (스프링 , (k_i))
- 비유: 고무줄 / 스프링의 단단함
- 값이 크면
- 목표 자세에서 조금만 벗어나도 강하게 “원래 자리로 돌아가려는” 힘이 생깁니다.
- 팔이 단단하고, 잘 휘지 않는 느낌입니다.
- 값이 작으면
- 목표 자세에서 조금 벗어나도 약하게만 당깁니다.
- 사람이 밀면 잘 따라가고, 전체적으로 부드러운 팔이 됩니다.
2) damping (댐핑, (b_i))
- 비유: 자동차 쇼크업소버 / 점도가 높은 오일
- 값이 크면
- 움직일 때 속도를 세게 잡아서, 출렁임 없이 빨리 멈춥니다.
- 대신 약간 “무거운 느낌”이 날 수 있습니다.
- 값이 작으면
- 가볍게 잘 움직이지만, 탁 치면 한 번 더 출렁이거나 살짝 떨릴 수 있습니다.
3) safety_damping (안전 감쇠 – Damping Mode 전용)
- 이 값은 Damping Mode에서만 사용됩니다.
- 개념적으로는 damping과 동일하고
- “지금은 멈추는 게 최우선이다” 라는 상황에서 쓰는 비상용 감쇠량이라고 보면 됩니다.
1) 전원 인가 전(시작 전) 점검
- 모터 전원을 넣기 전에 로봇의 관절이 한쪽으로 심하게 꺾이거나 비틀어진 곳이 없는지 확인합니다.
- 완벽할 필요는 없지만, 가능한 한 차렷(중립) 자세에 가깝게 정렬한 뒤 전원을 인가합니다.
- 관절이 크게 틀어진 상태에서 전원을 켜면 급격한 보정 동작이 발생할 수 있습니다.
2) FSM 관련 유의사항
- FSM(상태 전이/동작 시퀀스) 내용은 반드시 확인하고 운용합니다.
- FSM을 이해하지 않은 상태에서 버튼/상태를 임의로 변경하면 예상치 못한 동작이 발생할 수 있습니다.
3) 인원 규칙(2인 이상 운용)
- 로봇 운용은 **최소 2인(오퍼레이터 1명 + 핸들러 1명 이상)**이 함께 수행합니다.
- 오퍼레이터: PC/조이스틱/소프트웨어로 로봇 동작을 실행하는 사람
- 핸들러: 로봇 옆에서 자세 확인, 주변 안전 확보, 물리적 대응을 담당하는 사람
4) 역할과 작업 방식
- 오퍼레이터는 전원 ON/OFF 등 로봇 주변에서 필요한 작업을 핸들러에게 지시하고, 핸들러는 지시에 맞춰 작업합니다.
- *긴급 상황(이상 동작, 충돌 위험, 사람이 다칠 위험)**이 발생하면,
- 핸들러는 지시를 기다리지 말고 즉시 로봇을 정지/종료해 주세요. (안전 최우선)
- 어떤 동작이든 핸들러가 위험하다고 생각될 때는 무조건 종료해 주세요.
5) 동작 실행 전 “사전 고지(카운트)” 필수
- 오퍼레이터는 로봇의 움직임이 바뀌는 행동을 하기 전에 반드시 핸들러에게 먼저 알립니다.
- 예: “지금부터 Base 자세로 이동합니다. 하나, 둘, 셋”
- 여기에는 다음이 모두 포함됩니다:
- 동작 버튼 실행(예: Base/Stop/주행 모드 등)
- 소프트웨어 설정 변경
- 로봇 동작에 영향을 주는 모드 전환/명령 전송
6) 실행 여부 상호 확인(반드시 “확인 응답”)
- 핸들러는 오퍼레이터의 고지 후, 동작이 실제로 실행되었는지를 확인하고 즉시 답합니다.
- 예: “Base 동작 실행 확인 / 아직 미실행”
- 만약 고지한 동작이 실행되지 않았는데도 다음 단계로 넘어가면, 로봇이 예상과 다른 상태에서 동작해 이상 동작 가능성이 커집니다.
- 이 경우 핸들러는 즉시 정지할 준비를 하고, 원인 확인 후 재시도합니다.