MotorBridge Python SDK
v0.1.7
Python 3.10+
统一的 Python 电机控制库,用一套 API 控制多个品牌的无刷电机。
为什么选择 MotorBridge?
最小示例
from motorbridge import Controller, Mode
# 打开 CAN 接口
with Controller("can0") as ctrl:
# 添加达妙电机
motor = ctrl.add_damiao_motor(0x01, 0x11, "4340P")
# 使能并配置
ctrl.enable_all()
motor.ensure_mode(Mode.MIT, 1000)
# 发送控制命令
motor.send_mit(pos=0.5, vel=0.0, kp=30.0, kd=1.0, tau=0.0)
# 读取状态
state = motor.get_state()
if state:
print(f"位置: {state.pos:.3f} rad")
支持的厂商
| 厂商 | 型号 | MIT | POS_VEL | VEL | FORCE_POS |
|---|
| 达妙 (Damiao) | 4310, 4340P, 6001 | ✅ | ✅ | ✅ | ✅ |
| RobStride | rs-00 | ✅ | ❌ | ✅ | ❌ |
| MyActuator | X8 | ❌ | ✅ | ✅ | ❌ |
| HighTorque | HT | ✅ | ✅ | ✅ | ✅ |
| Hexfellow | * | ✅ | ✅ | ❌ | ✅ |
Hexfellow 电机需要 CAN-FD 传输。使用 Controller.from_socketcanfd("can0")。
系统架构
┌─────────────────────────────────────────────────────────┐
│ Controller │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Motor 1 │ │ Motor 2 │ │ Motor N │ │
│ │ (达妙) │ │ (RobStride) │ │(MyActuator) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │ │
│ ┌─────────┴─────────┐ │
│ │ Transport │ │
│ │ (CAN/Serial/FD) │ │
│ └───────────────────┘ │
└─────────────────────────────────────────────────────────┘
核心概念
| 组件 | 说明 |
|---|
| Controller | 管理传输层和多个电机句柄 |
| Motor | 单个电机的控制句柄 |
| Mode | 控制模式枚举 (MIT, POS_VEL, VEL, FORCE_POS) |
| MotorState | 电机状态数据(位置、速度、力矩等) |
文档导航
三步安装
配置 CAN 接口
sudo ip link set can0 type can bitrate 1000000
sudo ip link set can0 up
运行第一个程序
from motorbridge import Controller
with Controller("can0") as ctrl:
motor = ctrl.add_damiao_motor(0x01, 0x11, "4340P")
ctrl.enable_all()
print("电机就绪!")
获取帮助
- 📖 阅读 教程 获取分步指南
- 🔍 查看 故障排除 解决常见问题
- 💻 使用
motorbridge-cli --help 查看 CLI 参考
许可证
MIT License - 详见项目仓库。