通信プロトコル

Alius ロボット関節モジュールは、CAN / CAN-FD バスを介してコントローラーと通信します。本ドキュメントでは、通信プロトコルのデータフレーム形式、コマンドセット、状態フィードバックメカニズムを詳細に説明し、開発者が関節モジュールとの確実な通信を実現できるよう支援します。

プロトコル概要

関節モジュールは、CAN バスに基づくカスタム・アプリケーション層プロトコルを使用します。プロトコル設計は以下の原則に従います:

  • 簡潔で効率的:コマンドフレームとデータフレーム形式はコンパクトで、バス負荷を最小化します。
  • 柔軟な拡張性:標準 CAN 2.0A と CAN-FD フレーム形式の両方をサポートし、帯域幅要件に基づいて選択可能です。
  • 信頼性の高い伝送:重要なコマンドと状態データにはいずれも CRC 検証が含まれ、データ伝送の完全性を確保します。

各関節モジュールはバス上で一意のノード ID(1–127)を持ちます。コントローラーはノード ID によって異なるモジュールを区別します。ノード ID はソフトウェアで構成可能で、モジュールの不揮発性メモリーに保存されます。

CAN 識別子割り当て

CAN 識別子(CAN ID)は 11 ビット標準フレーム形式を使用し、以下のように構成されます:

Bits [10:7]  – 機能コード(Function Code)
Bits [6:0]   – ノード ID(Node ID)

機能コード定義:

機能コード名称方向説明
0x0ハートビートフレームモジュール → コントローラーモジュールが周期的に送信する状態ハートビート
0x1制御コマンドコントローラー → モジュール位置/速度/トルク制御コマンド
0x2状態フィードバックモジュール → コントローラーリアルタイム位置、速度、トルク・フィードバック
0x3パラメーター読み書き双方向モジュールパラメーターの読み取り/書き込み
0x4故障報告モジュール → コントローラー故障コードおよび詳細情報
0x5ファームウェア更新双方向ファームウェア更新データストリーム

制御コマンドフレーム

位置制御モード

データフレーム形式(8 バイト):

バイトフィールド説明
0コマンドタイプ0x01 = 位置制御
1–3目標位置32 ビット符号付き整数、単位:エンコーダーカウント
4–5目標速度16 ビット符号付き整数、単位:0.1 °/s
6–7制御パラメーター上位 8 ビット:加速度プロファイル;下位 8 ビット:予約

速度制御モード

データフレーム形式(8 バイト):

バイトフィールド説明
0コマンドタイプ0x02 = 速度制御
1–2目標速度16 ビット符号付き整数、単位:0.1 °/s
3–4加速度16 ビット符号なし整数、単位:°/s²
5–7予約

トルク制御モード

データフレーム形式(8 バイト):

バイトフィールド説明
0コマンドタイプ0x03 = トルク制御
1–2目標トルク16 ビット符号付き整数、単位:0.1 N·m
3–7予約

状態フィードバックフレーム

モジュールは構成可能な周期(デフォルト 10 ms)で状態フィードバックフレームを送信します。フレーム形式(8 バイト):

バイトフィールド説明
0状態フラグBit 0: イネーブル状態;Bit 1: 故障フラグ;Bit 2: 定位フラグ
1–3現在位置32 ビット符号付き整数、単位:エンコーダーカウント
4–5現在速度16 ビット符号付き整数、単位:0.1 °/s
6–7現在トルク16 ビット符号付き整数、単位:0.1 N·m

パラメーター読み書き

パラメーター読み取り

要求フレーム形式:

バイトフィールド説明
0操作コード0x01 = 読み取り
1–2パラメーター ID16 ビット符号なし整数
3–7予約

応答フレーム形式:

バイトフィールド説明
0操作コード0x81 = 読み取り応答
1–2パラメーター ID要求フレームと一致
3–6パラメーター値32 ビット・データ、形式はパラメータータイプにより異なります
7ステータスコード0x00 = 成功;0 以外 = エラーコード

一般的なパラメーター ID

パラメーター ID名称読み/書き説明
0x0001ノード IDR/Wモジュール CAN ノード ID
0x0002通信ボーレートR/W0 = 1Mbps;1 = 2Mbps;2 = 5Mbps(CAN-FD)
0x0003制御モードR/W0 = 位置;1 = 速度;2 = トルク
0x0004零点オフセットR/Wエンコーダー零点オフセット
0x0005温度制限R/W過熱保護閾値、単位:°C
0x0006電流制限R/Wピーク電流制限、単位:0.1 A

エラー処理

故障が検出されると、モジュールは直ちに故障報告フレームを送信し、保護状態(トルク出力停止)に入ります。

故障コード定義:

コード名称説明復帰方法
0x01過電流故障相電流が安全閾値を超過電源再投入して再起動
0x02過熱故障モジュール内部温度が保護閾値を超過温度低下後に自動復帰
0x03エンコーダー故障エンコーダー信号異常またはタイムアウト接続を確認し、電源再投入して再起動
0x04通信タイムアウト500 ms 連続して制御コマンドを受信できない通信復帰後に自動クリア
0x05低電圧故障供給電圧が 22 VDC を下回る電圧復帰後に自動クリア
0x06過電圧故障供給電圧が 52 VDC を上回る電圧復帰後に自動クリア

CAN-FD 拡張

CAN-FD 通信を使用する場合、データフレーム長を 64 バイトに拡張でき、より高帯域幅の状態フィードバックとファームウェア更新データ伝送をサポートします。CAN-FD フレーム形式は標準 CAN フレーム形式と互換性があり、コントローラーはフレームタイプを自動的に識別できます。

複数関節協調制御シナリオでは、より低い通信遅延と高いデータ・スループットを得るために、CAN-FD 通信の使用を優先することを推奨します。