Skip to main content

传输方式

概述

SDK 提供四种传输构造函数:

SocketCAN(标准 CAN)

大多数电机厂商的默认传输方式。Linux 直接使用 SocketCAN;Windows/macOS 使用 PCAN 后端并通过 canX 通道别名访问。

使用方法

支持的厂商

  • 达妙(所有型号)
  • RobStride
  • MyActuator
  • HighTorque

系统配置(三平台)

Linux(SocketCAN):
macOS(PCAN + PCBUSB):
Windows(PCAN):

多个 CAN 接口

CAN-FD(SocketCAN-FD)

扩展 CAN,具有更大的有效载荷和更高的带宽。某些厂商需要。

使用方法

支持的厂商

  • Hexfellow(必需)
  • 达妙(可选,用于更高带宽)

系统配置

上面的 CAN-FD 配置以 Linux 为主。Windows/macOS 若未明确支持 FD,请优先使用标准 CAN(Controller(channel))。

DM 串口桥

用于达妙电机的串口转 CAN 桥,使用官方达妙串口适配器。

使用方法

参数

支持的厂商

  • 仅达妙

串口配置(三平台)

Linux:
macOS:
Windows(PowerShell):

常见串口设备

DM-Device(DM_Device SDK)

基于达妙 DM_Device SDK 的原生传输,用于 USB2CANFDUSB2CANFD_DUALLINKX4C 适配器。适配器须为 USB 模式;该传输仅用于达妙电机。

使用方法

参数

支持的厂商

  • 仅达妙

运行时要求

Python wheel 不内嵌厂商运行时。若 DM_Device 运行时缺失,MotorBridge 会打印所需运行时文件、其 GitHub 下载 URL、放置位置,以及平台 ABI 要求。
  • Linux x86_64:libusb-1.0.so.0GLIBC_2.14+libstdc++.so.6GLIBCXX_3.4.32
  • Linux aarch64:GLIBC_2.17+libstdc++.so.6GLIBCXX_3.4.22+
使用内置 helper 按需安装运行时:
Windows DM_Device 运行时仅限 x86_64。长时间运行的进程会复用已打开的适配器,避免重复打开。

传输选择指南

决策树

混合厂商配置

在同一 CAN 总线上使用多个厂商时,创建单独的 Controller 实例:
不要将不同厂商的电机添加到同一个 Controller 实例中。每个控制器针对特定厂商协议进行优化。

传输性能

延迟比较

建议

  • 实时控制:使用 SocketCAN 或 CAN-FD
  • 开发/调试:DM 串口便于快速测试
  • 高速循环:使用 CAN-FD,dt_ms >= 10

故障排除

SocketCAN: “无缓冲空间”(错误 105)

串口:权限被拒绝

CAN-FD: “无效参数”

下一步