7. 接口函数详细说明
7.1 执行器接口
| 类名 |
功能描述 |
主要方法 |
| AsioExecutor |
异步IO执行器,管理后台工作线程处理通信和回调 |
create(), get_io_context() |
| 字段 |
说明 |
| 函数名 |
create_asio_executor |
| 函数原型 |
create_asio_executor(worker_count) |
| 功能概述 |
创建异步IO执行器,管理后台工作线程处理通信和回调 |
| 参数 |
worker_count: 工作线程数量 |
| 返回值 |
AsioExecutor,异步IO执行器对象 |
| 备注 |
用于管理异步IO操作和后台任务 |
代码示例:
executor = ah.create_asio_executor(8)
| 字段 |
说明 |
| 函数名 |
get_io_context |
| 函数原型 |
get_io_context() |
| 功能概述 |
获取异步执行器管理的IO上下文对象 |
| 参数 |
无 |
| 返回值 |
IOContext,IO上下文对象 |
| 备注 |
用于传递给其他组件进行异步IO操作 |
代码示例:
io_context = executor.get_io_context()
7.2 机械臂控制接口
| 类名 |
功能描述 |
主要方法 |
| 单Play |
6轴机械臂控制类,集成电机控制功能 |
create(), init(), uninit(), ping(), enable(), disable(), set_zero(), reset_error(), csv(), pvt(), mit(), get_param(), set_param(), persist_param(), state(), params() |
| PlayWithEEF |
7轴机械臂控制类,集成电机和末端执行器控制 |
create(), init(), uninit(), ping(), enable(), disable(), set_zero(), reset_error(), csv(), pvt(), mit(), get_param(), set_param(), persist_param(), state(), params() |
代码示例:
arm = ah.Play.create(
ah.MotorType.OD, ah.MotorType.OD, ah.MotorType.OD,
ah.MotorType.DM, ah.MotorType.DM, ah.MotorType.DM,
ah.EEFType.NA, ah.MotorType.NA
)
| 字段 |
说明 |
| 函数名 |
create |
| 函数原型 |
@staticmethod PlayWithEEF.create(m1, m2, m3, m4, m5, m6, eef_type, eef_motor) |
| 功能概述 |
创建7轴机械臂控制实例,集成电机和末端执行器控制功能 |
| 参数 |
m1-m6: 6个关节的电机类型
eef_type: 末端执行器类型 (E2/G2)
eef_motor: 末端执行器电机类型 |
| 返回值 |
PlayWithEEF,7轴机械臂控制对象实例 |
| 备注 |
适用于带末端执行器的机械臂配置 |
代码示例:
arm = ah.PlayWithEEF.create(
ah.MotorType.EC, ah.MotorType.EC, ah.MotorType.EC,
ah.MotorType.EC, ah.MotorType.EC, ah.MotorType.EC,
ah.EEFType.E2, ah.MotorType.EC
)
| 字段 |
说明 |
| 函数名 |
init |
| 函数原型 |
init(io_context, interface, spin_freq) |
| 功能概述 |
初始化机械臂,建立与硬件的通信连接 |
| 参数 |
io_context: 异步IO上下文对象
interface: 通信接口名称 (如 "can0")
spin_freq: 控制频率 (Hz) |
| 返回值 |
bool,初始化成功返回 True,失败返回 False |
| 备注 |
必须在其他操作前调用,控制频率影响控制精度和响应速度 |
代码示例:
executor = ah.create_asio_executor(8)
io_context = executor.get_io_context()
success = arm.init(io_context, "can0", 250)
| 字段 |
说明 |
| 函数名 |
uninit |
| 函数原型 |
uninit() |
| 功能概述 |
反初始化机械臂,释放通信资源 |
| 参数 |
无 |
| 返回值 |
bool,反初始化成功返回 True,失败返回 False |
| 备注 |
程序结束前应调用此方法释放资源 |
代码示例:
arm.disable()
arm.uninit()
| 字段 |
说明 |
| 函数名 |
enable |
| 函数原型 |
enable() |
| 功能概述 |
使能机械臂,依次使能所有电机和末端执行器 |
| 参数 |
无 |
| 返回值 |
bool,所有组件使能成功返回 True,否则返回 False |
| 备注 |
使能后机械臂可以接收控制命令 |
代码示例:
if arm.enable():
print("Arm enabled successfully")
| 字段 |
说明 |
| 函数名 |
disable |
| 函数原型 |
disable() |
| 功能概述 |
失能机械臂,依次失能所有电机和末端执行器 |
| 参数 |
无 |
| 返回值 |
bool,所有组件失能成功返回 True,否则返回 False |
| 备注 |
失能后机械臂停止运动,进入安全状态 |
代码示例:
| 字段 |
说明 |
| 函数名 |
csv |
| 函数原型 |
csv(vel) |
| 功能概述 |
发送循环同步速度控制帧,控制各关节目标速度 |
| 参数 |
vel: 各关节目标速度列表 (rad/s) |
| 返回值 |
bool,控制命令发送成功返回 True,否则返回 False |
| 备注 |
需要持续调用以维持连续控制,适用于速度控制场景 |
代码示例:
velocities = [0.1, 0.0, 0.0, 0.0, 0.0, 0.0]
arm.csv(velocities)
| 字段 |
说明 |
| 函数名 |
pvt |
| 函数原型 |
pvt(pos, max_vel=None, max_eff=None) |
| 功能概述 |
发送位置-速度-时间控制帧,控制各关节目标位置,带速度和力矩限制 |
| 参数 |
pos: 各关节目标位置列表 (rad)
max_vel: 最大速度限制列表 (rad/s)
max_eff: 最大力矩限制列表 |
| 返回值 |
bool,控制命令发送成功返回 True,否则返回 False |
| 备注 |
适用于轨迹跟踪和路径规划,支持速度和力矩限制 |
代码示例:
positions = [0.5, 0.0, 0.0, 0.0, 0.0, 0.0]
arm.pvt(positions)
| 字段 |
说明 |
| 函数名 |
mit |
| 函数原型 |
mit(pos, vel, eff, mit_kp, mit_kd) |
| 功能概述 |
发送MIT控制帧,实现位置-速度-力矩复合控制,支持前馈力矩和PID参数调节 |
| 参数 |
pos: 目标位置列表 (rad)
vel: 目标速度列表 (rad/s)
eff: 前馈力矩列表
mit_kp: 比例增益列表
mit_kd: 微分增益列表 |
| 返回值 |
bool,控制命令发送成功返回 True,否则返回 False |
| 备注 |
适用于精确力控制和阻抗控制,支持PID参数调节 |
代码示例:
pos = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
vel = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
eff = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
kp = [100.0, 100.0, 100.0, 100.0, 100.0, 100.0]
kd = [10.0, 10.0, 10.0, 10.0, 10.0, 10.0]
arm.mit(pos, vel, eff, kp, kd)
| 字段 |
说明 |
| 函数名 |
set_param |
| 函数原型 |
set_param(name, value) |
| 功能概述 |
发送参数设置请求,设置机械臂参数值 |
| 参数 |
name: 参数名称字符串
value: 参数值 |
| 返回值 |
bool,请求发送成功返回 True,否则返回 False |
| 备注 |
设置后响应帧包含已设置的参数,无需再次调用 get_param |
代码示例:
arm.set_param("arm.control_mode", ah.MotorControlMode.MIT)
| 字段 |
说明 |
| 函数名 |
state |
| 函数原型 |
state() |
| 功能概述 |
获取机械臂当前状态,包括位置、速度、力矩等信息 |
| 参数 |
无 |
| 返回值 |
ArmState,包含 is_valid、pos、vel、eff 字段的状态对象 |
| 备注 |
线程安全,可多线程调用,返回状态快照 |
代码示例:
state = arm.state()
if state.is_valid:
print(f"Position: {state.pos[0]}")
| 字段 |
说明 |
| 函数名 |
ping |
| 函数原型 |
ping() |
| 功能概述 |
向机械臂发送ping请求,获取最新状态信息 |
| 参数 |
无 |
| 返回值 |
bool,ping成功返回 True,失败返回 False |
| 备注 |
用于主动查询机械臂当前状态,更新内部状态缓存 |
代码示例:
if arm.ping():
state = arm.state()
print("Ping successful, state updated")
| 字段 |
说明 |
| 函数名 |
set_zero |
| 函数原型 |
set_zero() |
| 功能概述 |
设置机械臂当前位置为零点位置 |
| 参数 |
无 |
| 返回值 |
bool,设置成功返回 True,失败返回 False |
| 备注 |
用于重新校准机械臂零点位置,影响后续位置控制 |
| 字段 |
说明 |
| 函数名 |
reset_error |
| 函数原型 |
reset_error() |
| 功能概述 |
重置机械臂错误状态,清除故障标志 |
| 参数 |
无 |
| 返回值 |
bool,错误重置成功返回 True,失败返回 False |
| 备注 |
在机械臂出现故障后调用,恢复正常工作状态 |
| 字段 |
说明 |
| 函数名 |
get_param |
| 函数原型 |
get_param(name) |
| 功能概述 |
获取机械臂参数值 |
| 参数 |
name: 参数名称字符串 |
| 返回值 |
bool,请求发送成功返回 True,否则返回 False |
| 备注 |
异步获取参数,实际值通过响应帧返回 |
| 字段 |
说明 |
| 函数名 |
persist_param |
| 函数原型 |
persist_param(name, value) |
| 功能概述 |
持久化保存参数到非易失存储器 |
| 参数 |
name: 参数名称字符串
value: 参数值 |
| 返回值 |
bool,持久化请求发送成功返回 True,否则返回 False |
| 备注 |
参数将保存在Flash中,断电不丢失 |
| 字段 |
说明 |
| 函数名 |
params |
| 函数原型 |
params() |
| 功能概述 |
获取机械臂所有参数信息 |
| 参数 |
无 |
| 返回值 |
dict,包含所有参数名称和值的字典 |
| 备注 |
返回当前已缓存的参数信息,可能不是最新值 |
- set_param (MotorControlMode重载) 接口
| 字段 |
说明 |
| 函数名 |
set_param |
| 函数原型 |
set_param(name, value) |
| 功能概述 |
设置电机控制模式参数的重载版本 |
| 参数 |
name: 参数名称字符串
value: MotorControlMode枚举值 |
| 返回值 |
bool,请求发送成功返回 True,否则返回 False |
| 备注 |
专用于设置电机控制模式,支持POSITION、VELOCITY、TORQUE等模式 |
- PlayWithEEF create 接口 (详细配置)
| 字段 |
说明 |
| 函数名 |
create |
| 函数原型 |
@staticmethod PlayWithEEF.create(m1, m2, m3, m4, m5, m6, eef_type, motor_type) |
| 功能概述 |
创建7轴机械臂控制实例,支持多种电机和末端执行器配置组合 |
| 参数 |
m1-m6: 6个关节的电机类型 (OD/DM/ODM/EC)
eef_type: 末端执行器类型 (G2/E2)
motor_type: 末端执行器电机类型 (DM/ODM/OD) |
| 返回值 |
PlayWithEEF,7轴机械臂控制对象实例 |
| 备注 |
支持多种已验证配置组合,如(OD,OD,OD,DM,DM,DM,G2,DM)等 |
7.3 末端执行器接口
| 类名 |
功能描述 |
主要方法 |
| EEF0 |
零自由度末端执行器控制类,支持空配置 |
create(), init(), uninit(), ping(), enable(), disable(), set_zero(), reset_error(), pvt(), mit(), get_param(), set_param(), persist_param(), state(), params() |
| EEF1 |
单自由度末端执行器控制类,支持G2夹爪 |
create(), init(), uninit(), ping(), enable(), disable(), set_zero(), reset_error(), pvt(), mit(), get_param(), set_param(), persist_param(), state(), params() |
| 字段 |
说明 |
| 函数名 |
create |
| 函数原型 |
@staticmethod EEF.create(eef_type, motor_type) |
| 功能概述 |
创建末端执行器控制实例,通过指定末端执行器类型和电机类型来创建控制对象 |
| 参数 |
eef_type: 末端执行器类型 (ah.EEFType.G2/E2/NA)
motor_type: 驱动电机类型 (ah.MotorType.DM/ODM/OD) |
| 返回值 |
EEF,末端执行器控制对象实例 |
| 备注 |
支持G2+DM、G2+ODM等组合 |
代码示例:
eef = ah.EEF.create(ah.EEFType.G2, ah.MotorType.DM)
| 字段 |
说明 |
| 函数名 |
init |
| 函数原型 |
init(io_context, interface, spin_freq) |
| 功能概述 |
初始化末端执行器,建立与硬件的通信连接 |
| 参数 |
io_context: 异步IO上下文对象
interface: 通信接口名称 (如 "can0")
spin_freq: 控制频率 (Hz) |
| 返回值 |
bool,初始化成功返回 True,失败返回 False |
| 备注 |
必须在其他操作前调用 |
代码示例:
success = eef.init(io_context, "can0", 250)
| 字段 |
说明 |
| 函数名 |
uninit |
| 函数原型 |
init(io_context, interface, spin_freq) |
| 功能概述 |
初始化末端执行器,建立与硬件的通信连接 |
| 参数 |
io_context: 异步IO上下文对象
interface: 通信接口名称 (如 "can0")
spin_freq: 控制频率 (Hz) |
| 返回值 |
bool,初始化成功返回 True,失败返回 False |
| 备注 |
必须在其他操作前调用 |
代码示例:
success = eef.init(io_context, "can0", 250)
| 字段 |
说明 |
| 函数名 |
ping |
| 函数原型 |
ping() |
| 功能概述 |
向末端执行器发送ping请求,获取最新状态信息 |
| 参数 |
无 |
| 返回值 |
bool,ping成功返回 True,失败返回 False |
| 备注 |
用于主动查询末端执行器当前状态,更新内部状态缓存 |
代码示例:
if eef.ping():
state = eef.state()
print("Ping successful, state updated")
| 字段 |
说明 |
| 函数名 |
enable |
| 函数原型 |
enable() |
| 功能概述 |
使能末端执行器 |
| 参数 |
无 |
| 返回值 |
bool,使能成功返回 True,否则返回 False |
| 备注 |
使能后末端执行器可以接收控制命令 |
代码示例:
if eef.enable():
print("EEF enabled successfully")
| 字段 |
说明 |
| 函数名 |
disable |
| 函数原型 |
disable() |
| 功能概述 |
失能末端执行器 |
| 参数 |
无 |
| 返回值 |
bool,失能成功返回 True,否则返回 False |
| 备注 |
失能后末端执行器停止运动,进入安全状态 |
代码示例:
- 末端执行器位置置零接口
| 字段 |
说明 |
| 函数名 |
set_zero |
| 函数原型 |
set_zero() |
| 功能概述 |
将末端执行器的位置参考点设置为零 |
| 参数 |
无 |
| 返回值 |
无 |
| 备注 |
调用后末端执行器当前位置将被视为位置参考零点,用于校准校准位置基准 |
代码示例:
eef.set_zero() # 将末端执行器当前位置设为零点
| 字段 |
说明 |
| 函数名 |
reset_error |
| 函数原型 |
reset_error() |
| 功能概述 |
重置末端执行器错误状态,清除故障标志 |
| 参数 |
无 |
| 返回值 |
bool,错误重置成功返回 True,失败返回 False |
| 备注 |
在末端执行器出现故障后调用,恢复正常工作状态 |
代码示例:
if eef.state().has_error:
eef.reset_error()
| 字段 |
说明 |
| 函数名 |
pvt |
| 函数原型 |
pvt(cmd) |
| 功能概述 |
发送PVT控制命令到末端执行器 |
| 参数 |
cmd: 末端执行器控制命令对象,包含位置、速度、力矩等信息 |
| 返回值 |
bool,控制命令发送成功返回 True,否则返回 False |
| 备注 |
适用于轨迹跟踪和路径规划 |
代码示例:
cmd = ah.EEFCommand()
cmd.pos[0] = 0.05
eef.pvt(cmd)
| 字段 |
说明 |
| 函数名 |
mit |
| 函数原型 |
mit(cmd) |
| 功能概述 |
发送MIT命令到末端执行器 |
| 参数 |
cmd: EEFState命令对象 |
| 返回值 |
bool,命令发送成功返回 True,否则返回 False |
| 备注 |
用于MIT控制模式,支持阻抗控制 |
代码示例:
cmd = ah.EEFState()
cmd.pos = [0.0]
cmd.vel = [0.0]
cmd.eff = [0.0]
cmd.kp = [0.0]
cmd.kd = [0.0]
eef.mit(cmd)
| 字段 |
说明 |
| 函数名 |
get_param |
| 函数原型 |
get_param(name) |
| 功能概述 |
获取末端执行器参数值 |
| 参数 |
name: 参数名称字符串 |
| 返回值 |
bool,请求发送成功返回 True,否则返回 False |
| 备注 |
异步获取参数,实际值通过响应帧返回 |
代码示例:
eef.get_param("eef.control_mode")
- 末端执行器set_param接口
| 字段 |
说明 |
| 函数名 |
set_param |
| 函数原型 |
set_param(name, value) |
| 功能概述 |
设置末端执行器参数值 |
| 参数 |
name: 参数名称字符串
value: 参数值 |
| 返回值 |
bool,请求发送成功返回 True,否则返回 False |
| 备注 |
设置后响应帧包含已设置的参数,无需再次调用 get_param |
代码示例:
eef.set_param("eef.control_mode", ah.MotorControlMode.POSITION)
- 末端执行器set_param(MotorControlMode)接口
| 字段 |
说明 |
| 函数名 |
set_param |
| 函数原型 |
set_param(name, value) |
| 功能概述 |
设置电机控制模式参数 |
| 参数 |
name: 参数名称字符串
value: MotorControlMode枚举值 |
| 返回值 |
bool,请求发送成功返回 True,否则返回 False |
| 备注 |
专用于设置电机控制模式,支持POSITION、VELOCITY、TORQUE等模式 |
代码示例:
eef.set_param("motor.control_mode", ah.MotorControlMode.POSITION)
| 字段 |
说明 |
| 函数名 |
state |
| 函数原型 |
state() |
| 功能概述 |
获取末端执行器当前状态,包括位置、速度、力矩等信息 |
| 参数 |
无 |
| 返回值 |
EEFState,包含 is_valid、pos、vel、eff 字段的状态对象 |
| 备注 |
线程安全,可多线程调用,返回状态快照 |
代码示例:
state = eef.state()
if state.is_valid:
print(f"Position: {state.pos[0]}")
| 字段 |
说明 |
| 函数名 |
params |
| 函数原型 |
params() |
| 功能概述 |
获取末端执行器所有参数信息 |
| 参数 |
无 |
| 返回值 |
MotorParams,包含所有参数名称和值的MotorParams对象 |
| 备注 |
返回当前已缓存的参数信息,可能不是最新值 |
代码示例:
parameters = eef.params()
print(f"Control mode: {parameters.control_mode}")
7.4 灵巧手
7.4.1 灵巧手接口
| 字段 |
说明 |
| 函数名 |
create_dexterous_hand |
| 函数原型 |
def create_dexterous_hand(id: typing.SupportsInt, type: DexterousHandTypes) -> DexterousHand: |
| 功能概述 |
工厂方法创建灵巧手实例,通过指定设备ID和设备类型来创建控制对象 |
| 参数 |
id: 设备ID
type: 类型 |
| 返回值 |
DexterousHand,灵巧手实例 |
| 备注 |
创建失败时返回nullptr |
代码示例:
hand : DexterousHand = ah.create_dexterous_hand(hand_id, hand_type)
| 字段 |
说明 |
| 函数名 |
init |
| 函数原型 |
def init(self, io_context: Stub, interface: str, spin_freq: typing.SupportsInt) -> bool: |
| 功能概述 |
初始化灵巧手,建立与硬件的通信连接 |
| 参数 |
io_context: 异步IO执行器指针
interface: 通信接口名称 (如 "can0")
spin_freq: 控制循环频率 |
| 返回值 |
bool,初始化成功返回 true,失败返回 false |
| 备注 |
必须在其他操作前调用 |
代码示例:
success : bool = hand.init(io_context, can_interface, 250)
| 字段 |
说明 |
| 函数名 |
update_state |
| 函数原型 |
def update_state(self) -> bool: |
| 功能概述 |
更新灵巧手当前状态,包括位置、速度、力矩等信息。状态的更新可能会有延迟。 |
| 参数 |
无 |
| 返回值 |
bool,初始化成功返回 true,失败返回 false |
| 备注 |
需要在获取状态前调用 |
代码示例:
| 字段 |
说明 |
| 函数名 |
state |
| 函数原型 |
def state(self) -> HandState: |
| 功能概述 |
获取灵巧手当前状态,包括位置、速度、力矩等信息 |
| 参数 |
无 |
| 返回值 |
HandState,包含灵巧手状态信息的结构体 |
| 备注 |
线程不安全,避免多线程调用,返回状态快照 |
代码示例:
state : HandState= hand.state()
print(list(state.forces))
print(list(state.positions))
print(list(state.velocities))
| 字段 |
说明 |
| 函数名 |
set_pos |
| 函数原型 |
def set_pos(self, cmd: HandState) -> bool: |
| 功能概述 |
控制灵巧手以cmd中的参数状况移动到指定位置 |
| 参数 |
cmd: HandState参数结构体 |
| 返回值 |
bool,初始化成功返回 true,失败返回 false |
| 备注 |
线程不安全,避免多线程调用,返回状态快照 |
代码示例:
hand_cmd = ah.HandState()
hand_cmd.positions = [1000] * 6
hand_cmd.velocities = [1000] * 6
hand.set_pos(hand_cmd)
| 字段 |
说明 |
| 函数名 |
set_param |
| 函数原型 |
def set_param(self, name: str, value: ParamValue) -> bool: |
| 功能概述 |
设置灵巧手参数 |
| 参数 |
name: 参数名称
value: 参数值 |
| 返回值 |
bool,初始化成功返回 true,失败返回 false |
| 备注 |
线程不安全,避免多线程调用,返回状态快照 |
7.4.2 各型号灵巧手默认出厂id(仅供参考)
** Hand Type |
Enum Value (Hex) |
Default Device ID (Hex) |
| INS_RH56DFX |
0x00 |
0x01 |
| INS_RH56BFX |
0x01 |
0x01 |
| INS_RH56E2 |
0x02 |
0x01 |
| INS_RH56F1 |
0x03 |
0x01 |
| BRAINCO_REVO2 |
0x21 |
0x7E (Left) / 0x7F (Right) |
| ROH_LITES001 |
0x40 |
0x02 |
| ROH_A002 |
0x41 |
0x02 |
7.4.3 参数映射表
不同型号的机械手支持的配置参数各不相同。
下表总结了当前支持的参数及其访问方式:
| 手型 |
参数名 |
访问方式 |
类型 |
描述 |
| BrainCo Revo2 |
hand_side |
R |
uint16 |
手的方向(0=左手,1=右手) |
|
unit_mode |
R/W |
0 / 1 |
工作模式 |
|
id_485 |
R/W |
uint16 |
RS-485 节点 ID |
|
baudrate |
R/W |
uint8 |
通信波特率(115200 / 57600 / 19200 / 460800 / 1M / 2M / 5M) |
| INS RH56BFX |
hand_id |
R |
uint8 |
设备 ID |
|
baudrate |
R/W |
uint8 |
CAN 波特率 |
|
current |
R |
uint16[6] |
各通道电流 |
|
pos_act |
R |
uint16[6] |
实际关节位置反馈 |
|
clear_error |
W |
0 / 1 |
清除错误标志 |
|
force_calibration |
W |
0 / 1 |
触发力校准过程 |
| INS RH56DFX |
hand_id |
R |
uint16 |
设备 ID |
|
baudrate |
R/W |
uint8 |
CAN 波特率 |
|
current |
R |
uint16[6] |
各通道电流 |
|
pos_act |
R |
uint16[6] |
实际关节位置反馈 |
|
clear_error |
W |
0 / 1 |
清除错误标志 |
|
force_calibration |
W |
0 / 1 |
触发力校准过程 |
| INS RH56F1 |
hand_id |
R |
uint16 |
设备 ID |
|
baudrate |
R/W |
uint32 |
CAN 波特率 |
|
current |
R |
uint16[6] |
各通道电流 |
|
pos_act |
R |
uint16[6] |
实际关节位置反馈 |
|
clear_error |
W |
0 / 1 |
清除错误标志 |
|
force_calibration |
W |
0 / 1 |
触发力校准过程 |
| INS RH56E2 |
hand_id |
R |
uint16 |
设备 ID |
|
baudrate |
R/W |
uint8 |
CAN 波特率 |
|
current |
R |
uint16[6] |
各通道电流 |
|
pos_act |
R |
uint16[6] |
实际关节位置反馈 |
|
clear_error |
W |
0 / 1 |
清除错误标志 |
|
force_calibration |
W |
0 / 1 |
触发力校准过程 |
| ROH A002 |
hand_id |
R/W |
uint8 |
CAN 节点 ID |
⚠ 对于不支持的参数,接口会忽略请求或返回 false。