hakoniwa-px4sim icon indicating copy to clipboard operation
hakoniwa-px4sim copied to clipboard

センサ追加

Open tmori opened this issue 2 years ago • 7 comments

シミュレータは真の値を返すことができるが、本物は返せない。 本物の気持ちになって、センサモデルの再現が必要。

  • [ ] 磁気センサー
  • [ ] ジャイロセンサー
  • [ ] 加速度センサー
  • [x] #146

tmori avatar Jan 29 '24 05:01 tmori

センサ 用途 PX4 SITL 箱庭
RGBカメラ 可視光スペクトルの画像をキャプチャ ×
サーマルカメラ 熱を検知し熱画像を生成 × ×
赤外線カメラ 赤外線スペクトルを捉え夜間監視や熱源検出に有効 × ×
多スペクトルセンサー 植生の健康状態監視や土地管理に有効 × ×
LiDAR レーザーを利用した距離測定と精密な3Dマッピング ×
超音波センサー 超音波を利用した障害物との距離測定 × ×
電波高度計 電波を利用した高度測定 × ×
レーダーセンサー ラジオ波を利用した物体検出 × ×
光学フローセンサー 地表のテクスチャを利用したドローンの動き検出 ×
GPSセンサー 衛星を利用した地理的な位置情報の提供
気圧センサー 気圧の変化を測定し高度情報を提供
ジャイロセンサー ドローンの姿勢変化を測定
磁気センサー 地球の磁場を測定し方向を判定
加速度センサー ドローンの加速度を測定
温度センサー 動作中の温度上昇を測定しオーバーヒートの可能性を検知 × ×
バッテリーセンサー バッテリーの充電量を計測 × ×

tmori avatar Feb 03 '24 22:02 tmori

こういうのを考えていたら、バッテリーとバッテリセーサーが欲しくなった。

image

偵察小型ドローン使って、調査対象のところを移動させる。この際、センシングデータを箱庭空間に通知し続けると、勝手に、箱庭空間内で、調査対象の空間が再現(自動生成)されてくる。そして、ARアプリでその空間に入って、歩き回る感じ。

ただし、実機のバッテリーが切れると落ちちゃうから、自動で戻って充電するような運用が必要。 そこの連携を箱庭でやるというのはアリだなと思った。ドローンを使ったシステムの連続稼働の試験空間として。 多分、充電させるための機器とかロボットとの連携が必要になって、シミュレーションハブとしての箱庭の本領発揮ができる。

充電器のロボットが着陸地点まで、お迎えに行くとか面白そう。

tmori avatar Feb 04 '24 02:02 tmori

なので、まずは、バッテリーがリニアに減るダイナミクスで考えて、バッテリー残量をPX4に通知するとともに、ローターのダイナミクスにも影響を与えるようにする系を作りたくなった。

バッテリーが減ると、ある閾値からローターの回転数が減衰してく感じかな?

tmori avatar Feb 04 '24 02:02 tmori

ローターと関連づくと、ドローンの動きにも影響を与えるからシミュレーションの見た目的にもわかりやすい。

センサの性能特性の見せ方として、バッテリー消費とかも関係性として見せれたりして。

tmori avatar Feb 04 '24 02:02 tmori

MAVLINK

https://mavlink.io/en/messages/common.html#BATTERY_STATUS

PX4 およびその他の MAVLink 対応システムでバッテリーの残量を通知するためには、BATTERY_STATUS MAVLink メッセージを使用します。このメッセージは、バッテリーの状態、電圧、消費電流、残量、およびその他の関連情報を送信するために設計されています。

BATTERY_STATUS メッセージ

BATTERY_STATUS メッセージのフィールドは次のとおりです:

  • id: バッテリーのID。
  • battery_function: バッテリーの主な機能(例:プロペラ用、AV用など)。
  • type: バッテリータイプ(LiPo、LiIon、NiMHなど)。
  • temperature: バッテリーの温度(単位は摂氏度)。未知の場合は15000を使用。
  • voltages: 各セルの電圧(ミリボルト単位)。未使用のセルはUINT16_MAXで埋めます。
  • current_battery: 現在のバッテリー消費電流(10mA単位)。
  • current_consumed: 消費された電流の合計(mAh単位)。
  • energy_consumed: 消費されたエネルギーの合計(10J単位)。
  • battery_remaining: 残りのバッテリー容量(パーセンテージ)。正確なパーセント値が不明な場合は-1。

バッテリーの残量を PX4 に通知するには、以下の手順に従います:

  1. BATTERY_STATUS メッセージを適切に設定します。たとえば、バッテリー残量を 75% と報告する場合、battery_remaining フィールドを 75 に設定します。
  2. 設定されたメッセージを MAVLink 通信プロトコルを使用して PX4 に送信します。

このプロセスは、実際のシステム統合やテストの際に MAVLink ライブラリ(C、Python など)を使用して実装されます。PX4 や MAVLink には、これらのメッセージを生成、送信、および受信するための詳細なドキュメントと API が用意されています。シミュレーション環境でこれをテストする際には、適切な MAVLink ライブラリを使用して BATTERY_STATUS メッセージを送信するコードを書くことになるでしょう。

tmori avatar Feb 04 '24 05:02 tmori

PX4側の情報

https://github.com/PX4/docs.px4.io/blob/master/v1.10/ja/getting_started/px4_basic_concepts.md#%E3%83%90%E3%83%83%E3%83%86%E3%83%AA%E3%83%BC%E5%8B%95%E5%8A%9B%E6%BA%90

https://docs.px4.io/main/en/config/battery.html#battery-and-power-module-setup

tmori avatar Feb 04 '24 05:02 tmori

ローターの電力消費は回転数の3乗になるらしい。

ドローンの製作と制御を学べる教材の研究

tmori avatar Feb 04 '24 05:02 tmori