错误处理与零位标定接口

头文件: cpp/interface/nrc_interface.h

1. clear_error - 清除系统错误

方法: int clear_error(SOCKETFD socket_fd);

功能描述: 复位控制器的当前报警状态(清除红色错误)。在机械臂发生碰撞、超限位等错误后,排除物理故障后调用此接口清除报警。

参数:

  • socket_fd:已连接的句柄

返回值:

  • int
    • 0:成功
    • 负值:失败(如错误仍未清除需手动排除故障)

使用示例:

C++
bool test_clear_error() {
    if (socket_fd_6001_ <= 0) return false;
    // 调用底层接口,向控制器发送清除错误警报指令
    int ret = clear_error(socket_fd_6001_);
    CHECK_RET(ret, "清除错误");
    return ret == SUCCESS;
}

2. set_axis_zero_position - 指定关节当前位置为零位/标定当前状态下的零位

方法: int set_axis_zero_position(SOCKETFD socket_fd, int axis);

功能描述: 将当前关节位置记录为零位。axis=0表示所有轴,axis=1~6表示单轴。

警告: 仅在机械臂物理对齐零刻度线后调用,否则将导致坐标系错乱,引发撞机风险!

参数:

  • socket_fd:已连接的句柄
  • axis:轴号(0=全轴,1~6=单轴)

返回值:

  • int
    • 0:成功
    • 负值:失败

使用示例:

C++
bool test_set_axis_zero_position(int axis) {
    if (socket_fd_6001_ <= 0) return false;
    // 调用底层接口,将指定轴号的当前位置设置为零点
    int ret = set_axis_zero_position(socket_fd_6001_, axis);
    CHECK_RET(ret, "设置单轴 [轴号: " + std::to_string(axis) + "] 为零点位置");
    return ret == SUCCESS;
}