Skip to main content

HMD를 활용한 텔레오퍼레이션 방법

info

해당 과정은 베이스 자세를 기준으로 시작합니다. 베이스 자세가 아니라면 초기설치 & 세팅 가이드 탭을 참고해주세요.

HMD를 활용한 텔레오퍼레이션 또는 데이터 수집을 위해서 0. 코드 실행 과정을 수행해 주세요.

0. 코드 실행

  • HMD를 활용한 텔레오퍼레이션을 수행하기 위해서는 로봇의 Orin에 접속하여 아래 코드를 실행시켜 주세요.

0.1. VR 제어 코드 실행

ros2 launch alice_mobile_vr alice_mobile_vr.launch.py

0.2. 카메라 이미지 출력 코드 실행

ros2 run gr00t_data_manager camera_recorder

1. HMD의 텔레오퍼레이션 어플 실행

  • HMD는 Meta Quest 3 모델 사용을 권장드립니다. 다른 종류의 기기 사용 시 제대로 된 동작을 보장하지 않습니다.

1.1. HMD 유닛 착용

HMD 유닛을 착용합니다.

착용 시 주의사항
  • 머리카락/모자 등이 이마·센서 영역을 가리지 않도록 착용하세요.
  • 센서가 가려지면 인식 불량, 화면 미출력, 오동작이 발생할 수 있습니다.
HMD 센서

1.2. 네트워크 연결

네트워크가 ALICE M1과 연결되어 있는지 확인합니다.

  1. 하단 메뉴바 좌측의 빠른 설정 메뉴 버튼을 눌러 빠른 설정 창을 띄웁니다.
HMD 하단 메뉴바 - 빠른 설정
  1. 빠른 설정 창에서 wi-fi 메뉴를 선택하고 ALICE_M1 네트워크를 찾아 연결합니다.
HMD Wi-Fi 설정
네트워크 연결 불가 시
  • HMD를 재부팅한 후 다시 시도하세요.
  • 로봇의 Wi-Fi 상태를 확인하세요.

1.3. 텔레오퍼레이션 앱 실행

텔레오퍼레이션 앱 안내

앱 설치 및 메뉴얼를 통해 요청하시면 설치 메뉴얼과 앱을 제공합니다.

  1. 하단 메뉴바 우측에서 Alice_Mobile_Telop 앱을 선택하여 실행합니다.
HMD 하단 메뉴바 - teleop 앱 Telop 앱 아이콘 이미지
하단 메뉴바 우측에서 Alice_Mobile_Telop 앱이 보이지 않을 경우
  1. 제공해드린 apk 파일과 apk 설치 가이드를 참고하여 앱을 설치 합니다.

  2. 하단 메뉴바 우측의 라이브러리 메뉴 버튼을 눌러 라이브러리 창을 띄웁니다.

HMD 하단 메뉴바 - 라이브러리
  1. 라이브러리 창의 좌측 메뉴바에서 알 수 없는 출처 메뉴("?" 그려진 폴더 아이콘)를 선택합니다.
HMD 라이브러리 메뉴
  1. 알 수 없는 출처 창에서 Alice_Mobile_Telop 앱을 선택하여 실행 합니다.
HMD 알 수 없는 출처 창
  1. 앱 실행 후 원점을 현재 위치 기준으로 재정렬합니다.
    • 정면을 바라봅니다.
    • hmd 앞에 손바닥이 보이도록 왼손 / 오른손을 펼칩니다.
    • 엄지와 검지 사이에 회색 메타 로고가 보이면 엄지와 검지를 서로 만나게 합니다.
    • 그 상태로 잠시 기다리면 화면 정 중앙에 검은색 메타 로고가 뜨고, 로딩바가 돌아갑니다.
    • 로딩바가 다 돌아가면 화면이 현재 본인이 보는 방향으로 재 정렬 됩니다.
Telop 앱 실행
재정렬 시점
  • HMD를 처음 착용했을 때
  • 화면이 기울어지거나 방향이 맞지 않을 때
  • 텔레오퍼레이션 시작 전 매번 수행을 권장합니다.
착용자가 바라보는 방향이 원점이 아닐경우, 로봇의 허리가 이상한 방향으로 움직일 수 있습니다.
  • 로봇의 허리는 원점 기준으로 몸이 돌아간 방향으로 제어됩니다.
  • 때문에 원점이 돌아간 상태라면 착용자가 정면을 바라보고 있다고 생각하더라도, 실제 로봇의 허리는 의도하지 않는 방향으로 회전합니다.

1.4. 로봇 연결 및 텔레오퍼레이션 시작

아래 사진속 UI와 실제 실행된 UI는 teleop 앱의 개인 설정에 따라 조금씩 다를 수 있습니다.
Alice_Mobile_Telop 어플의 메인 UI 설명
Body Measurement
  • 1 : 로봇 시점 이미지 -> 설정 창에서 로봇의 양 카메라 이미지 / 왼쪽 카메라 이미지 / 오른쪽 카메라 이미지 를 선택하여 출력할 수 있습니다.
  • 2 : 로봇 시점 이미지 간격 조절바 -> 로봇의 양 카메라 이미지를 출력할 때, 각 이미지 사이 간격을 조절하여 초점 조절이 가능합니다.
  • 3 : 설정 메뉴 버튼 -> 설정 메뉴를 열 수 있습니다.
  • 4 : 로봇 토크 모니터링 ui -> 현재 각 joint에 가해지는 힘을 모니터링 할 수 있습니다.
  • 5 : 로봇과 연결 상태 표시등
  • 6 : 로봇의 동작 상태 표시등
  • 7 : teleoperation On / Off 제어 버튼
  • 8 : 원점 표시 UI -> 해당 표식이 있는 위치가 어플의 원점 입니다.
  • 9 : IK 해석 결과 모니터링 UI -> 인식된 착용자의 상체 동작을 기반으로 해석된 IK 결과를 표시합니다.
  • 10 : 모방학습 데이터 수집 시작 / 종료 버튼
  1. 가장 먼저 자신의 손 및 상체 동작이 정상적으로 인식 되고 있는지 확인 합니다.

    • 인식이 정상적으로 되고 있다면 아바타가 착용자의 신체 동작을 그대로 따라합니다.
  2. 자신의 신체 동작이 정상적으로 인식되고 있는것을 확인 했다면, Body Measurement 버튼을 누릅니다.

    • 버튼을 누른 위치가 로봇 Base 자세의 최고 높이 기준이 됩니다.
    • 사람의 신체 높이가 버튼을 누른 위치보다 더 높아져도 로봇은 그 이상 위로 올라가지 않습니다.
Body Measurement
Body Measurement 주의사항
  • 잘못된 자세에서 측정하면 로봇 동작 범위가 제한되거나 비정상 동작할 수 있습니다.
  • 착용자 자신의 손 및 상체 동작이 정상적으로 인식 되기 전 측정하면 로봇 동작 범위가 제한되거나 비정상 동작할 수 있습니다.
  1. Body Measurement 이후 키패드가 나타나면 로봇의 IP 주소를 입력합니다.
    • 기본 IP: 192.168.10.3
IP 주소 입력
연결 표시

로봇과 연결되면 좌측 연결 표시(Connect)가 초록색으로 켜집니다.

ros 연결 상태
  1. 로봇 시점 이미지의 하단 좌측 버튼 중 Teleop On을 누르면 텔레오퍼레이션이 시작됩니다.
Motion Teleop 버튼
Teleop 시작시 주의사항.
  • Teleop On 버튼을 누르면, 로봇은 hmd 착용자가 on 버튼을 누른 시점 자세로 약 4초간 천천히 움직이며, 이를 teleop 준비 단계라고 부릅니다.
  • Teleop 준비 단계가 완료되면 그때부터 로봇은 hmd 착용자의 움직임을 실시간으로 따라갑니다.
  • 때문에 준비 단계가 끝나기도 전에 on 버튼을 누른 시점의 자세와 다른 자세를 취하면, Teleop 준비 단계가 끝난 후 로봇의 움직임이 크게 튈 수 있습니다.
  • 반드시 Teleop 준비 단계가 완료되기 전까지는 On 버튼을 누른 자세를 유지해 주세요
Teleop 동작 상태 확인.
  • Teleop 동작 상태는 어플 UI의 로봇 동작 상태 표시등의 색상을 통해 확인 가능합니다.
teleop 동작 상태
  1. 로봇 시점 이미지의 하단 좌측 버튼 중 Teleop Off를 누르면 텔레오퍼레이션이 중단됩니다.
Teleop 중단 주의사항.
  • Teleop Off 버튼을 누르면 눌렀을때 자세에서 동작이 멈춥니다.
  • 로봇의 팔이 다른 사람 및 사물과 부딫히지 않는지 충분히 주의후 Off 버튼을 눌러주세요.

2. 텔레오퍼레이션 어플의 설정창 설명

  • Alice_Mobile_Telop 어플의 메인 UI에서 **설정 버튼 (톱니바퀴 모양 버튼)**을 클릭하면 어플리케이션의 설정창이 나타납니다.
teleop어플 설정창 설명

2.1. Info

  • App Fps : Alice_Mobile_Telop의 FPS가 표시됩니다.
  • Max Pelvis Height : Body Measurement버튼을 눌렀을 때 사람의 pelvis 높이가 표시됩니다.
  • Current Pelvis Height : 현재 인식된 착용자의 pelvis 높이가 표시됩니다.
  • ROS IP : 어플이 로봇과 연결 중, 혹은 연결 시도중인 IP 주소가 표시됩니다.

2.2. Robot View Mod

  • Use Stereo View : 로봇의 left / right 시점 이미지를 동시에 출력합니다.
  • Use Only Left View : 로봇의 left 시점 이미지만 출력합니다.
  • Use Only Right View : 로봇의 right 시점 이미지만 출력합니다.
warning
  • Use Stereo View를 선택할 경우, HMD의 왼쪽 렌즈에는 로봇의 left 시점 이미지만, 오른쪽 렌즈에는 로봇의 right 시점 이미지만 보여집니다.
  • 때문에 사람에 따라서는 초점이 안맞거나, 심한 어지러움이 느껴질 수 있습니다.
  • 초점이 잘 안맞는다면 로봇 시점 이미지 간격 조절바를 통해 각 이미지 사이의 간격을 조절해 주거나, Use Only Left View / Use Only Right View를 사용해 주세요.

2.3. UI On / Off

  • Show Robot View : 로봇 시점 이미지 On / Off
  • Show Torque Warning Ui : 로봇의 각 관절에 가해지는 토크를 모니터링 할 수 있는 UI On / Off
  • Show IK Debug Model : 인식된 착용자의 상체 동작을 기반으로 해석된 IK 결과 모니터링 UI On / Off
  • Show Hand Debug UI : 인식된 손가락 동작을 로봇 손 제어 데이터로 변환하는 과정 디버깅용 UI On / Off
  • Show Avatar : 착용자의 상체 동작을 나타내는 아바타 On / Off
  • Show Hand : 착용자의 손가락 동작을 나타내는 손 모델 On / Off
  • Show Ray : UI 상호작용에 사용되는 ray On / Off
  • Show Avatar Joints : 아바타의 주요 관절 표시 On / Off
  • Show Hand Joints : 손가락 모델의 주요 관절 표시 On / Off

3. 로봇의 최대 높이 / 최소 높이 변경

  • 별다른 설정을 하지 않았다면, 로봇의 최고 높이는 1.62m, 최저 높이는 1.26이 됩니다.
  • 텔레오퍼레이션으로는 설정된 최고 높이 이상, 최저 높이 이하로는 제어할 수 없습니다.
  • 만약 로봇의 최고 높이를 변경하고 싶다면, 텔레오퍼레이션이 중단된 상태에서 아래 명령어의 data에 원하는 수치를 입력해 주세요
ros2 topic pub --once /aeirobot/alice/vr/set_max_robot_height std_msgs/msg/Float32 'data: 1.62'
  • 만약 로봇의 최저 높이를 변경하고 싶다면, 텔레오퍼레이션이 중단된 상태에서 아래 명령어의 data에 원하는 수치를 입력해 주세요
ros2 topic pub --once /aeirobot/alice/vr/set_min_robot_height std_msgs/msg/Float32 'data: 1.26'
명령 보낼때 주의 사항
  1. 단위는 m 입니다.
  2. 로봇의 키는 최소 1.26m, 최대 1.82m 입니다. 해당 범위 내의 수치를 입력해 주세요.

4. VR 텔레오퍼레이션 주의사항

조명 환경

충분히 밝은 조명에서 HMD를 사용해 주세요.

  • HMD에 달린 카메라를 기반으로 사람의 손 및 상체 동작을 인식하기 때문에, 조명이 어두우면 인식 성능이 크게 떨어집니다.
  • 조명이 어두우면 사람의 상체 동작을 완전히 인식하지 못하거나, 인식된 값이 크게 튈 수 있습니다.
안전 거리 확보

HMD 착용자 반경 1.5m 내에 다른 사물 및 사람이 진입하지 못하도록 해주세요.

  1. 다른 사람의 신체 인식 문제

    • HMD의 카메라 인식 범위 내에 착용자 이외의 다른 사람의 신체가 들어오면, 착용자가 아닌 다른 사람의 신체를 인식하여 로봇의 모션이 크게 튈 수 있습니다.
  2. 충돌 위험

    • HMD 착용자가 로봇을 조작 중에는 착용자 주변 외부 환경을 신경 쓰기 어렵기 때문에, 조작 반경 내 사물 및 사람이 있으면 부딪힐 수 있습니다.
조작 종료 후 HMD 탈착

반드시 로봇의 조작을 종료한 이후 HMD를 벗어주세요.

  • 로봇이 조작 중일 때 (Teleop ON 상태일 때)는 로봇이 항상 HMD 착용자의 동작을 따라합니다.
  • 조작 중에는 HMD를 벗는 등의 다른 행동은 삼가해 주세요.
무리한 동작 금지

로봇을 조작 중에는 무리한 동작을 하지 않도록 주의해서 움직여 주세요.

아래와 같은 동작은 로봇이 인식하지 못하거나 오동작을 유발할 수 있습니다:

  1. HMD 카메라 인식 범위를 벗어나는 동작

    • 팔을 몸 뒤로 빼는 동작
    • 팔을 너무 높게 들어올리는 동작
    • 팔을 양옆으로 과도하게 벌리는 동작
  2. 팔에 과한 힘이 가해지는 동작

    • 팔로 책상을 아래로 과하게 누르는 동작 등
  3. 팔이 로봇의 다른 신체에 부딪히는 동작

로봇 토크 모니터링 ui

로봇 토크 모니터링 ui를 통해 각 관절에 가해지는 힘을 모니터링 할 수 있습니다.

  • 토크는 각 관절의 정격 토크를 기준으로 %로 표시됩니다.
  • 만약 로봇의 관절 중 단 한개라도 정격 토크 이상 힘을 사용하면, UI의 해당 관절이 붉게 변하면서 동시에 화면 전체가 붉게 변합니다.
    • 이 경우 그 이상 힘을 사용할 경우, 모터의 토크가 꺼질 수 있습니다.
  • hmd를 사용한 텔레오퍼레이션 중, 로봇의 토크가 갑자기 꺼졌다면 아래 사항들을 확인해 주세요.
    1. 토크가 꺼지기 직전 HMD의 화면 전체가 붉게 변했는가
    2. 로봇 토크 모니터링 ui의 어느 관절이 붉게 변했는가.
teleop어플 토크 모니터링 UI

5. 문제 해결

Teleop ON 버튼을 눌렀는데 로봇이 움직이지 않을 때

1. HMD Wi-Fi 연결 확인

HMD가 로봇의 Wi-Fi(ALICE_M1)에 연결되어 있는지 확인하세요.

  • HMD가 로봇과 통신하기 위해서는 반드시 로봇의 Wi-Fi에 연결되어야 합니다.
  • Wi-Fi 설정에서 ALICE_M1 네트워크를 확인하세요.

2. Teleop 앱 연결 상태 확인

HMD의 Teleop 어플이 로봇과 정상적으로 연결되었는지 확인하세요.

  • Teleop 앱의 TCP 연결 상태를 나타내는 UI가 초록색 화살표로 변해야 연결이 완료된 것입니다.
  • 만약 회색 화살표 상태라면:
    • Wi-Fi를 로봇의 Wi-Fi로 연결했는지 확인
    • IP 주소를 제대로 입력했는지 확인

3. 로봇에서 토픽 수신 확인

로봇에서 /aeirobot/alice/vr/joint_angles 토픽을 받고 있는지 확인하세요.

  • Teleop ON 버튼을 눌렀을 때 /aeirobot/alice/vr/joint_angles 토픽이 발행 중이 아니라면 로봇은 동작하지 않습니다.
  • 아래 명령어로 해당 토픽이 발행 중인지 확인하세요:
ros2 topic hz /aeirobot/alice/vr/joint_angles
# 또는
ros2 topic echo /aeirobot/alice/vr/joint_angles

4. 로봇에서 VR 코드 실행 확인

로봇에서 VR 코드가 정상적으로 실행 중인지 확인하세요.

  • 코드가 켜져 있지 않은 상태라면 VR Teleop 동작을 수행하지 않습니다.
  • 아래 명령어로 코드를 실행시켜 주세요:
ros2 launch alice_mobile_vr alice_mobile_vr.launch.py