2015-05-09 19 views
2

我讀了一篇有關Parrot的AR Drone 2.0編碼的文章。在此代碼中,他們使用nodeJS與無人機通話。因此,代碼開始了與創建的流/dev/ttyO0AR使用的dev/ttyO0 Drone 2.0 - Reverse Enginnering

我開始了學習更多關於Linux的功能性的背景下,想知道:

  • 你怎麼最初發現該開發/正在使用ttyO0,例如在linux上運行的無人機上。我認爲這是一種逆向工程,但是正在使用什麼工具或命令?
  • 當我想對無人機等系統進行逆向工程並找出哪些命令正在發送時,有沒有類似「嗅探器」來查找正在發送的命令?

我知道這不是一個簡短和容易的答案,但我會很樂意瞭解更多或找出,在哪裏瞭解這一點。但最初有關尋找合適設備的問題會非常有趣。

謝謝

回答

2

我不知道回答你的問題的第一部分,但我可以解決第二部分。

是的,AR.Drone對無人機和控制器應用程序之間的所有通信都使用TCP和UDP,包括命令,遙測和視頻。您可以使用標準網絡嗅探器,如tcpdump或Wireshark。當您連接到無人機時,其默認IP地址是192.168.1.1。配置嗅探器來捕獲該地址的所有流量。以下是你可以看到一些亮點:

  • 命令/「AT」通訊科,UDP端口5556:此端口用於將命令發送到無人機。命令爲ASCII,看起來像AT*...,例如AT*REF=7,256AT*PCMD=7,1,-1110651699,0,0,1050253722AR.Drone Developer Guide的第6部分描述了大多數(但不是全部)的命令。

  • Navdata,端口5554上的UDP:這是從無人機發送的二進制編碼數據,包含傳感器數據和有關無人機狀態的信息。它包括諸如空氣壓力,高度估計,位置估計,飛行模式和GPS(如果您的無人機裝備有一個)。由於您提到了Javascript,因此node-ar-drone庫中的文件包含解析navdata的代碼。

  • 端口5555上的TCP視頻:這是來自無人機的實時視頻,採用幾乎不太完全的H264格式,稱爲PaVE。格式在開發者指南第7.3節中有說明,大多數與AR.Drones交談的庫都可以解析格式。

您可能會注意到的另一件事:

  • FTP:官方控制器應用程序使用標準的FTP到星曆文件發送到包含信息,有助於GPS獲得更快的鎖定無人機。