我应该使用 TCP 还是 UDP 数据包来控制无人机?

Posted

技术标签:

【中文标题】我应该使用 TCP 还是 UDP 数据包来控制无人机?【英文标题】:Should I use TCP or UDP packets to control a UAV? 【发布时间】:2013-06-01 23:41:23 【问题描述】:

是否应该使用 TCP 或 UDP 连接向 PC/基站的无人机发送控制命令?

车辆很小(大约有人类指甲那么大),需要基站的持续控制以使其稳定。

这就是我的想法:TCP 应该是可靠的传输,但速度很慢,而 UDP 不像 TCP 那样提供数据包传输的保证,但比 TCP 快。 因为我真的很关心尽快将数据包从基站传送到无人机,所以我认为使用 UDP 是可行的方法。

我走了吗?我是否过度简化了这个问题?

【问题讨论】:

【参考方案1】:

在我看来,我都不会说。

我强烈建议您有一个内部控制回路来稳定无人机,并且只使用数据连接来发送更多面向行为的命令,例如向西飞行、向东飞行等。

我假设您正在使用某种无线发射器进行连接。

如果您使用 UDP,则无法确定控制数据包是否到达 UAV,这可能会导致 UAV 变得不稳定和崩溃。

如果使用 TCP,则无法保证控制数据包以固定的时间间隔到达无人机,这可能会导致无人机变得不稳定并导致崩溃。

如果您真的想从基站控制一切,我建议您使用 TCP,因为您可以确保您的控制数据包到达 UAV。如果您使用标准无线传输,您应该有足够的带宽来重新传输丢失的数据包。

如果您希望发送大量数据,例如。对 UAV 稳定性没有任何直接影响的视频或声音我肯定会选择 UDP,因为您不会在意丢失一两帧。

我希望这是有道理的。

西格德

【讨论】:

有用的答案。您是否知道任何使用 TCP 来实现此目的的应用层协议?【参考方案2】:

我认为您需要一个内部循环来稳定飞行。如果您有足够的计算能力通过插槽进行通信,那么您绝对可以控制无人机上的稳定和俯仰-偏航-滚动。 对于外循环,您必须决定要实现的通信类型。 如果您想要持续通信(这更安全但计算量更大),UDP 可能是选择(如果您每 5 毫秒发送一个帧,那么您可能不太关心数据包丢失)。

【讨论】:

以上是关于我应该使用 TCP 还是 UDP 数据包来控制无人机?的主要内容,如果未能解决你的问题,请参考以下文章

我应该使用TCP还是UDP? [关闭]

处理实时游戏中的网络丢包 - TCP 和 UDP

HoloLens2学习基于TCP/IP的无人机操控飞行

HoloLens2学习基于TCP/IP的无人机操控飞行

HoloLens2学习基于TCP/IP的无人机操控飞行

TCP/IP 协议图--传输层中的 TCP 和 UDP