- 选型指南
- 概述
- 入门指南
- 机械臂参数
- 示教器使用
-
二次开发
-
API(C++)
- 快速开始
- 接口说明
- 7000端口接口说明
- 使用示例
- 返回值说明
-
API(Python)
- 快速开始
- 接口说明
- 7000端口接口说明
- 使用示例
- 返回值说明
- ROS2开发
-
API(C++)
- 相关下载
全局路点管理接口
头文件:include/tl_interface.h
相关示例代码:examples\cpp\ex_global_position.cpp
1. set_global_position - 新增/设置全局路点
方法:Result set_global_position(SOCKETFD socketFd, std::string posName, std::vector<double> pos);
功能描述:创建或修改一个持久化的全局位置变量(路点),可通过名称直接调用。
参数:
- socketFd:已连接的句柄。
- posName:全局位置名,如 "GP0001"。
- pos:14 位点位数组,含义如下:
- [0]:坐标系,0:关节 1:基坐标 2:工具 3:用户
- [1]:0 角度制 / 1 弧度制
- [2]:形态
- [3]:工具手坐标序号
- [4]:用户坐标序号
- [5] [6]:备用
- [7-13]:点位信息
返回值:
- 0:成功。
- 非0:失败。
使用示例:
// 设置全局路点
std::string posName = "GP_test0";
std::vector<double> posInfo {0, 1, 2, 3, 4, 5, 6};
auto ret = tl::set_global_position(socket_fd, posName, posInfo);
if (ret != tl::Result::SUCCESS) {
std::cerr << "[ERROR] 设置全局路点失败,错误码: " << ret << std::endl;
return -1;
}
std::cout << "[信息] 设置全局路点成功" << std::endl;
2. get_global_position - 查询全局 GP 点位
方法:Result get_global_position(SOCKETFD socketFd, std::string posName, std::vector<double>& pos);
功能描述:查询指定名称的全局 GP 点位。
参数:
- socketFd:已连接的句柄。
- posName:全局位置名,如 "GP0001"。
- pos:输出,全局点位数组,长度 14;前 7 位为点位的坐标、姿态等信息,后 7 位为机器人位置。
返回值:
- 0:成功。
- 非0:失败。
使用示例:
// 查询全局路点
std::vector<double> queriedPos;
auto ret = tl::get_global_position(socket_fd, posName, queriedPos);
if (ret != tl::Result::SUCCESS) {
std::cerr << "[ERROR] 查询全局路点失败,错误码: " << ret << std::endl;
return -1;
}
std::cout << "[信息] 查询全局路点成功,位置为:";
for (const auto& pos : queriedPos) {
std::cout << " " << pos;
}
std::cout << std::endl;
3. set_global_string - 设置全局字符串变量
方法:Result set_global_string(SOCKETFD socketFd, const std::string& varName, const std::string& varValue);
功能描述:设置全局字符串变量的值。
参数:
- socketFd:已连接的句柄。
- varName:变量名,如 "GS001"。
- varValue:字符串变量值。
返回值:
- 0:成功。
- 非0:失败。
使用示例:
// 设置全局字符串变量
auto ret = tl::set_global_string(socket_fd, "GS001", "hello");
if (ret != tl::Result::SUCCESS) {
std::cerr << "[ERROR] 设置全局字符串变量失败,错误码: " << ret << std::endl;
return -1;
}
std::cout << "[信息] 设置全局字符串变量成功" << std::endl;
4. get_global_string - 获取全局字符串变量
方法:Result get_global_string(SOCKETFD socketFd, const std::string& varName, std::string& value);
功能描述:查询全局字符串变量的值。
参数:
- socketFd:已连接的句柄。
- varName:变量名,如 "GS001"。
- value:输出,变量值。
返回值:
- 0:成功。
- 非0:失败。
使用示例:
// 获取全局字符串变量
std::string value;
auto ret = tl::get_global_string(socket_fd, "GS001", value);
if (ret != tl::Result::SUCCESS) {
std::cerr << "[ERROR] 获取全局字符串变量失败,错误码: " << ret << std::endl;
return -1;
}
std::cout << "[信息] 全局字符串变量 GS001 = " << value << std::endl;
5. get_global_sync_position - 获取全局同步位置
方法:Result get_global_sync_position(SOCKETFD socketFd, const std::string& posName, std::vector<double>& pos);
功能描述:查询全局 GE 点位(含外部轴)。
参数:
- socketFd:已连接的句柄。
- posName:全局位置名,如 "GE0001"。
- pos:输出,全局点位数组,长度 21;前 7 位为点位的坐标、姿态等信息,中间 7 位为机器人位置,后 7 位为外部轴位置。
返回值:
- 0:成功。
- 非0:失败。
使用示例:
// 获取全局同步位置(GE 点)
std::vector<double> pos;
auto ret = tl::get_global_sync_position(socket_fd, "GE0001", pos);
if (ret != tl::Result::SUCCESS) {
std::cerr << "[ERROR] 获取全局同步位置失败,错误码: " << ret << std::endl;
return -1;
}
std::cout << "[信息] GE0001 位置(共 " << pos.size() << " 位):" << std::endl;
for (size_t i = 0; i < pos.size(); ++i) {
std::cout << " [" << i << "] " << pos[i] << std::endl;
}
6. get_global_variant - 获取全局变量
方法:Result get_global_variant(SOCKETFD socketFd, const std::string& varName, double& value);
功能描述:查询全局变量的值。
参数:
- socketFd:已连接的句柄。
- varName:全局变量名,支持形式如 "GI001" / "GD001" / "GB001"。
- value:输出,变量值。
返回值:
- 0:成功。
- 非0:失败。
使用示例:
// 获取全局变量
double value = 0.0;
auto ret = tl::get_global_variant(socket_fd, "GD001", value);
if (ret != tl::Result::SUCCESS) {
std::cerr << "[ERROR] 获取全局变量失败,错误码: " << ret << std::endl;
return -1;
}
std::cout << "[信息] 全局变量 GD001 = " << value << std::endl;
