Cesium 无人机航线规划

鉴于大疆司空平台和大疆无人机app高度绑定,导致很多东西没办法定制化。

从去年的时候就打算仿大疆开发一套完整的平台,包括无人机app以及仿司空2的管理平台,集航线规划、任务派发、实时图像、无人机管理等功能的平台。

当前阶段主要实现了:

1、无人机实时数据(包括视频、音频、拍照数据、位置信息以及无人机姿态)回传至web端,web端实时预览

2、web端实时编辑航线,编辑好的航线直接派发到无人机,无人机按照编辑航线进行作业;

3、......

后续我们还做了喊话、图像自动识别动功能

......

下面是基于Cesium开发的航线编辑功能,后面会对这个这个模块的实现进行记录,供大家参考。

当前我做的是三维空间的航线编辑,还有种方式是快速编辑(此处不做说明)。

简单操作说明:

航点编辑支持两种方式:键盘和鼠标点击。

W -- 向前

S -- 向后

A -- 向左

D -- 向右

并且相机姿态编辑,也支持键盘和鼠标操作:

⬆ -- 镜头抬升

⬇ -- 镜头降低

⬅ -- 镜头左转

➡ -- 镜头右转

具体操作大家可以参考司空2的平台,后续我会将此功能放到线上,大家也可以体验。

后续我写完了,统一放出核心代码。当前仅作记录。

2024-04-12

javascript 复制代码
 // 根据距离计算位置
    computeByDistance(offset) {
        // 根据相机的heading 计算前后左右的朝向
        let heading = this.startMoveHeading;
        const center = Cesium.Matrix4.multiplyByPoint(this.localMtx_inverse, this.localCenter, new Cesium.Cartesian3());
        const x = (offset.a.val || 0) - (offset.d.val || 0);
        const y = (offset.w.val || 0) - (offset.s.val || 0);

        const directionX = Cesium.Cartesian3.multiplyByScalar(new Cesium.Cartesian3(1, 0, 0), -1 * x, new Cesium.Cartesian3());
        const directionY = Cesium.Cartesian3.multiplyByScalar(new Cesium.Cartesian3(0, 1, 0), y, new Cesium.Cartesian3());

        let newc = Cesium.Cartesian3.add(center, directionX, new Cesium.Cartesian3());
        newc = Cesium.Cartesian3.add(newc, directionY, new Cesium.Cartesian3());
        const rotationZ = Cesium.Matrix3.fromRotationZ(Cesium.Math.toRadians(-1 * heading || 0), new Cesium.Matrix3());
        newc = Cesium.Matrix3.multiplyByVector(rotationZ, newc.clone(), new Cesium.Cartesian3());
        const res = Cesium.Matrix4.multiplyByPoint(this.localMtx, newc.clone(), new Cesium.Cartesian3());
        return res;
    }

    computeHeadingPitch(offset) {
        const heading = (offset.ArrowRight.val || 0) - (offset.ArrowLeft.val || 0);
        const pitch = (offset.ArrowUp.val || 0) - (offset.ArrowDown.val || 0);
        return { heading, pitch }
    }

未完待续。。。。。

相关推荐
阿木实验室5 小时前
复杂环境下,无人机能自主完成搜救与物资投放吗?【挑战赛课题推荐】
无人机·无人机搜救·无人机物资投放
行智科技7 小时前
PX4 EKF2 源码解析(二):接口层、算法层与符号生成层
无人机·px4·数据融合·ekf2
feibaoqq19 小时前
无人机Remote‑ID(RID)科普:从ESP32DIY原型到商用低空安防整套系统
无人机·低空经济·低空安防
动物园猫1 天前
红外无人机目标检测数据集:4,500+张图像 | 目标检测
人工智能·目标检测·无人机
YOLO数据集集合2 天前
UAVDT 无人机车辆检测数据集 - 无人机航拍 | 车辆检测 | 目标检测 | YOLO格式 | 智能交通 | 城市管理 | 多类别数据集 | 计算机视觉
人工智能·yolo·目标检测·机器学习·计算机视觉·目标跟踪·无人机
FPC工厂——皇榜科技2 天前
48小时快速打样!无人机迭代这么快,可PCB交付跟不上怎么赢?
科技·无人机·pcb工艺
进制树3 天前
【飞控开发实战·㉒】ROS2无人机应用开发实战:Offboard控制、航点任务、AprilTag降落与避障系统
开发语言·安全·无人机·课程设计
YOLO数据集集合3 天前
火情监测新方案:无人机红外-可见光多模态火点烟雾数据集(含YOLOv11实战)
人工智能·yolo·计算机外设·无人机·无人机数据集·可见光多模态
进制树4 天前
【飞控开发实战·⑲】ROS2无人机开发环境搭建:Jazzy安装、工作空间与hello_drone节点实战
开发语言·安全·无人机·课程设计
向哆哆5 天前
无人机灾害场景人体目标检测数据集分享(适用于YOLO系列深度学习分类检测任务)
yolo·目标检测·无人机