본문으로 건너뛰기

M25.06 · 키보드 텔레옵·도구 접촉·상태/행동 기록

단위별 목표·권장 선수와 자료 준비 상태를 확인하고, 공개된 본문과 활동을 읽고 준비 상태를 확인할 수 있습니다.

전체 커리큘럼

학습 안내

본문을 읽고 장비 없는 기본 실습·세 확인 문제와 해설로 이해를 확인하세요.

예상 학습 시간: 미정. 이 페이지 방문이나 자료 열람으로 완료·숙달을 자동 부여하지 않습니다.

현재 경로·이전·다음 단위 확인 ↓

학습 목표

  • 키보드 활성 입력·명령 프레임/단위·신선도와 전송/실제 관측을 분리한 텔레옵 계약을 설명한다.
  • 합성 사건표에서 입력/상태 TTL경계·접촉 문턱·해제/미상 조건에 따른 명령과 중단 이유를 판정한다.
  • 도구·서랍 상태와 제한 후 명령·시각/에피소드/부분성과를 연결하고 학습 행동 및 실패 분모를 보존한다.

아래 설명·실습·문제로 각 학습 목표를 확인하세요.

권장 선수

M25.05의 생성/기록·누락 보존이 선수다. M19.05 접촉/물체 확인, M20.03 상태/행동·에피소드와 M14.03 시각 정합을 복습한다. 1D 속도 명령의 합성 기록표를 분석하며 실제 키보드 프로그램·ROS/물리/장비 송신이나 학습 실행은 하지 않는다. 일반 언어/문법은 다루지 않는다. 이미 알고 있다면 직접 열어볼 수 있습니다.

설명 필수

세 목표에 대응하는 검수된 설명·예제를 읽습니다.

키를 누른 의도와 실제 움직임은 다른 기록이다

키보드 텔레옵은 사람이 누른 입력을 로봇/가상 도구의 목표로 바꾸는 과정이다. M25.05의 이미지/라벨처럼 여기서도 한 행이 무엇을 의미하는지 먼저 정한다. W를 눌렀음, 제한 후 속도를 전송했음, 제어기가 수락했음, 실제 도구/물체가 움직였음은 서로 다른 근거다.

이번에는 W/S를 tool localX의 양/음 방향 속도±0.02m/s로 대응시키고 별도의 활성 키를 유지해야 명령을 허용하는 교육용 계약을 쓴다. W/S가 모두 눌리거나 활성 입력이 없으면0이다. 이 숫자는 실제 장비의 안전 정격이나 권장 운전 속도가 아니다. 실제 키보드/모터 프로그램을 실행하는 활동도 아니다.

데드맨(deadman)/enable 입력은 조작자가 계속 활성 상태를 유지해야 움직임을 허용하는 조건이다. ROS teleop_twist_joy 공식 개요도 활성 버튼과 축의 속도 매핑을 구분한다. 이 예는 조이스틱 패키지를 키보드/접촉 감독기라고 주장하지 않는다. 아래 heartbeat/TTL·접촉 조건은 별도로 정한 교육 계약이다.

반복 키 이벤트 대신 제어 시각과 입력 상태를 기록한다

운영체제의 key-repeat 횟수마다 거리를 더하면 같은 시간 눌러도 설정에 따라 이동량이 달라질 수 있다. 눌림 상태와 활성 입력을 유지하되 제어 주기의 실제 dt로 목표를 계산하고 기록한다. heartbeat는 입력 경로가 여전히 유효한지를 갱신하는 신호다. 오래된 W눌림 상태를 영구 유지하지 않는다.

키 해제나 포커스 상실이 확인되면 활성 상태를 해제하고0명령 판정을 남긴다. 해제 이벤트가 누락될 가능성에 대비한 신선도 검사도 필요하다. 단순히 “keyup이 올 것”만 기대하지 않는다. 웹 입력이라면 다른 입력창에서 글을 쓰는 키를 로봇 제어로 해석하지 않는 경계도 설계해야 한다.

이번 속도 인터페이스에서0은 새 속도 명령의 값이다. 기존 3.5 위치 텔레옵의 “측정된 현재 자세를 HOLD 목표로 사용”과는 명령 종류가 다르다.0속도를 전송했어도 실제 제어기/통신·물리 상태를 관측하기 전에는 정지나 접촉힘0을 확정하지 않는다.

도구 속도와 물체 상태의 프레임을 나눈다

제안 속도는 tool 프레임, 실제 위치/속도 관측은 world 프레임, 서랍 열림량q는 고정 rail 프레임의 m로 정의한다. 현재 합성 표에서는 도구 방향이 고정되고 toolX와 worldX/railX가 일치한다고 가정한다. 회전한 도구를 쓰면 같은 시각의 변환으로 속도 벡터를 바꾸어야 한다. toolX를 언제나 worldX라고 읽지 않는다.

도구 이동과 서랍q도 같은 값이 아니다. 도구가 미끄러지거나 접촉이 끊기면 도구만 움직일 수 있다. tool pose/velocity·서랍q/속도·물체/접촉 상태를 분리한다. 힘은 제공된 같은 시각의 접촉 측정 N이며 센서/접촉 모델의 출처도 남긴다. 이 기본 표는 실제 힘 센서/충돌 엔진을 구현하지 않는다.

모든 시간은 ClockA의 단조 증가 ms다. 입력 발생/heartbeat stamp, 상태 취득 stamp, 수신 시각, 명령 생성/전송·ack, 다음 관측 시각을 나눈다. rosbag2 공식 README는 기록/재생과 시뮬레이션 시간 경로를 설명하지만, bag 수신 시각이 센서의 원 취득 시각을 자동으로 대신하지는 않는다. 시계 ID/단위와 원본 stamp를 함께 보존한다.

먼저 정한 관문으로 명령을 판정한다

이번 명세는 입력 나이0~100ms, 상태 나이0~50ms까지 유효하다. 경계는 포함한다. 미래 stamp·다른 시계·역전/누락·잘못된 프레임은 무효다. 필요한 상태를 검사할 수 없으면 추가 동작을 허가하지 않고 원인을 기록한다.

신선하고 유효한 입력/상태에서만 활성 키와 W/S를 해석한다. 접촉힘≤5N은 이 예의 허용 범위이고5N 초과면 중단 판정이다. 문턱은 실제 접촉 안전을 인증하는 값이 아니다. 중단/무효 후 자동 재개는 기본 범위 밖이며 새 전제 확인 없이 이전 키 상태를 재사용하지 않는다.

아래 행은 각각 독립적으로 초기화한 합성 사례다. 실제 한 에피소드의 연속 기록으로 연결하지 않는다. 별도 표시가 없으면 enable+W·ClockA·올바른 프레임과 상태를 가정한다.

사례now/input stamp/state stamp·제공 힘제한 후 전송 판정
N200/100/150ms·5N입력100ms·상태50ms 경계 유효, +0.02m/s
L201/100/201ms·2N입력101ms로0, INPUT_STALE
S200/200/149ms·2N상태51ms로0, STATE_STALE. 현재 힘/정지 미확인
R200/200/200ms·2N, enable해제0, INPUT_RELEASED
C200/200/200ms·5.1N0, CONTACT_LIMIT 중단. 부분성과 보존
X200/200/200ms·상태 시계가ClockB0, CLOCK_MISMATCH. 상태를ClockA로 붙이지 않음

R에서 측정 속도가 여전히0.01m/s라면 “0명령을 보냈으니 정지했다”는 결론은 틀리다. C도 이전에 서랍이 조금 열렸다는 사실을 지울 필요는 없지만 완료로 승격하지 않는다. 명령 판정과 현재 상태/미확인을 함께 기록한다.

상태·행동·다음 관측을 시간으로 연결한다

한 유효 구간에서 제한 후 속도 명령+0.02m/s를50ms=0.05s 동안 유지했다고 가정하면 단순 기하 예측 이동량은0.001m다. 다음 관측의 실제 도구 이동이0.0008m라고 제공됐다면 차이는0.0002m다. 이는 명령×시간과 제공 관측의 차이이며 실제 물리 추종 성능을 측정한 것은 아니다.

이 행에서 관측ot는 행동을 선택할 때 사용할 수 있었던 상태, 행동at는 제한 후 전송한 속도 명령으로 선언한다. 다음 관측ot+1은 실행 결과다. 실제 다음 위치0.0008m를 명령 속도0.02m/s 칸에 넣으면 의미/단위가 바뀐다.50ms 뒤 관측을 먼저 보고 이전 행동을 선택한 것처럼 학습 행을 만들면 미래 정보 누수가 된다.

수집 행에는 episode/attempt ID·seq·현재 자산/모델/보정/소스 지문, 관측 원시각/유효성·도구/서랍/힘, 키/enable·제안 속도·제한 이유·전송 속도/시각·ack와 다음 관측 연결을 남긴다. ack도 실제 이동/물체 성공의 관측을 대신하지 않는다. shape가 같은 배열이라도 절대 위치/증분/속도·제한 전후를 선언하지 않고 합치지 않는다.

접촉과 부분성과를 완료로 바꾸지 않는다

이번 서랍 과업의 제공 완료 기준은 목표q=0.25m의 오차≤0.005m, 서랍 속도 크기≤0.01m/s, 접촉힘≤5N이0.2초 동안 신선한 관측으로 확인되고 중단/미상이 없는 것이다. 속도는 크기로 비교한다. M25.02의 위치/정지에 힘 조건을 추가한 현재 과업의 명세이지 모든 서랍의 보편 기준이 아니다.

q=0.247m만 있으면 위치오차0.003m는 맞지만 속도/유지시간·힘/신선도가 없으므로 완료는 미확인이다. 접촉이 한 번 발생했거나 명령이 수락됐다는 사실도 전체 성공이 아니다. 접촉힘 중단 후 물체가 놓였는지·잔류 움직임/힘이 어떤지는 별도 관측으로 확인한다.

학습 자료에 쓸 행과 전체 평가 분모도 구분한다. BC의 정상 시연만 선택할 수 있지만 중단/무효 에피소드를 원본에서 삭제해 성공률을 높이면 안 된다. 선택 규칙·누락 이유·원래 시도/재시도와 terminal 상태를 보존한다. 중단·관측 누락을 성공0/힘0으로 채우지 않는다. 실제 수집이 없다면 이번 표의 분석 결과로 표시한다.

기존 5.4 데이터 수집과 M20.03의 행동 계약으로 이어 읽는다. 다음 M27.01에서는 이 입력/행동 계약을 유지하면서 실행 환경과 배포 경계를 살펴본다.

관련 기존 자료 · 보충해서 읽기

  • 기존 상세 본문 · 관련 기존 자료 · 보충 참고

    3.5 안전한 텔레오퍼레이션 루프

    목표 일부 관련

    기존 자료의 관련 범위이며 신규 목표 전체의 품질 검수는 아직 진행하지 않았습니다.

  • 기존 상세 본문 · 관련 기존 자료 · 보충 참고

    5.4 데이터 수집과 품질 관리

    목표 일부 관련

    기존 자료의 관련 범위이며 신규 목표 전체의 품질 검수는 아직 진행하지 않았습니다.

학습 범위와 한계

기본 설명·예제가 준비되었습니다. 기존 보충 자료의 범위와 구별하세요.

실습 필수

장비 없는 실습을 수행하고 관찰·계산 근거를 해설과 비교합니다.

N/L/S/R/C/X 독립 사례와50ms 구간·서랍 완료 예를 종이에 분석한다. 실제 키를 로봇에 연결하거나 물체를 움직이지 않는다.

  1. 각 사례의 입력/상태 나이를 계산하고 전송 판정·거부/중단 이유·현재 미확인을 적는다. N의5N과 C의5.1N을 비교한다.
  2. R의 현재 도구 속도가0.01m/s라고 추가 제공되면0명령·실제 정지의 판정을 나눈다. W/S동시입력·포커스 상실도 비교한다.
  3. 50ms 구간의 기하 예측/제공 실제 이동·차이를 계산하고 상태ot/행동at/다음관측ot+1의 필드·단위를 적는다.
  4. q=0.247m만 있는 기록의 부족 근거와, C에서 일부 열렸으나 중단된 에피소드의 원본/학습선택/평가 분모를 설명한다.

막히면 제안·전송·ack·관측을 네 칸으로 나누고 각 칸의 시계/프레임을 적는다.0명령을 정지나 힘0으로 바꾸면 미충족이다.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

학습 범위와 한계

기본 실습은 장비 없이 수행합니다. 실제 장비·GPU 실증을 완료했다는 뜻은 아닙니다.

평가·해설 필수

목표별 세 서술문항에 답하고 해설·판정 기준으로 자기검토합니다.

확인 문제 Q1

활성 키를 놓아0속도를 전송했고 제어기 ack도 받았다. 최신 속도 관측은 없다. 정지·접촉힘0·서랍 완료를 보고할 수 있는가? 위치 HOLD 인터페이스와도 비교하라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

확인 문제 Q2

now200ms에서 입력 stamp100ms·상태 stamp150ms·힘5N이다. now201ms로 바뀌고 상태만201ms로 갱신됐다. 두 경우의 입력/상태 유효성과 명령을 판정하라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

확인 문제 Q3

명령0.02m/s를50ms 유지했지만 제공 도구 이동은0.0008m이고 서랍 위치는0.247m만 있다. 이 자료를 학습/완료 기록으로 만들 때 무엇을 분리해야 하는가?

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

학습 범위와 한계

서술답안과 해설이 준비되었습니다. 자기검토와 학습 완료는 숙달 인증과 별개입니다.

참고 자료

학습 확인

실습과 세 문항의 답안을 해설과 비교한 뒤, 이 단위의 학습 완료를 직접 기록할 수 있습니다. 자기검토·학습 완료는 자동 채점이나 숙달 인증과 별개입니다.

실습1개·확인 문제3개의 답안을 저장하고 각각 자기검토를 기록하세요.

학습 이동

학습 단계 순서 · 공통 과정 이후 전문화 선택

전체 목차로 돌아가기 →

신규 활동의 답안은 이 브라우저의 통합 학습 기록에 저장합니다. 기존 화면의 답안·진도는 원래 키를 유지합니다. AI 강사는 현재 단위의 준비 상태·부족한 범위와 연결된 실제 자료를 참고합니다.