7000端口使用方式

1 open_servoJ - 打开关节跟踪模式

方法: open_servoJ(socketFd:int,vmax:VectorDouble,amax:VectorDouble,jmax:VectorDouble)->int

参数:

  • socketFd:连接句柄
  • vmax:关节最大速度约束(°/s)
  • amax:关节最大加速度约束(°/s²)
  • jmax:关节最大加加速度约束(°/s³)

返回值:

  • int:执行结果
    • 0:成功
    • 非0:失败,错误码见错误码详情

说明:

启动关节位置实时跟踪模式,必须先调用该接口,才能使用set_servoJ_pos发送实时关节位置。

2 close_servoJ - 关闭关节跟踪模式

方法: close_servoJ(socketFd:int)->int

参数:

  • socketFd:连接句柄

返回值:

  • int:执行结果
    • 0:成功
    • 非0:失败,错误码见错误码详情

说明:

关闭关节实时跟踪模式,退出实时控制状态。

3 set_servoJ_pos - 设置实时跟踪关节位置

方法: set_servoJ_pos(socketFd:int,q:VectorDouble)->int

参数:

  • socketFd:连接句柄
  • q:目标关节角度(单位:°),长度与机器人轴数一致(6轴第七轴填0)

返回值:

  • int:执行结果
    • 0:成功
    • 非0:失败,错误码见错误码详情

说明:

在已打开跟踪模式下,实时发送关节角度,机械臂会立即跟踪到目标位置。

使用示例(Python)

Python
import nrc_interface as nrc
import time
#建立连接
socket_fd=nrc.connect_robot("192.168.1.13","6001")
socket_fd_7000=nrc.connect_robot("192.168.1.13","7000")
#设置运行模式速度
nrc.set_speed(socket_fd,10)
#======================打开关节跟踪模式======================
vmax=[300,300,.300,300,300,300,300]
amax=[3000,3000,3000,3000,3000,3000,3000]
jmax=[50000,50000,50000,50000,50000,50000,50000]
ret=nrc.open_servoJ(socket_fd_7000,vmax,amax,jmax)
print(f"打开关节跟踪模式返回值={ret}")
time.sleep(0.2)
#======================实时发送关节位置======================
q=[0,0,0,0,0,0,0]
#第6轴从0旋转到100度发送频率10ms
while q[0]<60:
    q[0]+=1
    nrc.set_servoJ_pos(socket_fd_7000,q)
    time.sleep(0.01)
time.sleep(5)
#======================关闭关节跟踪模式======================
ret=nrc.close_servoJ(socket_fd)
print(f"关闭关节跟踪模式返回值={ret}")
print("===跟踪结束===")