- 选型指南
- 概述
- 入门指南
- 机械臂参数
- 示教器使用
-
二次开发
-
API(C++)
- 快速开始
- 接口说明
- 7000端口接口说明
- 使用示例
- 返回值说明
-
API(Python)
- 快速开始
- 接口说明
- 7000端口接口说明
- 使用示例
- 返回值说明
- ROS2开发
-
API(C++)
- 相关下载
接口通用规则
1. 头文件包含
使用C++接口需包含 include/tl_interface.h 等对应头文件。
2. 句柄要求
除标注为本地计算、无需连接控制器的接口外,接口的第一个参数为 connect_robot 返回的有效 SOCKETFD(即 int 类型)。
3. 返回值约定
- 0(SUCCESS):执行成功
- 非 0:执行失败,具体错误码见附录。
4. 数据结构
- 向量类型:
std::vector<double>或std::vector<int>。 - 结构体类型:
ModbusMasterParameter、MoveCmd、RobotDHParam、ToolParam等。
5. 坐标系约定
- 0:关节坐标系(Joint)
- 1:直角坐标系(Cartesian)
- 2:工具坐标系(Tool)
- 3:用户坐标系(User)
6. 工具函数说明
为保证示例代码输出格式统一、结果清晰规整,本文档所有C++示例统一封装了调试打印工具函数,用于标准化接口返回状态、向量、矩阵、分隔标题的输出展示。
print_result:统一打印接口调用结果,区分成功/失败并输出错误码;print_separator:打印章节分隔标题,用于区分多组测试案例;print_vector:格式化打印一维浮点向量,固定 4 位小数,适用于欧拉角、四元数、关节角度等数据;print_matrix:按行主序格式化打印多维矩阵,适配 3×3 旋转矩阵、4×4 位姿矩阵输出。
C++
// ============================================================
// 工具函数
// ============================================================
void print_result(const std::string& msg, int ret)
{
if (ret == tl::Result::SUCCESS) {
std::cout << " [成功] " << msg << std::endl;
} else {
std::cout << " [失败] " << msg << ",错误码: " << ret << std::endl;
}
}
void print_separator(const std::string& title)
{
std::cout << "\n========== " << title << " ==========" << std::endl;
}
/// @brief 打印 double 向量
void print_vector(const std::string& name, const std::vector<double>& v)
{
std::cout << " " << name << " [";
for (size_t i = 0; i < v.size(); ++i) {
std::cout << v[i] << (i + 1 < v.size() ? ", " : "");
}
std::cout << "]" << std::endl;
}
/// @brief 打印矩阵(行主序)
void print_matrix(const std::string& name, const std::vector<double>& m, int rows, int cols)
{
std::cout << " " << name << " [" << m.size() << "]:" << std::endl;
for (int r = 0; r < rows; ++r) {
std::cout << " ";
for (int c = 0; c < cols; ++c) {
int idx = r * cols + c;
if (idx < (int)m.size()) {
std::cout << std::fixed << std::setprecision(4) << std::setw(10) << m[idx] << " ";
}
}
std::cout << std::endl;
}
}
