1. get_current_position - 获取当前位姿
方法: get_current_position(socket_fd, coord=0)
参数:
socket_fd:连接句柄
coord:坐标系类型(0=关节坐标,1=直角坐标)
返回值:
使用示例:
Python
# 关节坐标
joint = nrc.get_current_position(fd, coord=0)
print(f"关节角度: {joint}") # [a1, a2, a3, a4, a5, a6, a7]
# 直角坐标
cart = nrc.get_current_position(fd, coord=1)
print(f"直角坐标: {cart}") # [x, y, z, rx, ry, rz, 0]
2. get_joint_position - 获取指定关节直角坐标信息
方法: get_joint_position(socket_fd, axis_num)
参数:
socket_fd:连接句柄
axis_num:关节轴号
返回值:
使用示例:
Python
joint = nrc.get_joint_position(fd, axis_num=7)
print(f"关节角度: {joint}")
3. get_robot_running_state - 获取作业运行状态
方法: get_robot_running_state(socket_fd)
参数:
返回值:
使用示例:
Python
state = nrc.get_robot_running_state(fd)
print(f"运行状态码: {state}")
4. get_robot_dh_param - 获取DH参数(需结构体)
方法: get_robot_dh_param(socket_fd, dh_param)
参数:
socket_fd:连接句柄
dh_param:DH参数结构体(CRobotDHParam)
返回值:
使用示例:
Python
import nrc_interface as nrc
# 连接机器人(6001端口)
fd = nrc.connect_robot("192.168.1.13", "6001")
if fd < 0:
print("连接失败")
exit(1)
# 创建DH参数结构体
dh = nrc.CRobotDHParam()
# 调用函数,传入结构体的引用
ret = nrc.get_robot_dh_param(fd, dh)
if ret == nrc.SUCCESS:
print("DH参数获取成功")
print(f"L1 = {dh.L1}")
print(f"L2 = {dh.L2}")
# ... 打印其他字段
else:
print(f"获取失败,错误码: {ret}")
nrc.disconnect_robot(fd)
5. get_robot_joint_param - 获取关节参数
方法: get_robot_joint_param(socket_fd, joint_id, joint_param)
参数:
socket_fd:连接句柄
joint_id:关节轴号
joint_param:关节参数结构体(CRobotJointParam)
返回值:
使用示例:
Python
import nrc_interface as nrc
fd = nrc.connect_robot("192.168.1.13", "6001")
if fd < 0:
print("连接失败")
exit(1)
# 获取第1轴(J1)的关节参数
joint_param = nrc.CRobotJointParam()
ret = nrc.get_robot_joint_param(fd, 1, joint_param)
if ret == nrc.SUCCESS:
print("关节参数获取成功:")
print(f"减速比: {joint_param.reducRatio:.1f}")
print(f"编码器分辨率: {joint_param.encoderResolution}")
print(f"正限位: {joint_param.posSWLimit:.2f}°")
print(f"负限位: {joint_param.negSWLimit:.2f}°")
print(f"额定转速: {joint_param.ratedRotSpeed:.2f}°/s")
print(f"最大转速: {joint_param.maxRotSpeed:.2f}°/s")
else:
print(f"获取关节参数失败,错误码:{ret}")
nrc.disconnect_robot(fd)