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 정책과 수동 제어 통합 가능
모션 실행 파이프라인
단계별 프로세스
- 궤적 생성: 조이스틱, GUI, 또는 AI 모델에서 생성
- ROS 토픽 발행: 명령이
/alice4/joint_trajectory_controller/command토픽으로 전송 - 컨트롤러 매니저: 100Hz로
read → update → write루프 실행 - 조인트 궤적 컨트롤러: 궤적을 각 관절 명령으로 분할
- 리소스 매니저: 명령 인터페이스 접근 제어 및 충돌 방지
- 하드웨어 인터페이스: 명령을 CAN 패킷으로 변환
- 액추에이터: 모션 실행 및 위치/전류 피드백 반환
제어 모드
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 정책과 기존 제어기 통합