Files
fori_zltech_motor_test/doc/01-hardware-spec.md
T
Dongubak 2f21d86193 Add ZLAC8015D driver docs, IMU integration plan, and reference resources
Documents the ZLAC8015D V4 dual-channel driver (hardware spec, RS485
Modbus register map, 4WD skid-steer system architecture, the
xbox_motor_control.cpp control loop, and error/troubleshooting) under
doc/, plus a phased plan for adding IMU-based heading/slip feedback
(doc/06) informed by Clearpath Husky's sensor fusion stack and
skid-steer ICR literature. QnA/ records the Q&A that refined that plan.
Also adds the underlying manual PDFs and reference links under
resource/ that the docs cite.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-16 00:17:24 +09:00

8.7 KiB
Raw Blame History

01. ZLAC8015D V4 하드웨어 스펙

출처: resource/ZLAC8015D V4 Series Manual Version 1.03-20251111.pdf

1.1 개요

  • 제조사: Shenzhen Zhongling Technology (ZLTECH)
  • 허브 서보 모터 전용 디지털 AC 서보 드라이버로, 1대가 좌/우 모터 2개(듀얼 채널)를 동시 구동한다.
  • RS485(Modbus RTU) 및 CANopen(CiA301/CiA402) 버스 통신을 내장.
  • 위치/속도/토크 제어 모드를 지원.
  • 용도: AGV, 배송 로봇, 서비스 로봇, 자동화 이송 장비 등 — 본 프로젝트에서는 실외 스키드 스티어 4WD 로봇의 좌우 휠 페어 구동에 사용된다.

1.2 전기 사양

파라미터 최소 표준 최대 단위
입력 전압 20 36 48 VDC
출력 전류 (피크) 0 15 30 A
제어 신호 입력 전류 7 10 16 mA
과전압 보호 - 75 - VDC
저전압 보호 - 16 - VDC
입력 신호 전압 - 5 - VDC
절연 저항 18 20 -

채널당 정격전류 150(=15.0A), 최대전류 300(=30.0A)이 레지스터 0x2033/0x2034(좌), 0x2063/0x2064(우)의 공장 기본값이며, 위 표의 15A/30A와 일치한다. 자세한 내용은 05-error-troubleshooting.md의 전류 한계 절 참고.

1.3 환경 사양

항목 내용
냉각 방식 자연 냉각 또는 강제 냉각
사용 장소 먼지, 유분(oil mist), 부식성 가스 회피
동작 온도 0 ~ 50 ℃
최대 습도 90% RH (결로 없음)
보관 온도 -10 ~ 70 ℃
진동 10~55Hz / 0.15mm

실외 로봇에 탑재되므로 방진/방수 인클로저 내부에 설치하고, 방열이 충분한 방향(narrow side, 방열판 면)으로 장착할 것을 매뉴얼이 권장한다. 주변 온도가 60℃를 넘는 밀폐/금속 분진 환경은 피해야 한다.

1.4 외형/설치 치수

  • 크기: 150 × 97 × 31mm 내외 (방열판 폭 제외 케이스 기준, resource/ZLAC8015D V4 Series.pdf 도면 참고)
  • M3 나사로 4모서리(와이드 사이드) 또는 양측면(네로우 사이드) 고정. 방열을 위해 네로우 사이드 설치 권장.
  • 장착 시 진동/충격 보호 필요 (차체에 완충 마운트 권장).

1.5 커넥터 핀맵

J1/J2 — 좌측 모터 전원 (5핀)

Pin 표기 기능
1 DC 전원 입력 24-48V
2 GND 전원 GND
3 U 좌모터 U상
4 V 좌모터 V상
5 W 좌모터 W상

우측 모터 전원 (5핀, 핀 순서 반대)

Pin 표기 기능
5 GND 전원 GND
4 DC 전원 입력 24-48V
3 W 우모터 W상
2 V 우모터 V상
1 U 우모터 U상

전원은 좌/우 커넥터 중 한쪽 또는 양쪽 동시 입력이 가능하다(퀵스타트 가이드 확인).

J2/J6 — 좌/우 모터 인크리멘탈 엔코더 & 홀 (12핀)

Pin 표기 기능
1-4 iA+/iA-/iB+/iB- 인크리멘탈 엔코더 A/B상
5-6 RTC+/RTC- 온도 센서
7-8 V/W (Hall) 홀 센서
9 U (Hall) 홀 센서
10 GND 전원 GND
11 VCC 엔코더/홀 전원 출력
12 GND 전원 GND

J3 — 모터 제어 신호 포트 (8핀)

Pin 표기 기능
1 BGND-L 좌 브레이크 전원-
2 -BR-L 좌 브레이크-
3 BDC-L 좌 브레이크 전원+/브레이크+
4 BGND-R 우 브레이크 전원-
5 -BR-R 우 브레이크-
6 BDC-R 우 브레이크 전원+/브레이크+
7 OUTPUT1 내부 풀업 5V 출력 (CAN/RS485로 기능 설정 가능)
8 OUTPUT2 내부 풀업 5V 출력 (CAN/RS485로 기능 설정 가능)

전자식 브레이크는 레지스터 0x201A(B0, 좌)/0x201B(B1, 우)로 제어한다 (0=해제, 1=잠금). 코드의 MotorDriver::setBrakes()가 이 두 레지스터에 동시에 쓴다.

J4 — 모터 제어 신호 포트 (8핀)

Pin 표기 기능
1 AOUT-R 우모터 엔코더 A 출력
2 BOUT-R 우모터 엔코더 B 출력
3 AOUT-L 좌모터 엔코더 A 출력
4 BOUT-L 좌모터 엔코더 B 출력
5 +5V 엔코더 5V 출력 (<100mA)
6 GND 엔코더 GND
7 INPUT1 프로그래머블 입력 (기본 비상정지 등으로 설정 가능)
8 INPUT2 프로그래머블 입력

INPUT1/INPUT2 펄스폭은 10ms 이상 유지해야 드라이버가 정상 인식한다. 입력 레벨은 기본 5V이며 12V 사용 시 1kΩ/0.5W, 24V 사용 시 2kΩ/0.5W 전류제한 저항을 외부에 추가해야 한다.

J5 — 통신 포트 (5핀)

Pin 표기 기능
1 CANH CAN
2 CANL CAN
3 SGND 통신 GND
4 A RS485 A
5 B RS485 B

본 프로젝트는 이 중 SGND/A/B 3선을 사용해 RS485 Modbus RTU 통신을 한다. 통신선은 차폐 트위스트페어 사용 및 접지 연결을 매뉴얼이 권장한다.

eRS-R/eRS-L — 절대값 엔코더 인터페이스 (4핀, 미사용)

RS485 방식 외장 절대값 엔코더용 인터페이스. 본 로봇은 인크리멘탈 엔코더 기반 속도제어만 사용하므로 미배선.

SW — DIP 스위치 (2핀)

SW 기능
SW1 CAN 종단저항 선택
SW2 RS485 종단저항 선택

데이지체인 마지막 드라이버에서만 종단저항을 ON 하는 것이 일반적인 RS485 배선 원칙이다.

RES — 회생 저항 입력 (2핀)

Pin 표기 기능
1 R- 브레이크 저항
2 R+ 브레이크 저항

100RPM 이상 속도 또는 급정지/비상정지 기능을 사용할 경우, 급감속 시 발생하는 역기전력으로부터 드라이버를 보호하기 위해 외부 회생 저항(권장 5~10Ω/100W) 연결을 권장한다. 본 로봇은 최고속도 0.4m/s(둘레 반경 131.5mm 기준 약 29RPM)로 저속 운용이라 리스크는 낮지만, 급제동(decel 150ms) 프로파일을 쓰므로 실외 장시간 운용 시 회생 저항 장착을 검토할 가치가 있다.

1.6 상태 LED

  • 녹색 LED: 전원 표시. 전원 인가 시 항상 점등.
  • 적색 LED: 알람 표시. 알람 발생 시 코드 횟수만큼 점멸 후 일시정지, 반복.
상태 점멸 횟수 원인
Over-Voltage 1 공급 전압이 최대 정격 초과
Under-Voltage 2 공급 전압이 최소 동작 전압 미만
Over-Current 3 상간 단락 등으로 모터 상전류 초과
Over-Load 4 상전류가 설정 과부하 전류 초과
Current out-of-tolerance 5 (예약)
Position out-of-tolerance 6 목표 위치와 출력 위치 오차 초과
Speed out-of-tolerance 7 목표 속도와 출력 속도 오차 초과
Internal reference error 8 드라이버 내부 오류
Parameter reading error 9 EEPROM 파라미터 읽기 오류
Hall fault 10 홀 케이블 미접속 또는 신호 오류
High motor temperature 11 모터 과열
Encoder error 12 엔코더 케이블 헐거움/핀 순서 오류
Driver overtemperature 13 드라이버 과열
Speed setting error 14 지령 속도가 정격 속도 초과
Mixed error 15 2개 이상 알람 동시 발생

RS485로는 이 상태를 레지스터 0x20A5(좌)/0x20A6(우)에서 비트마스크로 읽을 수 있으며, xbox_motor_control.cppdecodeDriverError()가 이를 한글 문자열로 변환한다. 상세는 05-error-troubleshooting.md 참고.

1.7 배선 요약도 (본 프로젝트 기준)

              ┌─────────────────────────┐
 배터리 24-48V ─┤ DC/GND (좌 또는 우 or 양쪽) │
              │                         │
 좌측 허브모터  ─┤ U/V/W (좌)               │  드라이버 #1 (Station ID 1)
              │                         │  → 전방 좌/우 모터 구동
 우측 허브모터  ─┤ U/V/W (우)               │
              │                         │
 좌 엔코더/홀   ─┤ J2                      │
 우 엔코더/홀   ─┤ J6                      │
              │                         │
 RS485 A/B/GND ┤ J5 ── (데이지체인) ──────┼──→ 드라이버 #2 (Station ID 2)
              │                         │      → 후방 좌/우 모터 구동
 좌/우 브레이크 ─┤ J3                      │
              └─────────────────────────┘
                         │
                    /dev/ttyUSB0 (RS485-USB 컨버터)
                         │
                     제어 PC (xbox_motor_control_cpp)