全局路点管理接口

头文件:include/tl_interface.h

1. set_global_position - 新增全局路点/设置全局路点

方法:set_global_position(SOCKETFD socketFd, std::string posName, std::vector<double> posInfo);

功能描述:设置全局GP点位。

参数:

  • socketNd:已连接的句柄。
  • posName:全局路点名称(如 "GP0001")。
  • posInfo:位置坐标数据列表,Python列表格式(list)。根据底层运动规划,要求传入 7 维双精度浮点数:
    • 直角坐标系模式:承载X,Y,Z,RX,RY,RZX,Y,Z,RX,RY,RZ,分别对应空间三维毫米位姿、欧拉角弧度。
    • 关节坐标系模式:承载 1 ~ 7 轴的各关节目标运行度数。对于标准 6 轴机械臂,第 7 位请传入 0.0 作为物理占位符。

返回值:

  • 0:成功
  • 非 0:失败

使用示例:

Python
# ----设置全局路点----

print("[INFO] **********设置全局路点**********")

posName = "GP_test0"

posInfo = [0, 1, 2, 3, 4, 5, 6]

ret = set_global_position(socket_fd, posName, posInfo)

if ret != SUCCESS:

    print("[ERROR] 设置全局路点失败,程序退出!")

    sys.exit(-1)

print("[INFO] 设置全局路点成功")

2. get_global_position - 查询全局 GP 点位

方法:get_global_position(SOCKETFD socketFd, std::string posName, std::vector<double>& pos);

参数:

  • socketFd:已连接的句柄。
  • posName:坐标名称。
  • pos:输出参数,用于存储坐标值的向量。

返回值:

  • 0:成功
  • 非 0:失败

使用示例:

Python
# ----查询全局路点----

print("[INFO] **********查询全局路点**********")

queriedPos = VectorDouble()

ret = get_global_position(socket_fd, posName, queriedPos)

if ret != SUCCESS:

    print("[ERROR] 查询全局路点失败,程序退出!")

    sys.exit(-1)

print("[INFO] 查询全局路点成功,位置为:", end="")

for pos in queriedPos:

    print(str(pos) + " ", end="")

3. set_global_string - 设置全局字符串变量

方法:set_global_string(socketFd, varName, varValue);

功能描述:设置字符串全局变量。

参数:

  • socketFd:已连接的句柄。
  • varName:变量名,如 "GS001"。
  • varValue:字符串变量值。

返回值:

  • 0:成功
  • 非 0:失败

使用示例:

Python
import tl_interface as tl

socket_fd = tl.connect_robot("192.168.1.13", "6001")

ret = tl.set_global_string(socket_fd, "GS001", "hello")

4. get_global_string - 获取全局字符串变量

方法:get_global_string(socketFd, varName, value);

功能描述:查询字符串全局变量。

参数:

  • socketFd:已连接的句柄。
  • varName:变量名,如 "GS001"。
  • value:出参占位,传入字符串初始值(如 ""),查询结果由返回值元组第二项给出。

返回值:

  • tuple:(ret, value),value 为变量值
  • 0:成功
  • 非 0:失败

使用示例:

Python
import tl_interface as tl

socket_fd = tl.connect_robot("192.168.1.13", "6001")

value = ""  # 占位参数(std::string& 出参)

ret, value = tl.get_global_string(socket_fd, "GS001", value)

5. get_global_sync_position - 获取全局同步位置

方法:get_global_sync_position(socketFd, posName, pos);

功能描述:查询全局 GE 点位。

参数:

  • socketFd:已连接的句柄。
  • posName:全局位置名,如 "GE0001"。
  • pos:输出参数,21 位点位数组(前 7 位坐标姿态、中间 7 位机器人位置、后 7 位外部轴位置)。

返回值:

  • 0:成功
  • 非 0:失败

使用示例:

Python
import tl_interface as tl

socket_fd = tl.connect_robot("192.168.1.13", "6001")

pos = VectorDouble()

ret = tl.get_global_sync_position(socket_fd, "GE0001", pos)

6. get_global_variant - 获取全局变量

方法:get_global_variant(socketFd, varName, value);

功能描述:查询全局变量。

参数:

  • socketFd:已连接的句柄。
  • varName:全局变量名,支持 "GI001" / "GD001" / "GB001" 等形式。
  • value:出参占位,传入数值占位值(如 0.0),查询结果由返回值元组第二项给出。

返回值:

  • tuple:(ret, value),ret 为执行结果,value 为变量值
  • 0:成功
  • 非 0:失败

使用示例:

Python
import tl_interface as tl

socket_fd = tl.connect_robot("192.168.1.13", "6001")

value = 0.0  # 占位参数(double& 出参)

ret, value = tl.get_global_variant(socket_fd, "GI001", value)

if ret == 0:

    print(f"全局变量值:{value}")