HMD를 활용한 텔레오퍼레이션 방법
해당 과정은 베이스 자세를 기준으로 시작합니다. 베이스 자세가 아니라면 초기설치 & 세팅 가이드 탭을 참고해주세요.
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 유닛을 착용합니다.
- 머리카락/모자 등이 이마·센서 영역을 가리지 않도록 착용하세요.
- 센서가 가려지면 인식 불량, 화면 미출력, 오동작이 발생할 수 있습니다.
1.2. 네트워크 연결
네트워크가 ALICE M1과 연결되어 있는지 확인합니다.
- 하단 메뉴바 좌측의 빠른 설정 메뉴 버튼을 눌러 빠른 설정 창을 띄웁니다.
- 빠른 설정 창에서 wi-fi 메뉴를 선택하고
ALICE_M1네트워크를 찾아 연결합니다.
- HMD를 재부팅한 후 다시 시도하세요.
- 로봇의 Wi-Fi 상태를 확인하세요.
1.3. 텔레오퍼레이션 앱 실행
앱 설치 및 메뉴얼를 통해 요청하시면 설치 메뉴얼과 앱을 제공합니다.
- 하단 메뉴바 우측에서
Alice_Mobile_Telop앱을 선택하여 실행합니다.
Alice_Mobile_Telop 앱이 보이지 않을 경우-
제공해드린 apk 파일과 apk 설치 가이드를 참고하여 앱을 설치 합니다.
-
하단 메뉴바 우측의 라이브러리 메뉴 버튼을 눌러 라이브러리 창을 띄웁니다.

- 라이브러리 창의 좌측 메뉴바에서 알 수 없는 출처 메뉴("?" 그려진 폴더 아이콘)를 선택합니다.

- 알 수 없는 출처 창에서
Alice_Mobile_Telop앱을 선택하여 실행 합니다.

- 앱 실행 후 원점을 현재 위치 기준으로 재정렬합니다.
- 정면을 바라봅니다.
- hmd 앞에 손바닥이 보이도록 왼손 / 오른손을 펼칩니다.
- 엄지와 검지 사이에 회색 메타 로고가 보이면 엄지와 검지를 서로 만나게 합니다.
- 그 상태로 잠시 기다리면 화면 정 중앙에 검은색 메타 로고가 뜨고, 로딩바가 돌아갑니다.
- 로딩바가 다 돌아가면 화면이 현재 본인이 보는 방향으로 재 정렬 됩니다.
- HMD를 처음 착용했을 때
- 화면이 기울어지거나 방향이 맞지 않을 때
- 텔레오퍼레이션 시작 전 매번 수행을 권장합니다.
- 로봇의 허리는 원점 기준으로 몸이 돌아간 방향으로 제어됩니다.
- 때문에 원점이 돌아간 상태라면 착용자가 정면을 바라보고 있다고 생각하더라도, 실제 로봇의 허리는 의도하지 않는 방향으로 회전합니다.
1.4. 로봇 연결 및 텔레오퍼레이션 시작
Alice_Mobile_Telop 어플의 메인 UI 설명

- 1 : 로봇 시점 이미지 -> 설정 창에서 로봇의 양 카메라 이미지 / 왼쪽 카메라 이미지 / 오른쪽 카메라 이미지 를 선택하여 출력할 수 있습니다.
- 2 : 로봇 시점 이미지 간격 조절바 -> 로봇의 양 카메라 이미지를 출력할 때, 각 이미지 사이 간격을 조절하여 초점 조절이 가능합니다.
- 3 : 설정 메뉴 버튼 -> 설정 메뉴를 열 수 있습니다.
- 4 : 로봇 토크 모니터링 ui -> 현재 각 joint에 가해지는 힘을 모니터링 할 수 있습니다.
- 5 : 로봇과 연결 상태 표시등
- 6 : 로봇의 동작 상태 표시등
- 7 : teleoperation On / Off 제어 버튼
- 8 : 원점 표시 UI -> 해당 표식이 있는 위치가 어플의 원점 입니다.
- 9 : IK 해석 결과 모니터링 UI -> 인식된 착용자의 상체 동작을 기반으로 해석된 IK 결과를 표시합니다.
- 10 : 모방학습 데이터 수집 시작 / 종료 버튼
-
가장 먼저 자신의 손 및 상체 동작이 정상적으로 인식 되고 있는지 확인 합니다.
- 인식이 정상적으로 되고 있다면 아바타가 착용자의 신체 동작을 그대로 따라합니다.
-
자신의 신체 동작이 정상적으로 인식되고 있는것을 확인 했다면, Body Measurement 버튼을 누릅니다.
- 버튼을 누른 위치가 로봇 Base 자세의 최고 높이 기준이 됩니다.
- 사람의 신체 높이가 버튼을 누른 위치보다 더 높아져도 로봇은 그 이상 위로 올라가지 않습니다.
- 잘못된 자세에서 측정하면 로봇 동작 범위가 제한되거나 비정상 동작할 수 있습니다.
- 착용자 자신의 손 및 상체 동작이 정상적으로 인식 되기 전 측정하면 로봇 동작 범위가 제한되거나 비정상 동작할 수 있습니다.
- Body Measurement 이후 키패드가 나타나면 로봇의 IP 주소를 입력합니다.
- 기본 IP:
192.168.10.3
- 기본 IP:
로봇과 연결되면 좌측 연결 표시(Connect)가 초록색으로 켜집니다.

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

- 로봇 시점 이미지의 하단 좌측 버튼 중 Teleop Off를 누르면 텔레오퍼레이션이 중단됩니다.
- Teleop Off 버튼을 누르면 눌렀을때 자세에서 동작이 멈춥니다.
- 로봇의 팔이 다른 사람 및 사물과 부딫히지 않는지 충분히 주의후 Off 버튼을 눌러주세요.
2. 텔레오퍼레이션 어플의 설정창 설명
Alice_Mobile_Telop어플의 메인 UI에서 **설정 버튼 (톱니바퀴 모양 버튼)**을 클릭하면 어플리케이션의 설정창이 나타납니다.
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 시점 이미지만 출력합니다.
- 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'
- 단위는 m 입니다.
- 로봇의 키는 최소 1.26m, 최대 1.82m 입니다. 해당 범위 내의 수치를 입력해 주세요.
4. VR 텔레오퍼레이션 주의사항
충분히 밝은 조명에서 HMD를 사용해 주세요.
- HMD에 달린 카메라를 기반으로 사람의 손 및 상체 동작을 인식하기 때문에, 조명이 어두우면 인식 성능이 크게 떨어집니다.
- 조명이 어두우면 사람의 상체 동작을 완전히 인식하지 못하거나, 인식된 값이 크게 튈 수 있습니다.
HMD 착용자 반경 1.5m 내에 다른 사물 및 사람이 진입하지 못하도록 해주세요.
-
다른 사람의 신체 인식 문제
- HMD의 카메라 인식 범위 내에 착용자 이외의 다른 사람의 신체가 들어오면, 착용자가 아닌 다른 사람의 신체를 인식하여 로봇의 모션이 크게 튈 수 있습니다.
-
충돌 위험
- HMD 착용자가 로봇을 조작 중에는 착용자 주변 외부 환경을 신경 쓰기 어렵기 때문에, 조작 반경 내 사물 및 사람이 있으면 부딪힐 수 있습니다.
반드시 로봇의 조작을 종료한 이후 HMD를 벗어주세요.
- 로봇이 조작 중일 때 (Teleop ON 상태일 때)는 로봇이 항상 HMD 착용자의 동작을 따라합니다.
- 조작 중에는 HMD를 벗는 등의 다른 행동은 삼가해 주세요.
로봇을 조작 중에는 무리한 동작을 하지 않도록 주의해서 움직여 주세요.
아래와 같은 동작은 로봇이 인식하지 못하거나 오동작을 유발할 수 있습니다:
-
HMD 카메라 인식 범위를 벗어나는 동작
- 팔을 몸 뒤로 빼는 동작
- 팔을 너무 높게 들어올리는 동작
- 팔을 양옆으로 과도하게 벌리는 동작
-
팔에 과한 힘이 가해지는 동작
- 팔로 책상을 아래로 과하게 누르는 동작 등
-
팔이 로봇의 다른 신체에 부딪히는 동작
로봇 토크 모니터링 ui를 통해 각 관절에 가해지는 힘을 모니터링 할 수 있습니다.
- 토크는 각 관절의 정격 토크를 기준으로 %로 표시됩니다.
- 만약 로봇의 관절 중 단 한개라도 정격 토크 이상 힘을 사용하면, UI의 해당 관절이 붉게 변하면서 동시에 화면 전체가 붉게 변합니다.
- 이 경우 그 이상 힘을 사용할 경우, 모터의 토크가 꺼질 수 있습니다.
- hmd를 사용한 텔레오퍼레이션 중, 로봇의 토크가 갑자기 꺼졌다면 아래 사항들을 확인해 주세요.
- 토크가 꺼지기 직전 HMD의 화면 전체가 붉게 변했는가
- 로봇 토크 모니터링 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