Skip to main content

导入

类概述

构造函数

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 传输(USB2CANFDUSB2CANFD_DUALLINKX4C)创建控制器。 适配器须为 USB 模式;该传输目前仅用于达妙电机。 参数: 返回: Controller 实例 抛出: CallError,当 DM_Device 运行时缺失或适配器无法打开时。运行时缺失时,MotorBridge 会打印所需运行时文件、其 GitHub 下载 URL 与平台 ABI 要求。 示例:
Python wheel 不内嵌厂商运行时。请用 motorbridge-install-dm-device 按需安装。Windows 运行时仅限 x86_64;长时间运行的进程会复用已打开的适配器。

ABI 元数据 helper

模块级 helper 用于发现当前加载的 ABI 版本与能力:
它们与 C 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 中的异常:

另见