センサ追加
シミュレータは真の値を返すことができるが、本物は返せない。 本物の気持ちになって、センサモデルの再現が必要。
- [ ] 磁気センサー
- [ ] ジャイロセンサー
- [ ] 加速度センサー
- [x] #146
| センサ | 用途 | PX4 SITL | 箱庭 |
|---|---|---|---|
| RGBカメラ | 可視光スペクトルの画像をキャプチャ | × | ○ |
| サーマルカメラ | 熱を検知し熱画像を生成 | × | × |
| 赤外線カメラ | 赤外線スペクトルを捉え夜間監視や熱源検出に有効 | × | × |
| 多スペクトルセンサー | 植生の健康状態監視や土地管理に有効 | × | × |
| LiDAR | レーザーを利用した距離測定と精密な3Dマッピング | × | ○ |
| 超音波センサー | 超音波を利用した障害物との距離測定 | × | × |
| 電波高度計 | 電波を利用した高度測定 | × | × |
| レーダーセンサー | ラジオ波を利用した物体検出 | × | × |
| 光学フローセンサー | 地表のテクスチャを利用したドローンの動き検出 | ○ | × |
| GPSセンサー | 衛星を利用した地理的な位置情報の提供 | ○ | ○ |
| 気圧センサー | 気圧の変化を測定し高度情報を提供 | ○ | ○ |
| ジャイロセンサー | ドローンの姿勢変化を測定 | ○ | ○ |
| 磁気センサー | 地球の磁場を測定し方向を判定 | ○ | ○ |
| 加速度センサー | ドローンの加速度を測定 | ○ | ○ |
| 温度センサー | 動作中の温度上昇を測定しオーバーヒートの可能性を検知 | × | × |
| バッテリーセンサー | バッテリーの充電量を計測 | × | × |
こういうのを考えていたら、バッテリーとバッテリセーサーが欲しくなった。
偵察小型ドローン使って、調査対象のところを移動させる。この際、センシングデータを箱庭空間に通知し続けると、勝手に、箱庭空間内で、調査対象の空間が再現(自動生成)されてくる。そして、ARアプリでその空間に入って、歩き回る感じ。
ただし、実機のバッテリーが切れると落ちちゃうから、自動で戻って充電するような運用が必要。 そこの連携を箱庭でやるというのはアリだなと思った。ドローンを使ったシステムの連続稼働の試験空間として。 多分、充電させるための機器とかロボットとの連携が必要になって、シミュレーションハブとしての箱庭の本領発揮ができる。
充電器のロボットが着陸地点まで、お迎えに行くとか面白そう。
なので、まずは、バッテリーがリニアに減るダイナミクスで考えて、バッテリー残量をPX4に通知するとともに、ローターのダイナミクスにも影響を与えるようにする系を作りたくなった。
バッテリーが減ると、ある閾値からローターの回転数が減衰してく感じかな?
ローターと関連づくと、ドローンの動きにも影響を与えるからシミュレーションの見た目的にもわかりやすい。
センサの性能特性の見せ方として、バッテリー消費とかも関係性として見せれたりして。
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 に通知するには、以下の手順に従います:
-
BATTERY_STATUSメッセージを適切に設定します。たとえば、バッテリー残量を 75% と報告する場合、battery_remainingフィールドを 75 に設定します。 - 設定されたメッセージを MAVLink 通信プロトコルを使用して PX4 に送信します。
このプロセスは、実際のシステム統合やテストの際に MAVLink ライブラリ(C、Python など)を使用して実装されます。PX4 や MAVLink には、これらのメッセージを生成、送信、および受信するための詳細なドキュメントと API が用意されています。シミュレーション環境でこれをテストする際には、適切な MAVLink ライブラリを使用して BATTERY_STATUS メッセージを送信するコードを書くことになるでしょう。
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