导入
类概述
构造函数
Controller(channel="can0")
使用标准 SocketCAN 传输创建控制器。
参数:
返回:
Controller 实例
抛出: CallError 如果接口无法打开
示例:
Controller.from_socketcanfd(channel="can0")(类方法)
使用 CAN-FD 传输创建控制器。Hexfellow 电机需要。
参数:
返回:
Controller 实例
抛出: CallError 如果接口无法打开
示例:
Controller.from_dm_serial(serial_port="/dev/ttyACM0", baud=921600)(类方法)
使用达妙串口桥传输创建控制器。
参数:
返回:
Controller 实例
抛出: CallError 如果串口无法打开
示例:
Controller.from_dm_device(dm_device_type="usb2canfd-dual", dm_channel="0")(类方法)
使用达妙 DM_Device SDK 传输(USB2CANFD、USB2CANFD_DUAL、LINKX4C)创建控制器。
适配器须为 USB 模式;该传输目前仅用于达妙电机。
参数:
返回:
Controller 实例
抛出: CallError,当 DM_Device 运行时缺失或适配器无法打开时。运行时缺失时,MotorBridge 会打印所需运行时文件、其 GitHub 下载 URL 与平台 ABI 要求。
示例:
Python wheel 不内嵌厂商运行时。请用
motorbridge-install-dm-device 按需安装。Windows 运行时仅限 x86_64;长时间运行的进程会复用已打开的适配器。ABI 元数据 helper
模块级 helper 用于发现当前加载的 ABI 版本与能力:motor_abi_version() / motor_abi_capabilities_json() 以及 C++ 的
motorbridge::abi_version() / motorbridge::abi_capabilities_json() 镜像对应。
生命周期方法
close()
释放控制器资源。上下文管理器自动调用。
参数: 无
返回: None
shutdown()
优雅关闭控制器和所有关联的电机。
参数: 无
返回: None
抛出: CallError 失败时
close_bus()
关闭 CAN 总线连接,同时保持控制器实例存活。
参数: 无
返回: None
抛出: CallError 失败时
全局电机操作
enable_all()
同时使能所有已注册的电机。
参数: 无
返回: None
抛出: CallError 失败时
示例:
disable_all()
同时禁用所有已注册的电机。
参数: 无
返回: None
抛出: CallError 失败时
poll_feedback_once()
手动轮询所有电机的反馈帧。它仍适合确定性单次读取、扫描,以及控制循环中刷新达妙反馈。
参数: 无
返回: None
抛出: CallError 失败时
电机注册方法
add_damiao_motor(motor_id, feedback_id, model)
注册达妙电机并返回其句柄。
参数:
达妙也接受
4340_v20 别名(显示为 4340X),用于 v2.0 硬件版本。Motor 实例
抛出: CallError 如果注册失败
add_robstride_motor(motor_id, feedback_id, model)
注册 RobStride 电机并返回其句柄。
参数:
RobStride 的
feedback_id 是控制器使用的 host_id,不是电机 device_id。Motor 实例
add_myactuator_motor(motor_id, feedback_id, model)
注册 MyActuator 电机并返回其句柄。
参数:
返回:
Motor 实例
add_hightorque_motor(motor_id, feedback_id, model)
注册 HighTorque 电机并返回其句柄。
参数:
返回:
Motor 实例
add_hexfellow_motor(motor_id, feedback_id, model)
注册 Hexfellow 电机并返回其句柄。需要 CAN-FD 传输。
参数:
返回:
Motor 实例
抛出: CallError 如果不使用 CAN-FD 传输
上下文管理器支持
Controller 类支持 Python 的上下文管理器协议,用于自动资源清理:
错误处理
所有方法可能抛出motorbridge.errors 中的异常:
另见
- Motor API - 电机句柄方法
- Mode and State - 枚举和数据类
- 传输方式 - 传输配置指南