- 选型指南
- 概述
- 入门指南
- 机械臂参数
- 示教器使用
-
二次开发
-
API(C++)
- 快速开始
- 接口说明
- 7000端口接口说明
- 使用示例
- 返回值说明
-
API(Python)
- 快速开始
- 接口说明
- 7000端口接口说明
- 使用示例
- 返回值说明
- ROS2开发
-
API(C++)
- 相关下载
7000端口使用方法
1. open_servoJ - 打开关节跟踪模式
方法: open_servoJ(socket_fd: int, vmax_vec: VectorDouble, amax_vec: VectorDouble, jmax_vec: VectorDouble)
功能描述: 通知机器人控制器切换插补引擎为高频流式跟踪模式(ServoJ 模式)。在此模式打开后,控制器会挂起常规的轨迹规划器,并向 socket_fd 通道解锁高速底层透传接口。外部上位机可以通过固定周期(如 4ms - 20ms)持续下发点位数据,实现外部算法对机械臂进行微秒级的动态轨迹修正。
参数:
socket_fd:已连接的机械臂常规指令通道句柄,整型格式(int)。vmax_vec(底层输入参数):C++ 双精度浮点向量容器 nrc.VectorDouble,内部顺序存储了 1~6 轴每个关节允许的最大运行速度约束(°/s)。amax_vec(底层输入参数):C++ 双精度浮点向量容器 nrc.VectorDouble,内部顺序存储了 1~6 轴每个关节允许的最大运行加速度约束(°/s²)。jmax_vec(底层输入参数):C++ 双精度浮点向量容器 nrc.VectorDouble,内部顺序存储了 1~6 轴每个关节允许的最大加加速度(Jerk,冲击力)约束(°/s³)。
返回值:
int:执行结果0:激活成功。代表控制器成功进入高速流式透传就绪态。非 0 整型值:激活失败。代表系统当前有未清除的报警,或者当前运行模式不允许进入高频控制。-2 / -1:断连异常或未捕获的运行时异常。
使用示例:
2. close_servoJ - 关闭关节跟踪模式
方法: close_servoJ(socket_fd: int)
功能描述: 通知机器人控制器注销当前的高频流式跟踪模式(ServoJ 模式)。执行该接口后,控制器会安全关闭专属于 7000 端口底层的高速透传数据监听回路,重新激活内部的全局轨迹规划器和常规状态机。
参数:
socket_fd:已连接的机械臂高速实时跟踪控制通道(通常固定为 7000 端口)句柄,整型格式(int)。
返回值:
int:状态码0:注销成功。代表控制器已安全退出高速流式透传模式,重返待机状态。非 0 整型值:注销失败。代表当前控制器核心忙,或者状态机发生不可逆的底层死锁错误。-2 / -1:通道断连异常或未捕获的运行时异常。
使用示例:
3. set_servoJ_pos - 设置实时跟踪关节位置
方法: set_servoJ_pos(socket_fd: int, q_vec: VectorDouble)
功能描述: 在通过 open_servo_joint 激活了伺服跟踪机制后,该接口作为高频动态点位的实时发射通道。上位机通常在独立的定时器线程中,以固定的硬件时间周期(如 4ms / 8ms / 12ms)不间断地向 7000 端口疯狂推送当前的增量位置。控制器接收到点位后,不会进行路径减速平滑,而是以极高地动态响应率直接驱动物理马达追赶该目标位置。
参数:
socket_fd:已连接的机械臂高速实时跟踪控制通道(通常固定为 7000 端口)句柄,整型格式(int)。q_vec(底层输入参数):专门用于承载多轴目标角度的双精度浮点向量容器(对应 nrc.VectorDouble())。依据控制器运动学引擎设计规范,其内存长度必须满足 7 维要求。对于 6 自由度机器人,第 7 位(q_vec[6])必须通过 push_back(0.0) 显式填充占位符,否则底层 C++ 数组指针在解算雅可比矩阵时会因寻址越界引发内存崩溃。
返回值:
int:状态码0:数据成功发送至控制器缓冲区并被插补器接管。非 0 整型值:发送失败。代表当前点位突变过大(超出了安全速度红线限制)、点位超出了物理软限位、或者系统未处于 ServoJ 开启状态。-2 / -1:特定通道网络断开或运行时异常。
使用示例:
