dev/ttyO0 用于 AR Drone 2.0 - 逆向工程

dev/ttyO0 used in AR Drone 2.0 - Reverse Enginnering

我从 Parrot 阅读了一篇关于 AR Drone 2.0 编码的有趣文章。在这段代码中,他们使用 nodeJS 与无人机对话。因此,代码从创建到 /dev/ttyO0

的 Stream 开始

我开始了解更多关于 linux 功能的背景,并且想知道:

我知道这不是一个简短而简单的答案,但我很乐意了解更多相关信息或找出在哪里可以了解相关信息。但最初关于找到合适设备的问题会非常有趣。

谢谢

我不知道你问题第一部分的答案,但我可以回答第二部分。

是的,AR.Drone 使用 TCP 和 UDP 进行无人机和控制器应用程序之间的所有通信,包括命令、遥测和视频。您可以使用标准网络嗅探器,如 tcpdump 或 Wireshark。当您连接到无人机时,其默认 IP 地址为 192.168.1.1。配置嗅探器以捕获进出该地址的所有流量。以下是您可以看到的一些亮点:

  • Command/"AT" comms, UDP on port 5556: 该端口用于给无人机发送指令。命令采用 ASCII 格式,类似于 AT*...,例如 AT*REF=7,256AT*PCMD=7,1,-1110651699,0,0,1050253722AR.Drone Developer Guide 的第 6 节描述了大部分(但不是全部)命令。

  • Navdata,端口 5554 上的 UDP:这是从无人机发送的二进制编码数据,包含传感器数据和有关无人机状态的信息。它包括气压、高度估计、位置估计、飞行模式和 GPS(如果您的无人机配备了 GPS)等内容。由于您提到 Javascript,node-ar-drone 库中的文件 parseNavdata.js 包含解析导航数据的代码。

  • 视频,端口 5555 上的 TCP:这是来自无人机的实时视频,采用几乎但不完全是 H264 格式,称为 PaVE。该格式记录在开发人员指南的第 7.3 节中,大多数与 AR.Drone 对话的库都可以解析该格式。

您可能会注意到另一件事:

  • FTP:官方控制器应用程序使用标准 FTP 向无人机发送星历文件,其中包含有助于 GPS 更快锁定的信息。