SDK说明

一、概述

Robot API 是双臂复合机器人平台的 Python 软件开发工具包(SDK), 提供统一、便捷的接口用于控制机械臂运动、底盘导航、视觉感知、坐标转换、末端执行器控制等全栈能力, 并支持实时状态读取、Web 远程监控与多种通信协议。

SDK 采用 分层模块化架构 设计,各功能包独立可插拔, 底层封装了 TCP Socket、串口 Modbus RTU、RS-485、USB 等通信细节, 上层应用无需关心硬件协议,通过简洁的 Python API 即可快速集成机器人控制功能。

API 接口详细说明与示例代码请参见单独的 API 接口文档页面。

核心特性

模块化架构
9 大独立功能包,按需组合
多协议支持
TCP / Modbus RTU / 串口 / USB / HTTP
视觉全链路
D435 采集 → YOLO 检测 → 坐标转换 → 抓取
统一 Web 控制台
HTTP + WebSocket 实时遥测推送
多夹爪兼容
RG / PGC / EG2 三型夹爪,统一接口
完整底盘能力
导航到点 / 巡游 / 速度控制 / 地图管理

适用场景

  • 双臂复合机器人上位机应用程序开发
  • 视觉引导抓取与搬运系统集成
  • 移动底盘自主导航与巡检
  • 多传感器数据融合与自动化流程
  • 远程 Web 监控与遥操作

系统框图

上层应用程序
from tianlian_arm_api import TianLianArmController
▼
Robot API Python 模块
机械臂 · 底盘 · 相机 · 坐标转换 · YOLO · 升降 · 夹爪 · 舵机 · Web
▼
硬件通信层
TCP Socket · Modbus RTU · RS-485 · USB 3.0 · HTTP
▼
机器人硬件设备
天链机械臂 · 云迹底盘 · D435 相机 · 升降轴 · 夹爪 · 头部舵机

二、支持的操作系统与软件版本

操作系统

平台 支持版本 架构
Ubuntu 20.04 LTS / 22.04 LTS amd64 (x86_64)
Windows 10 / 11 x86_64
Jetson (Linux) JetPack 5.x / 6.x ARM (aarch64)
Ubuntu 20.04+ 为推荐平台,RealSense / 串口 / YOLO 驱动支持最佳。

Python 版本

组件 版本要求 说明
Python ≥ 3.8 推荐 3.10+
pip ≥ 21.0 包管理器

第三方依赖一览

API 包 必需依赖 通信方式 操作系统
tianlian_arm_api pyserial pin==3.7.0 numpy scipy TCP 6001/7000 + RS-485 Ubuntu / Windows
camera_api pyrealsense2 opencv-python numpy USB 3.0 Ubuntu / Windows
yunji_api 仅 Python 标准库 TCP Socket :31001 Ubuntu / Windows
head_api pyserial 串口 RS-485 @9600 Ubuntu / Windows
convert_transform_api numpy scipy 纯计算(无通信) 全平台
dahuan_api pyserial Modbus RTU 串口 Ubuntu / Windows
leesn_lift_api fastapi uvicorn pyserial Modbus RTU + HTTP Ubuntu / Windows
yolo_infer_api ultralytics opencv-python numpy 本地推理 Ubuntu / Windows
robot_web_console fastapi uvicorn websockets HTTP + WebSocket Ubuntu / Windows

基础依赖安装

# 基础依赖
pip install numpy scipy opencv-python requests

# 串口通信
pip install pyserial

# Web 服务
pip install fastapi uvicorn python-multipart websockets

# 深度学习推理
pip install ultralytics

# 相机驱动
pip install pyrealsense2

# 机械臂官方 SDK
pip install pin==3.7.0 numpy==1.24.0 scipy==1.8.0

三、SDK 结构

3.1 包目录结构

robot_api_new/                          # SDK 根目录
│
├── README.md                           # 项目总体说明文档
│
├── tianlian_arm_api/                   # ① 天链机械臂控制 API
│   ├── __init__.py                     #   包入口,导出全部公开 API
│   ├── arm_controller.py               #   机械臂控制器(核心)
│   ├── gripper_controller.py           #   钧舵 RG 夹爪 Modbus RTU 驱动
│   └── arm_sdk/                        #   官方 TCB SDK (v22.07)
│
├── head_api/                           # ② 头部舵机控制 API
│   ├── head_api.py                     #   HeadControlSDK 主类
│   ├── servo_api.py                    #   舵机控制接口
│   └── test_api.py                     #   测试脚本
│
├── camera_api/                         # ③ Intel D435 相机 API
│   ├── D435_rgb_depth.py              #   D435Camera 封装类
│   ├── camera_list.py                  #   相机列表工具
│   └── D435_API_接口对照表.md          #   接口对照文档
│
├── yunji_api/                          # ④ 云迹 WATER 底盘 API
│   ├── yunji_chassis_api.py            #   TCP 客户端封装(核心)
│   ├── yunji_demo.py                   #   演示程序
│   └── yunji_chassis_api_call_manual.md # 调用手册
│
├── leesn_lift_api/                     # ⑤ 升降轴与夹爪控制 API
│   ├── web_server.py                   #   FastAPI Web 服务(入口)
│   ├── device_manager.py               #   设备管理器
│   ├── motor_service.py                #   升降轴 Modbus 服务(核心)
│   ├── gripper_service.py             #   EG2 夹爪服务
│   ├── pgc_gripper_service.py         #   PGC 夹爪服务
│   ├── lift_client.py                  #   升降轴 HTTP 客户端
│   ├── gripper_client.py              #   夹爪 HTTP 客户端
│   ├── leesn_control.py               #   Leesn Modbus 底层驱动
│   ├── config/devices.json            #   设备配置文件
│   └── logs/                           #   运行时日志
│
├── dahuan_api/                         # ⑥ 大寰 PGC 夹爪 API
│   └── dahuan_api.py                   #   PGCGripper Modbus RTU 驱动
│
├── convert_transform_api/              # ⑦ 坐标转换 API
│   ├── convert_transform_api.py        #   CameraToBaseConverter(核心)
│   ├── coordinate_transform.example.json # 配置文件示例
│   └── coordinate_transform_usage_example.py # 使用示例
│
├── yolo_infer_api/                     # ⑧ YOLO 推理 API
│   ├── yolo_infer_api.py              #   YOLO 推理封装(核心)
│   ├── yolo_infer_config.example.json # 配置文件示例
│   └── yolo_infer_usage_example.py    # 使用示例
│
├── yolo_api/                           # ⑨ YOLO 完整推理服务
│   ├── inference/                      #   推理模块
│   │   ├── yolo_infer_core.py         #   推理核心
│   │   ├── send_camera_to_api.py      #   相机推流 HTTP 服务
│   │   └── models/                    #   模型文件
│   ├── training/                      #   训练模块
│   │   ├── train_yolov8.py            #   训练脚本
│   │   └── dataset.yaml               #   数据集配置
│   └── logs/                          #   日志
│
├── robot_web_console/                  # ⑩ 统一 Web 控制台
│   ├── web_server.py                  #   FastAPI 入口(默认 :8010)
│   ├── device_manager.py              #   设备管理器
│   ├── config/devices.json            #   设备配置
│   ├── services/                      #   设备服务层
│   │   ├── lift_serial.py            #   升降轴串口服务
│   │   ├── gripper_eg2.py            #   EG2 夹爪服务
│   │   ├── gripper_dahuan.py         #   PGC 夹爪服务
│   │   └── vacuum_stub.py            #   吸盘 Stub
│   └── logs/                          #   运行日志
│
└── 具身双臂复合机器人SDK手册.docx/pdf   # 官方 SDK 手册

3.2 模块分层

上层应用程序
from tianlian_arm_api import TianLianArmController
▼
Robot API Python 模块层
机械臂控制 · 视觉感知 · 底盘导航 · 坐标转换 · 末端执行器
▼
硬件驱动 / 通信层
TCP 6001/7000 · Modbus RTU · RS-485 · USB · HTTP
▼
硬件设备层
天链机械臂 · 云迹底盘 · D435 相机 · 升降轴 · 夹爪 · 头部舵机

3.3 模块文件说明

模块 文件 职责 公开类 / 函数
tianlian_arm_api __init__.py 模块入口,统一导出 TianLianArmController · ArmConnectionConfig · JodellGripperController · GripperSerialConfig · 枚举类型
  arm_controller.py 机械臂控制接口 TianLianArmController 类
  gripper_controller.py 钧舵 RG 夹爪驱动 JodellGripperController · GripperSerialConfig · JodellGripperState
head_api head_api.py 头部舵机控制接口 HeadControlSDK 类
  servo_api.py 舵机控制接口 ServoControlSDK 类
camera_api D435_rgb_depth.py D435 相机封装 D435Camera · list_realsense_devices() · print_realsense_devices()
yunji_api yunji_chassis_api.py 云迹底盘 TCP 客户端 YunjiChassisClient · ChassisConfig
dahuan_api dahuan_api.py 大寰 PGC 夹爪驱动 PGCGripper · GripStatus
leesn_lift_api web_server.py FastAPI Web 入口 app (FastAPI 实例)
  device_manager.py 设备管理与命令分发 DeviceManager
  motor_service.py 升降轴运行态服务 MotorService
  gripper_service.py EG2 夹爪服务 GripperService
  pgc_gripper_service.py PGC 夹爪服务 PGCGripperService
  lift_client.py 升降 HTTP 客户端 LiftClient
  gripper_client.py 夹爪 HTTP 客户端 GripperClient · GripperTelemetry
  leesn_control.py Leesn Modbus 底层驱动 LiftAxis · KTechMotor
convert_transform_api convert_transform_api.py 坐标转换核心 CameraToBaseConverter · convert_camera_to_base() · convert_camera_to_base_detail() · init_converter()
yolo_infer_api yolo_infer_api.py YOLO 推理封装 YoloInferAPI · init_yolo_infer_api() · infer_yolo_image()
robot_web_console web_server.py 统一 Web 控制台 app (FastAPI 实例)
  device_manager.py 设备管理与缓存 DeviceManager

3.4 通信协议总览

模块 协议 默认地址 / 端口 传输方式
tianlian_arm_api 自定义 TCP 协议 192.168.2.14:6001 (控制) / 7000 (运动) TCP
tianlian_arm_api (夹爪) Modbus RTU /dev/ttyUSB0 @115200/8N1 RS-485
head_api 自定义串口协议 /dev/ttyUSB0 @9600 RS-485 串口
camera_api librealsense USB 3.0 USB
yunji_api 类 URL 字符串协议 192.168.10.10:31001 TCP Socket
dahuan_api Modbus RTU /dev/ttyUSB0 @115200/8N1 RS-485
leesn_lift_api Modbus RTU /dev/ttyCH341USB0 @115200 RS-485 串口
leesn_lift_api (Web) HTTP / WebSocket 127.0.0.1:8000 TCP
robot_web_console HTTP / WebSocket 127.0.0.1:8010 TCP
yolo_infer_api 本地进程内推理 — 内存

四、注意事项

机械臂安全:首次运行请使用低速(speed ≤ 10),确认示教器急停按钮有效, 避免超限运动导致碰撞。运行前务必确认工作空间无障碍。
速度模式超时:lift_up / lift_down 速度模式下, 驱动约 1 秒 内未收到新速度命令会自动停止,上位机须周期性调用(建议间隔 < 500ms)。
串口权限:Linux 下使用串口需将用户加入 dialout 组: sudo usermod -aG dialout $USER,然后重新登录。
头部角度范围:舵机角度建议在 0~1000 范围内操作,初始位置为 500。 俯仰(ID:1)和偏航(ID:2)的机械限位请在实际测试中确认。
坐标转换校准:rotation_cam_to_ee 必须为右手旋转矩阵(行列式=+1), 平移向量 translation_cam_to_ee_m 需通过手眼标定获得。方向正确但整体偏移时,优先调整平移向量。
YOLO 深度鲁棒策略:反光物体易导致中心点深度为 0,SDK 采用 mask 内采样 + 窗口逐级扩大 + 中位数滤波策略。如仍无效,可在配置中调整 center_window_radii_px 和 trim_ratio。
多相机场景:使用前先调用 print_realsense_devices() 查看各相机序列号, 实例化时务必传入 serial 参数,避免启动错设备。
回调线程安全:状态订阅回调在线程池中执行,注意回调函数的线程安全性。 串口通信不是线程安全的,多线程调用时应增加 threading.Lock()。
LHC-RW2-6G Robot API — 双臂复合机器人 SDK © 2026