Cubemars - 17년 모터 제조업체 이메일: info@cubemars.com +86 13755649079
한국어
English
中文简体
日本語
Deutsch
Français
한국어
Español
Pусский
Quick Registration
CubeMars 계정 만들기

 

비디오 센터
목차
준비 사항
1단계: MIT Mode의 핵심 원리 이해
2단계: 하드웨어 연결 및 액추에이터 초기 설정
3단계: C++ 제어 로직 이해
4단계: 테스트 실행 및 결과 확인
자주 묻는 질문(FAQ)
자료 다운로드 및 더 많은 구동 솔루션 살펴보기

튜토리얼: C++를 사용한 CubeMars AK60-6 (KV80) MIT Mode 설정

CubeMars / Jul 03,2026

4족 보행 로봇, 휴머노이드 로봇 또는 고성능 로봇 암을 개발할 때 기존의 독립적인 위치/속도/토크 제어 방식은 통신 프레임 속도의 한계로 인해 고주파 전신 동역학 제어 요구 사항을 충족하지 못하는 경우가 많습니다. 이러한 이유로 MIT Mode는 개발자들이 가장 선호하는 제어 방식으로 자리 잡았습니다.


이 튜토리얼에서는 C++를 사용하여 CAN 버스를 통해 CubeMars AK60-6 (KV80) Robotic Actuator를 MIT Mode로 구성하고 제어하는 방법을 단계별로 설명합니다. 이 가이드를 따라 하면 기본 통신 프로토콜의 핵심 로직을 이해하고 액추에이터의 높은 응답성과 낮은 지연 시간을 최대한 활용할 수 있습니다.


준비 사항


C++ 코드를 작성하기 전에 다음과 같은 하드웨어 및 소프트웨어 환경을 준비해 주십시오.


  1. 핵심 하드웨어: CubeMars AK60-6 (KV80) Robotic Actuator, 안정적인 CAN 통신 인터페이스(예: USB-to-CAN 어댑터, CANoe 또는 CAN 인터페이스가 탑재된 개발 보드)

  2. 소프트웨어 환경: C++ 컴파일러(GCC, MSVC 등)와 CAN 통신을 지원하는 서드파티 라이브러리(PCAN-Basic, SocketCAN 등)

  3. 유틸리티 소프트웨어: CubeMars 공식 설정 소프트웨어(초기 파라미터 설정용)


1단계: MIT Mode의 핵심 원리 이해


코드를 작성하기 전에 먼저 MIT Mode를 사용하는 이유를 이해하는 것이 중요합니다. 기존 제어 방식은 한 번에 하나의 파라미터(예: 위치 또는 속도)만 전송할 수 있습니다. 반면 MIT Mode에서는 다음의 5가지 핵심 파라미터를 하나의 표준 8바이트 CAN 프레임에 동시에 포함할 수 있습니다.


  • 목표 위치

  • 목표 속도

  • 목표 토크 (Torque / Kt × I)

  • 위치 PD 게인 (Kp)

  • 속도 PD 게인 (Kd)


이와 같은 통합 메시지 구조는 통신 지연을 크게 줄여주며, 고주파 보행 제어와 컴플라이언트 힘 제어를 구현하는 기반이 됩니다.


2단계: 하드웨어 연결 및 액추에이터 초기 설정


코드를 실행하기 전에 액추에이터가 올바르게 연결되고 설정되었는지 확인하십시오.


  1. 하드웨어 연결: CAN 인터페이스의 CAN_H 및 CAN_L을 각각 AK60-6 액추에이터의 CAN_H 및 CAN_L에 연결합니다. 또한 모든 장치가 공통 접지(Common Ground)를 공유하는지 확인하십시오.

  2. CubeMars 소프트웨어를 통한 설정:


  • CubeMars 설정 소프트웨어를 사용하여 액추에이터에 연결합니다.

  • 액추에이터의 CAN ID를 원하는 값(예: 0x01)으로 설정하고, 해당 값을 기억해 두십시오. 이 값은 C++ 프로그램에서 사용됩니다.

  • Baud Rate를 1 Mbps(1000 kbps)로 설정합니다. 이는 MIT Mode에서 권장되는 통신 속도입니다.

  • "Enter MIT Mode" 버튼을 클릭합니다. 설정이 성공적으로 완료되면 손으로 축을 회전시킬 때 뚜렷한 전자기 저항감을 느낄 수 있습니다.


3단계: C++ 제어 로직 이해


C++ 환경에서 AK60-6의 제어 로직은 다음의 세 가지 핵심 단계로 나눌 수 있습니다(전체 프로젝트 코드와 데이터 변환 함수는 아래 첨부 파일을 다운로드하십시오).


  1. Enable 명령 전송: MIT Mode에 진입한 후에도 액추에이터는 기본적으로 보호 상태에 있습니다. 제어 명령을 보내기 전에 전용 Enable 프레임(일반적으로 0x00으로 채워진 8바이트 프레임 또는 프로토콜에서 정의한 Enable 프레임)을 먼저 전송하여 액추에이터를 활성화해야 합니다. 확인음(삐 소리)이 들리면 활성화가 완료된 것입니다.

  2. 부동소수점 값을 부호 없는 정수로 변환: 이는 MIT Mode의 C++ 구현에서 가장 중요한 알고리즘입니다. CAN 프레임은 정수 데이터만 전송할 수 있으므로, 물리량(예: 목표 위치 -12.5 rad)을 16비트 또는 12비트 부호 없는 정수로 변환해야 합니다.


    로직: 선형 매핑 함수 float_to_uint(x, x_min, x_max, bits)를 사용합니다.

    동작: 목표 위치, 속도, 토크, Kp 및 Kd를 액추에이터의 허용 범위 내로 제한한 후, 비례적으로 해당 16진수 값으로 변환합니다.


  3. 8바이트 CAN 프레임 구성 및 전송: 이전 단계에서 얻은 다섯 개의 정수 값을 CubeMars 통신 프로토콜에서 정의한 비트 배열에 따라 하나의 8바이트(64비트) 배열로 패킹합니다. 이후 사용 중인 CAN 라이브러리를 이용해 설정된 CAN ID로 액추에이터에 전송합니다. 액추에이터는 프레임을 수신하면 즉시 이를 해석하고 명령을 실행합니다.


4단계: 테스트 실행 및 결과 확인


C++ 프로그램을 컴파일하고 실행(또는 다운로드)한 후 AK60-6 액추에이터의 전원을 켭니다.


C++ 프로그램을 실행하면 코드에서 설정한 목표 위치, 속도 및 토크 값에 따라 액추에이터가 매우 부드럽고 빠르게 응답하는 것을 확인할 수 있습니다. 또한 Kp와 Kd 값을 동적으로 변경하여 액추에이터의 강성과 컴플라이언스 특성이 어떻게 변화하는지 직접 확인할 수 있습니다.


자주 묻는 질문(FAQ)


Q1: CAN 프레임을 전송했는데 액추에이터가 응답하지 않거나 오류가 발생합니다.


A: 다음 사항을 확인하십시오.

Enable 명령이 정상적으로 전송되었습니까?

C++ 코드의 CAN ID가 액추에이터에 설정된 CAN ID와 정확히 일치합니까?

명령 값이 프로토콜에서 정의한 제한 범위(P_MAX, V_MAX 등) 내에 있습니까? 허용 범위를 벗어난 값은 액추에이터에서 거부됩니다.


Q2: 코드에서 바이트 순서(Byte Order)는 어떻게 처리해야 하나요?


A: CubeMars CAN 프로토콜은 일반적으로 Big-Endian 방식을 사용합니다. C++에서 8바이트 CAN 프레임을 구성할 때 MSB(Most Significant Byte)와 LSB(Least Significant Byte)의 순서를 반드시 정확하게 맞춰야 합니다. 바이트 순서가 잘못되면 위치와 토크 값이 올바르게 해석되지 않습니다. 자세한 내용은 Communication Protocol Manual을 참고하십시오.


Q3: 액추에이터의 Zero Position은 어떻게 보정하나요?


A: MIT Mode에서는 "Set Current Position as Zero" 전용 CAN 명령을 전송합니다(CAN ID 및 데이터 프레임은 Communication Protocol Manual을 참조하십시오). 그러면 액추에이터는 현재 로터 위치를 기계적 영점으로 저장합니다. 시스템 전원 인가 후 초기화 과정에서 매번 이 작업을 수행하는 것이 권장됩니다.


자료 다운로드 및 더 많은 구동 솔루션 살펴보기


60 mm 플랜지 크기와 뛰어난 동적 성능을 갖춘 AK60-6 (KV80)는 경량 로봇 암, 짐벌 시스템 및 4족 보행 로봇의 다리 관절에 이상적인 선택입니다.


[CubeMars AK60-6 (KV80)의 상세 사양 및 치수를 확인해 보세요.]


관련 기사
언박싱 & 첫인상: Acrobot용 CubeMars AK70-10 BLDC 모터
언박싱 & 첫인상: Acrobot용 CubeMars AK70-10 BLDC 모터
로봇 메이커 Daniel의 언박싱과 함께 CubeMars AK70-10 브러시리스 로봇 관절 모터를 자세히 살펴보세요. 1:10 유성감속기와 자기식 엔코더를 내장하고 최대 25Nm의 피크 토크를 제공하여, 아크로바틱 로봇에 정밀한 힘 제어와 뛰어난 성능을 구현하는 모습을 확인할 수 있습니다.
Jul 02,2026
CubeMars RI80, Transgrid의 송전선 검사 로봇에 동력을 제공하다
CubeMars RI80, Transgrid의 송전선 검사 로봇에 동력을 제공하다
Transgrid가 CubeMars RI80 모터와 NASA에서 영감을 받은 보기 시스템을 활용하여 송전선 장애물을 극복하는 방법을 확인해 보세요. 높은 하중 성능과 안정적인 동작으로 더욱 안전한 전력망 유지보수를 실현합니다.
Jun 29,2026
모터가 MIT 모드에 진입하지 못할 경우
모터가 MIT 모드에 진입하지 못할 경우
전원 인가 후 모터가 MIT 모드에 진입하지 못할 경우, 참고용 영상을 다운로드해 주세요.
Oct 22,2024
메시지 남기기
사용자 이름
익명
이메일 *
이름 *
전화번호
문의 내용
인증 코드
captcha
안내
안내
로그인해 주세요
로그인
회원 가입
비밀번호를 잊으셨나요?
안내