LLUAV Developer SDK - 无人机开发者工具包

v1.0.0 正式发布

# LLUAV Developer SDK

面向 LLUAV 无人机固件的多语言 WebSocket SDK。支持 Python、C++、JavaScript，内置自动重连、命令队列、心跳保活与周期任务调度。

⚡ 快速开始 📦 下载 SDK
3
语言支持
100+
API 接口
5
详细文档

## 核心特性

为无人机高可靠通信场景设计的工业级 SDK

🔁

### 自动重连

检测连接中断后自动重连，采用指数退避策略，重连成功后自动登录，队列中的命令自动恢复执行。

📋

### 命令队列

严格 FIFO 队列保证一问一答，避免并发导致响应错乱。用户命令、心跳、周期任务共享同一队列。

💓

### 心跳保活

空闲时自动发送轻量心跳命令，维持 NAT/防火墙会话，同时作为连接健康状态的早期检测。

⏱️

### 超时管理

每条命令独立超时控制，超时或发送失败自动重试（默认 3 次），超时命令自动拒绝不阻塞队列。

🔄

### 周期任务

注册命名周期任务（如每 2 秒获取状态），SDK 自动调度入队，无需用户自行管理定时器。

🔒

### 自动鉴权

连接建立后自动发送登录命令，支持普通用户与管理员密码，重连后自动重新鉴权。

## 快速开始

三行代码连接无人机并执行起飞

Python
C++
JavaScript

    from lluav_sdk import LLUAVClient

    # 连接并自动登录
    client = LLUAVClient("192.168.1.100", password="your_password")
    client.connect()

    # 注册周期任务：每 2 秒获取状态
    client.add_periodic_task("status", 2.0, "state")

    # 执行飞行命令（自动排队、超时管理）
    client.takeoff()
    client.set_sp_ned(5.0, 0.0, -5.0, 0.0)
    client.rtl()

    client.disconnect()

    #include "lluav_sdk/client.hpp"
    #include <iostream>

    int main() {
        // 默认：自动重连、心跳 5s、超时 10s
        lluav::LLUAVClient client("192.168.1.100", 53001, "your_password");
        client.connect();

        // 周期任务：每 3 秒获取 Lidar 位姿
        client.add_periodic_task("pose", 3, "lidarpose");

        auto state = client.get_state();
        std::cout << state.dump(2) << std::endl;

        client.takeoff();
        client.rtl();

        client.disconnect();
        return 0;
    }

    const { LLUAVClient } = require('./src/client');

    async function main() {
        const client = new LLUAVClient('192.168.1.100', 53001, 'your_password', 10000, {
            autoReconnect: true,
            heartbeatInterval: 5000,
        });
        await client.connect();

        // 注册周期任务
        client.addPeriodicTask('status', 2, 'state');

        const state = await client.getState();
        console.log(JSON.stringify(state, null, 2));

        await client.takeoff();
        await client.rtl();

        await client.disconnect();
    }

    main().catch(console.error);

## 下载与发布

使用发布脚本一键打包，或手动集成源码

### 📦 源码包

包含 Python、C++、JS 三种实现及完整文档

v1.0.0 TAR.GZ / ZIP
下载 v1.0.0

### 🐍 PyPI (即将发布)

Python 用户可直接 pip 安装

pip Python 3.7+
`pip install lluav-sdk` 查看 setup.py

### 📁 Git 仓库

克隆最新源码，参与贡献

Git MIT License
`git clone <repo-url>` 访问仓库

### 🚀 使用发布脚本

SDK 内置跨平台发布脚本，自动验证结构、检查语法、打包归档并生成校验文件。

    # 生成 tar.gz + zip + SHA256 校验
    ./release.sh --version 1.0.0 --output ./dist

    # 输出
    # dist/lluav-sdk-1.0.0.tar.gz
    # dist/lluav-sdk-1.0.0.zip
    # dist/lluav-sdk-1.0.0-SHA256.txt

## 文档

从协议规范到故障排除的完整指南

#### 📡 协议规范

WebSocket 传输格式、请求/响应结构、完整命令参考、错误码表

#### 🏗️ 架构设计

队列、重连、心跳、周期任务的内部实现与线程安全说明

#### 📚 API 参考

Python / C++ / JavaScript 全部方法的参数、返回值与异常说明

#### 🔧 故障排除

连接问题、超时处理、权限错误、性能调优建议

#### 📖 快速入门

README 中的安装指南、示例代码与功能概览

#### 📝 变更日志

版本历史、功能列表与协议覆盖范围