Testing ESPNOW

ESP32の etherボード とESP32の センサボード でESPNOWでの通信を試して挙動を調べました. 全体の構成は

esp32 ether-espnow brigde

でPCの上ではarducopterとテスト用のUDPサーバの両方を動かして試してみました.

結果

現在のESP32のespnowは次のような挙動をするようです.

  • 近接で通信した場合latencyは2ms位で安定している
  • 送信と送信の間で間隔を空けることが必要で送信のみ繰り返す場合で~2msが必要に見える
  • 受信を行うとこの間隔が影響される

実際のテストではセンサボードからespnowでパケットを投げ送信終了のコールバックが終わるまで待つようにしました. 送信のみの場合~500Hzぐらいのレートで~70byteぐらいのデータが送信できていました.

100Hzのレートで~30byteほどを受信するようにすると送信側のレートは10%以上低下しました. 送受の切り替え時にデッドタイムがあることを想像させるような挙動ですが、espnowのライブラリはソースがないので確かなことはわかりません.

このセンサボードからはIMUなどのパケットが1msに40byte程度でてくるのですが受信も行いながらだとパケットが最初に期待していたようなlatencyでは送り切れない状態が発生しています. 生のlatencyや処理コスト的にespnowは魅力的なのですが、リモートセンサ/アクチュエータ方式でコプターを飛ばすのは今の所少し厳しい感じです.

links

social