入门指南
纳博特控制器提供多种二次开发方式。本指南帮你根据目标、技术栈和场景选择最合适的方案。
快速决策表
| 你的目标 | 推荐方案 | 语言/协议 | 平台 | 难度 | 文档入口 |
|---|---|---|---|---|---|
| 编写 PC 端控制软件 | 上位机开发 | C++, C#, Python | Windows / Linux | 低 | C++ · C# · Python |
| 通过 TCP 远程控制机器人 | JSON 协议通信 | 任意语言 (JSON over TCP) | 跨平台 | 中 | RTL-22.07 · RTL-24.03 |
| 定制控制器底层行为 | 控制器二次开发 | C++ | Linux | 高 | 控制器开发指南 |
| 定制示教器界面 | 示教器二次开发 | C++ / Qt | Linux | 中高 | 示教器开发指南 |
| 集成 ROS 生态 | ROS 开发 | C++, Python | Linux | 中高 | ROS 集成指南 |
| 搭建 EtherCAT 实时主站 | 主站开发 | C / C++ | Linux (RT) | 高 | 主站库说明 |
开发方式说明
1. 上位机开发
在 PC 上通过 API 直接控制机器人,摆脱示教器限制,适合自动化集成、数据采集、远程监控等场景。
支持语言和平台:
| 语言 | 平台 | 工具链 |
|---|---|---|
| C++ | Windows | MSVC / MinGW |
| C++ | Linux | GCC |
| C# | Windows | .NET |
| Python | Windows / Linux | Python 3.x |
入门路径: 选择语言 → 下载 SDK → 初始化项目 → 调用 API 连接控制器 → 运行示例
适合用户: 需要进行机器人高层控制、自动化操作或系统集成的开发人员。支持多语言,可根据项目需求灵活选择技术栈。
2. JSON 协议通信
通过标准 JSON 消息与控制器通信,适用于跨语言、跨平台的远程控制和数据交换。
协议特点:
- 基于 TCP 通信,端口 5000(文件传输)、6000/6001(JSON 文本命令通信)、7000(上位机服务功能)
- 与编程语言无关,任何支持 TCP Socket 的语言均可使用
RTL-22.07 和 RTL-24.03 均为稳定版本,使用相同的端口体系。6000 端口一般用于示教器通信,6001 端口一般用于上位机通信。当前主流出货版本为 RTL-24.03。
前提知识:
- TCP Socket 编程基础
- JSON 数据格式
入门路径: 选择协议版本 → 查阅消息格式 → 建立 Socket 连接 → 发送指令
适合用户: 需要通过标准化协议与机器人进行远程控制或集成的开发人员。JSON 协议轻量、跨平台,适合保护自有工艺数据的集成商。
3. 控制器二次开发
在控制器 Linux 环境上开发底层算法,替换或扩展控制器的核心功能。
应用场景: 专有工艺开发、特殊机型支持、插补算法替换等。
前提知识:
- C++ 编程(面向对象、数据结构)
- Linux 系统编程(进程管理、内存管理)
- 机器人控制理论(运动学、动力学、插补算法)
入门路径: 安装交叉编译环境 → 编写定制内容 → 编译并部署到控制器 → 调试
适合用户: 控制器硬件和算法开发人员,具有较强的底层编程能力,需要定制插补算法、特殊机型支持或专有工艺。
4. 示教器二次开发
定制示教器用户界面和交互功能,实现与控制器的协同工作。
应用场景: 定制专属 UI/UE,配合控制器二次开发实现专有功能。
前提知识:
- C++ 编程
- Qt 框架(信号与槽、QML、UI 设计)
- Linux 系统基础操作
入门路径: 搭建 Qt 开发环境 → 创建示教器项目 → 设计 UI → 关联控制器功能
适合用户: UI/UX 开发人员,具备前端开发经验,希望为机器人系统提供自定义操作界面的工程师。
5. ROS 开发
将纳博特控制器集成到 ROS 网络中,实现机器人系统的实时监控和控制。
ROS 开发使用 ROS 原生通信机制(话题/服务),不涉及 JSON 格式或 HTTP 协议。
前提知识:
- ROS 基本概念(节点、话题、服务、动作)
- C++ 或 Python 编程
- ROS 工具链(MoveIt、RViz 等)
入门路径: 安装 ROS → 配置 ROS 环境 → 启动纳博特 ROS 节点 → 在 ROS 网络中发布/订阅控制指令
适合用户: 科研用户和 ROS 开发者,需要将纳博特控制器集成到已有 ROS 系统中的工程师。ROS 生态提供丰富的工具库,适合复杂算法研究和多机器人协同。
6. 主站开发
将控制器退化为工控机,在其上运行 EtherCAT 实时主站,实现高度定制化的实时控制系统。
应用场景: 满足客户对实时控制的需求,可在该平台上开发实时控制系统和工业网络通信协议。
前提知识:
- C / C++ 编程
- EtherCAT 协议基础
- 实时操作系统(RTOS / Xenomai)
入门路径: 搭建交叉编译环境 → 初始化主站库 → 配置 EtherCAT 总线 → 编写实时任务
适合用户: 工业自动化和嵌入式系统开发人员,尤其是需要定制实时控制系统和网络通信协议的工程师。
按用户角色推荐
本体厂商
目标:快速客制化控制系统,打造自有机器人大脑,提高品牌辨识度。
推荐 控制器二次开发 + 示教器二次开发。本体厂商通常需要定制化的控制算法以适配其硬件,控制器二次开发允许对底层控制进行深度定制,调整运动控制、插补算法等。示教器二次开发则可打造专有用户界面,提升品牌辨识度。
技术要求: 对机器人有较深了解,熟悉 C++ 编程和控制算法,具备 Linux 系统开发能力。
集成商
目标:开发专有工艺,保护自有行业知识,打造产品护城河。
推荐 上位机开发 + JSON 协议通信。集成商需要集成自己的专有工艺和技术,上位机开发可通过 API 进行机器人控制,同时收集处理数据;JSON 协议作为轻量级通信方式,适合标准化数据传输,保护自有工艺数据。
技术要求: 熟悉网络协议和数据交换,能够进行系统集成和高效数据传输,掌握至少一种上位机开发语言。
科研用户
目标:专注高精度运控算法研究,深挖机器人极限性能。
推荐 控制器二次开发 + ROS 开发。控制器二次开发提供深度定制运动控制和算法的平台;ROS 支持多机器人协同工作,丰富的工具库帮助实现复杂算法研究和创新。
技术要求: 高度的技术研发能力,熟悉控制算法、ROS 开发和高精度运动控制,具备 C++ 和 Python 编程能力。
教育用户
目标:培养学生不仅会用机器人,更能设计和制造机器人。
推荐 上位机开发(Python)+ ROS 开发。Python 简单易用,适合快速上手和基础编程教学;ROS 有广泛社区支持和丰富学习资源,配合示例程序帮助学生理解机器人控制原理。
技术要求: 对机器人操作有基本了解,熟悉图形界面开发和基础编程语言,具备教学场景下的课程设计能力。
运动控制方式对比
机器人执行运动有三种方式,适用于不同场景。上位机 SDK 用户主要使用后两种。
| 方式 | 适用场景 | 特点 | 支持平台 |
|---|---|---|---|
| 作业文件模式 | 固定任务、批量生产 | 预编程序列,可循环执行,支持完整逻辑控制(条件/循环/IO) | 示教器 + 上位机 |
| 队列模式(无作业文件) | 上位机实时控制 | 不依赖作业文件,直接下发目标点,适合动态路径生成 | 上位机 SDK |
| 追加模式 | 视觉引导、动态避障 | 边运动边追加新指令,无需预编译,支持实时决策 | 仅上位机 SDK |
追加模式无法通过示教器实现,必须通过 SDK 或通信协议调用。
入门小贴士
- 前提知识: 对机器人操作有基本了解,熟悉图形界面开发和基础编程语言
- 先读文档: 各开发方式都提供了详细的文档和示例代码,建议在开始之前先通读相关章节
- 灵活选择: 初期阶段保持开发路径的开放性,有助于后期快速迭代
- 社区支持: ROS 和 JSON 协议有广泛的社区支持,可通过在线论坛和教程获取帮助
不确定如何选择?
如果仍不清楚从何入手,按以下顺序尝试:
- 先看 Demo — 下载并运行对应语言的 Demo,直观感受工作流程
- 从 Python 开始 — 环境最简单、调试最方便,适合快速验证想法
- 需要更多功能再查 C++ / C# — 性能和接口更全面
- 需要跨语言通讯选 JSON — 适用于已有 TCP 通信基础的系统集成场景
如果仍有疑问,请查阅常见问题、版本与兼容性或发送邮件至 sales@inexbot.com。