在博客上面看见的一位老师对这个问题的思考,我忘了复制地址,这里说句抱歉,老师用程序的方式模拟出真实的飞行情况,思路和应用都很好~
大疆特洛(Tello)无人机飞弧线
代码语言:javascript复制https://www.zhihu.com/video/1182250664884854784
大疆的官方文档解释得不太清楚,原文只有这么一句简单的描述。
但实际上你会发现其实这个简单的说明,很多时候执行会报错。
研究了一下,大概发现一些要点:
一、Tello的坐标系
这个是普通的笛卡尔平面直角坐标系:
普通的直角坐标系
但在Tello这里,坐标系是这样的:
Tello的平面坐标系
Tello机头对的方向是X轴的正向,逆时针转90度为y轴的正向。
二、Tello的飞行方向
飞弧线时,机头方向始终保持起飞时的朝向不变。
三、弧线的坐标计算
测试过程
结合语焉不详的官方文档,做了几次测试,觉得Tello的飞行弧线应该满足以下几个条件:
1.起飞点坐标为弧线所在圆经过的坐标原点(0,0),即这个圆与坐标轴的原点相交。
2.半径为0.5-10米
因此,官方文档要求给出的两个点坐标,再加上起飞点的(0,0),一共是3个点,这三点必须共圆。
为简化计算,写了一段代码,可以计算出坐标,经测试可用。
代码语言:javascript复制# -*- coding: UTF-8 -*-
画一个半径为50cm,圆心x坐标为25,圆心位于Tello右侧的圆(Tello起飞点在坐标系的原点(0,0)处),如下:
经测试,curve 72 -60 0 0 -87 0 10 可以飞大弧,curve -22 -27 0 0 -87 0 10可以飞小弧。
有幸结识了大疆的工程师(市面上面TT无人机的扩展模块的开源固件就是他写的)大佬不嫌我菜还为我指点二三,>.<感谢大佬!