Cubemars - 17年電機メーカー info@cubemars.com +86 13755649079
日本語
English
中文简体
日本語
Deutsch
Français
한국어
Español
Pусский
Quick Registration
ユーザー登録

 

ビデオセンター
目次
準備
ステップ 1:MIT Mode の基本ロジックを理解する
ステップ 2:ハードウェア接続とアクチュエータの初期設定
ステップ 3:C++ による制御ロジックの理解
ステップ 4:テストの実行と動作確認
よくある質問(FAQ)
資料を入手して、さらに多くの駆動ソリューションをご覧ください

C++によるCubeMars AK60-6 (KV80) MIT Mode設定チュートリアル

CubeMars / Jul 03,2026

四足歩行ロボット、ヒューマノイドロボット、高性能ロボットアームの開発では、従来の位置・速度・トルクを個別に制御する方式は、通信フレームレートの制約により、高周波な全身ダイナミクス制御の要求を満たせないことが少なくありません。そのため、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 を採用する理由を理解することが重要です。従来の制御方式では、一度に送信できるパラメータは位置や速度など1つだけです。一方、MIT Mode では、以下の5つの重要なパラメータを1つの標準 8 バイト CAN フレームに同時に格納できます。


  • 目標位置

  • 目標速度

  • 目標トルク(Torque / Kt × I)

  • 位置 PD ゲイン(Kp)

  • 速度 PD ゲイン(Kd)


この統合されたメッセージ構造により、通信遅延が大幅に削減され、高周波歩行制御やコンプライアントな力制御を実現するための基盤となります。


ステップ 2:ハードウェア接続とアクチュエータの初期設定


コードを実行する前に、アクチュエータが正しく接続・設定されていることを確認してください。


  1. ハードウェア接続: CAN インターフェースの CAN_H と CAN_L を、それぞれ AK60-6 アクチュエータの CAN_H と CAN_L に接続してください。また、すべての機器が共通グランドになっていることを確認してください。

  2. CubeMars ソフトウェアでの設定:


  • CubeMars の設定ソフトウェアを使用してアクチュエータに接続します。

  • アクチュエータの CAN ID を任意の値(例:0x01)に設定し、その値を記録してください。この ID は C++ プログラムで使用します。

  • Baud Rate を 1 Mbps(1000 kbps) に設定してください。これは MIT Mode の推奨ボーレートです。

  • 「Enter MIT Mode」 ボタンをクリックします。正常に有効化されると、アクチュエータのシャフトを手で回した際に、明確な電磁抵抗を感じるようになります。


ステップ 3:C++ による制御ロジックの理解


C++ 環境における AK60-6 の制御ロジックは、以下の3つの主要なステップに分けられます(完全なサンプルコードおよびデータ変換関数については、下記の添付ファイルをダウンロードしてください)。


  1. Enable コマンドの送信: MIT Mode に入った後も、アクチュエータは初期状態では保護モードになっています。制御コマンドを送信する前に、専用の Enable フレーム(通常は 8 バイトすべてを 0x00 にしたフレーム、またはプロトコルで定義された 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 フレームの組み立てと送信: 前のステップで得られた5つの整数パラメータを、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(最上位バイト)と LSB(最下位バイト)の順序に十分注意してください。バイト順が誤っていると、位置やトルクの値が正しく解釈されません。詳細なバイト配置については、通信プロトコルマニュアル を必ず参照してください。


Q3:アクチュエータのゼロ位置(Zero Position)はどのようにキャリブレーションしますか?


A: MIT Mode では、現在位置をゼロ位置として設定する 専用の CAN コマンドを送信します(CAN ID およびデータフレームの詳細は通信プロトコルマニュアルを参照してください)。アクチュエータは現在のローター位置を機械的なゼロ位置として記録します。システム起動時の初期化処理として毎回実行することを推奨します。


資料を入手して、さらに多くの駆動ソリューションをご覧ください


コンパクトな 60 mm フランジサイズ と優れた動的性能を備えた AK60-6 (KV80) は、軽量ロボットアーム、ジンバルシステム、四足歩行ロボットの脚関節などに最適なソリューションです。


CubeMars AK60-6 (KV80) の詳細な仕様および寸法はこちら】

関連記事
AKシリーズモーター修理
AKシリーズモーター修理
AKシリーズのモーターに問題がありますか?一緒に修理しましょう!
Oct 22,2024
CubeMars V3.0上位機用ベーシックユーザーガイド
CubeMars V3.0上位機用ベーシックユーザーガイド
1、V3.0モーターをR-LINK V3.0に接続する方法;2、モーターを上位機(パソコン)に接続する方法;3、上位機インターフェースの紹介;4、サーボモード制御のデモンストレーション;5、MITフォースコントロールモードのデモンストレーション
Jul 03,2025
CubeMarsがビンガムトン大学火星探査ローバーチームのURC挑戦をサポート
CubeMarsがビンガムトン大学火星探査ローバーチームのURC挑戦をサポート
ビンガムトン大学火星探査ローバーチームが、University Rover Challenge(URC)に向けて開発した火星探査ローバー「Endurance」をご紹介します。CubeMarsの高性能ブラシレスモーターと一体型遊星減速ソリューションを採用し、6輪駆動システムによって45°の急斜面を制覇する優れたオフロード性能と高い応答性を実現しています。
Jul 07,2026
コメントする
ユーザー名
匿名
E-mail *
名字 *
電話
内容
検証コード
captcha
システムウィンドウ
システムウィンドウ
ログインしていません
ログイン
ユーザー登録
パスワード忘れ?
システムウィンドウ