Skip to main content
Version: Nightly

ALICE M1 Command Guide

info

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

로봇 SW 버전에 따라 다른 명령이 있습니다

이 페이지는 SW 1.0 기준입니다. 버전마다 다른 부분(관절 각도 부호, 전신 통합 Position 명령, 손 제어)은 해당 위치에 표시했습니다. 버전 확인 방법은 SW 버전 확인을 참고해 주세요.

ALICE M1은 ROS2 토픽을 통해 로봇을 직접 제어할 수 있습니다.

아래 명령들은 모두 토픽 기반 커맨드이며, 모드별로 사용 방법이 다릅니다.

커맨드 입력 전에 반드시 Joint Limits을 확인해주세요.

ROS2 전용 지원

본 커맨드는 ROS2(humble, jazzy) 환경에서만 지원됩니다. ROS1/타 프레임워크에서는 동작을 보장하지 않습니다.

Joint Limits (SW 1.0)
관절명URDF각도 범위
머리 피치head_p-50° ~ 50°
머리 요head_y-45° ~ 45°
허리 요waist_y-45° ~ 45°
상부 허리 피치waist_upper_pitch-85° ~ 0°
하부 허리 피치waist_lower_pitch-85° ~ 0°
왼쪽 어깨 피치l_sh_p-110° ~ 50°
왼쪽 어깨 롤l_sh_r-10° ~ 180°
왼쪽 어깨 요l_sh_y-70° ~ 70°
왼쪽 팔꿈치 피치l_el_p-80° ~ 0°
왼쪽 손목 요l_wr_y-75° ~ 75°
왼쪽 손목 피치l_wr_p-35° ~ 35°
왼쪽 손목 롤l_wr_r-45° ~ 15°
오른쪽 어깨 피치r_sh_p-110° ~ 50°
오른쪽 어깨 롤r_sh_r-180° ~ 10°
오른쪽 어깨 요r_sh_y-70° ~ 70°
오른쪽 팔꿈치 피치r_el_p-80° ~ 0°
오른쪽 손목 요r_wr_y-75° ~ 75°
오른쪽 손목 피치r_wr_p-35° ~ 35°
오른쪽 손목 롤r_wr_r-15° ~ 45°

SW 0.1 로봇은 허리 pitch 와 오른팔 일부 관절의 부호가 다릅니다. Hardware 문서의 SW 0.1 탭을 확인해 주세요.

Command Types​

개요​

  • Position 모드 제어 → 목표 위치로 joint 각도가 즉시 이동
  • 제어 토픽: /aeirobot/alice_mobile/command
  • 메시지 타입:
aeirobot_msgs/msg/Command

주의사항

명령을 보내는 즉시 목표 위치로 관절이 움직입니다. 보내고자 하는 명령의 제어 목표 각도와 로봇의 현재 각도의 차이가 클수록, 보내고자 하는 명령에 진동이 클수록 로봇이 발산할 확률이 높아집니다.

Position 명령으로 지속적인 제어를 할 시, 아래 사항들을 지켜주세요.

  1. 500hz로 명령을 Publish 할 것
  2. 명령에 noise 및 진동이 없도록 필터를 걸어줄 것
  3. 각 관절당 명령과 현재 로봇의 각도 차이가 1도 이내가 되도록 할 것

머리 및 허리 Position 제어​

데이터 형식​

필드데이터
msg.command3
msg.style2
msg.value[0]head pitch (deg)
msg.value[1]head yaw (deg)
msg.value[2]waist yaw(deg)
msg.value[3]waist upper pitch (deg)
msg.value[4]waist lower pitch (deg)

예시​

ros2 topic pub --once /aeirobot/alice_mobile/command aeirobot_msgs/msg/Command \
"{command: 3, style: 2, value: [40.0, 0.0, 0.0, 50.0, 50.0]}"

양 팔 Position 제어​

데이터 형식​

필드데이터
msg.command8
msg.style1
msg.value[0]left shoulder pitch (deg)
msg.value[1]left shoulder roll (deg)
msg.value[2]left shoulder yaw (deg)
msg.value[3]left elbow pitch (deg)
msg.value[4]left wrist yaw (deg)
msg.value[5]left wrist pitch (deg)
msg.value[6]left wrist roll (deg)
msg.value[7]right shoulder pitch (deg)
msg.value[8]right shoulder roll (deg)
msg.value[9]right shoulder yaw (deg)
msg.value[10]right elbow pitch (deg)
msg.value[11]right wrist yaw (deg)
msg.value[12]right wrist pitch (deg)
msg.value[13]right wrist roll (deg)

예시​

ros2 topic pub --once /aeirobot/alice_mobile/command aeirobot_msgs/msg/Command \
"{command: 8, style: 1, value: [-10.0, 0.0, 0.0, -80.0, 0.0, -10.0, 0.0, -10.0, 0.0, 0.0, 80.0, 0.0, 10.0, 0.0]}"

전신(머리+허리+양팔) 통합 Position 제어​

머리, 허리, 양팔을 하나의 명령으로 한 번에 제어합니다.

SW 1.0 전용

이 명령은 SW 1.0 에서만 동작합니다. SW 0.1 로봇은 위의 머리 및 허리 Position 제어와 양 팔 Position 제어를 각각 사용해 주세요.

데이터 형식​

필드데이터
msg.command11
msg.style1
msg.value[0]left shoulder pitch (deg)
msg.value[1]right shoulder pitch (deg)
msg.value[2]left shoulder roll (deg)
msg.value[3]right shoulder roll (deg)
msg.value[4]left shoulder yaw (deg)
msg.value[5]right shoulder yaw (deg)
msg.value[6]left elbow pitch (deg)
msg.value[7]right elbow pitch (deg)
msg.value[8]left wrist yaw (deg)
msg.value[9]right wrist yaw (deg)
msg.value[10]left wrist pitch (deg)
msg.value[11]right wrist pitch (deg)
msg.value[12]left wrist roll (deg)
msg.value[13]right wrist roll (deg)
msg.value[14]head pitch (deg)
msg.value[15]head yaw (deg)
msg.value[16]waist yaw (deg)
msg.value[17]waist upper pitch (deg)
msg.value[18]waist lower pitch (deg)
주의사항

좌/우 관절 값이 서로 번갈아(interleave) 들어가는 순서이므로, 위 표의 인덱스를 정확히 지켜 값을 채워주세요.