Skip to main content

ALICE4 소프트웨어 개요

ALICE4의 소프트웨어 아키텍처와 제어 시스템을 설명합니다.

시스템 개요

ALICE4는 ROS 2(Robot Operating System 2)를 기반으로 하는 실시간 제어 시스템입니다. 모든 하드웨어 제어는 ros2_control 프레임워크를 통해 이루어지며, 리니어 액추에이터는 CAN 버스를 통해 분산 제어됩니다.

소프트웨어 스택

  • 운영체제: Ubuntu 22.04 LTS (또는 24.04 LTS)
  • ROS 버전: ROS 2 Humble/Jazzy
  • 제어 프레임워크: ros2_control
  • 통신 프로토콜: CAN, Ethernet
  • AI 프레임워크: PyTorch, TensorFlow (옵션)

시스템 아키텍처

ALICE4의 제어 구조는 계층적으로 설계되어 있습니다:

사용자 명령 / AI 정책

ROS 2 토픽 (JointTrajectory)

controller_manager (실시간 제어 루프)

JointTrajectoryController(s)

resource_manager (인터페이스 중재)

LinearActuatorHardwareInterface

CAN 버스 통신

리니어 액추에이터

ros2_control을 사용하는 이유

ros2_control은 ROS 2의 실시간 모듈식 제어 프레임워크입니다:

  • 제어 로직과 하드웨어 드라이버 분리: 유지보수성 향상
  • 고정된 100Hz 업데이트 속도: 안정적인 실시간 제어
  • 동적 컨트롤러 로딩: 운영 중 제어기 교체 가능
  • 표준 ROS 토픽: AI 정책과 수동 제어 통합 가능

모션 실행 파이프라인

단계별 프로세스

  1. 궤적 생성: 조이스틱, GUI, 또는 AI 모델에서 생성
  2. ROS 토픽 발행: 명령이 /alice4/joint_trajectory_controller/command 토픽으로 전송
  3. 컨트롤러 매니저: 100Hz로 read → update → write 루프 실행
  4. 조인트 궤적 컨트롤러: 궤적을 각 관절 명령으로 분할
  5. 리소스 매니저: 명령 인터페이스 접근 제어 및 충돌 방지
  6. 하드웨어 인터페이스: 명령을 CAN 패킷으로 변환
  7. 액추에이터: 모션 실행 및 위치/전류 피드백 반환

제어 모드

ALICE4의 리니어 액추에이터는 다양한 제어 모드를 지원합니다:

  • 위치 제어: 정확한 위치 추종
  • 속도 제어: 일정한 속도 유지
  • 토크 제어: 정밀한 힘 제어
  • 임피던스 제어: 외부 힘에 순응

주요 ROS 2 토픽

명령 토픽

# 조인트 궤적 명령
/alice4/joint_trajectory_controller/command

# 개별 관절 명령
/alice4/joint_command

# 그리퍼 명령
/alice4/gripper_command

상태 토픽

# 조인트 상태 (위치, 속도, 토크)
/alice4/joint_states

# 로봇 전체 상태
/alice4/robot_status

# IMU 데이터
/alice4/imu

# 카메라 영상
/alice4/camera/rgb
/alice4/camera/depth

서비스

# 캘리브레이션
/alice4/calibrate

# 비상 정지
/alice4/emergency_stop

# 홈 포지션 이동
/alice4/go_home

디버깅 및 시각화 도구

RViz2

로봇 상태와 센서 데이터를 시각화합니다:

ros2 launch alice4_viz rviz.launch.py

rqt 도구

다양한 디버깅 및 모니터링 도구를 제공합니다:

# 전체 rqt 인터페이스
rqt

# 토픽 모니터
ros2 run rqt_topic rqt_topic

# 그래프 시각화
ros2 run rqt_graph rqt_graph

로그 확인

# 실시간 로그
ros2 topic echo /rosout

# 특정 노드 로그
ros2 run alice4_control controller_node --ros-args --log-level debug

안전 및 오류 처리

안전 기능

  • 소프트웨어 비상 정지: ROS 서비스로 즉시 정지
  • 하드웨어 비상 정지: 물리적 버튼으로 전원 차단
  • 조인트 제한: 각 관절의 물리적 한계 설정
  • 충돌 감지: 힘/토크 센서 기반 실시간 감지
  • 타임아웃 보호: 명령 타임아웃 시 안전 모드 진입

오류 복구

# 시스템 리셋
ros2 service call /alice4/reset std_srvs/srv/Trigger

# 안전 모드
ros2 service call /alice4/safe_mode std_srvs/srv/Trigger

# 에러 상태 확인
ros2 topic echo /alice4/diagnostics

AI 통합

ALICE4는 임베디드 AI 시스템을 지원합니다:

  • 온보드 추론: 로봇에서 직접 AI 모델 실행
  • 학습 데이터 수집: ROS bag을 통한 궤적 기록
  • 정책 배포: 학습된 모델을 ROS 노드로 배포
  • 실시간 제어: AI 정책과 기존 제어기 통합