Mavros: Mavros トピックの更新率が低い

作成日 2019年02月20日  ·  7コメント  ·  ソース: mavlink/mavros

これはバグと機能のトラッカーのみです。使用してください。
バグを報告したり、機能をリクエストしたりするため。


問題の詳細

みなさん、こんにちは、
私は屋内ドローン プロジェクトに取り組んでいますが、最近、何か悪いことに気付きました。
トピックは非常に低いレート (1Hz 未満) で更新されています (オフボード モードでドローンを制御するために重要なトピック mavros/local_position/pose を含む)。
ドローンはリアルタイムで正確な高度を認識しないため、setposition トピックによって飛行制御が難しくなっています。 このテスト アルゴリズムをテストすると (1 メートル飛行してその位置を保持する)、Gazebo シミュレーターで Mavros トピックが良い速度で更新されています。
問題がテレメトリ システムにあるかどうかを確認するために、QGroundControl で情報更新レートをテストしました。ドローンを動かすと、情報は瞬時に更新されます。 それならテレメトリーシステム(3DR Radio Link)は問題ないと思います。

このコマンドで mavros を起動しています。

roslaunch mavros px4.launch fcu_url:=/dev/ttyUSB0:57600

この問題 (テレメトリを使用したトピックの更新で遅延が大きい) を解決する方法があれば、教えてください。

MAVROSのバージョンとプラットフォーム

マブロス: 0.18.4
ROS: ルナ 1.13.7
Ubuntu: 16.04

オートパイロットのタイプとバージョン

[ ] ArduPilot
【×】PX4

バージョン: 3.7.1 (PX4FMU_V3) Pixhawk 2

ノードログ

roslaunch サーバーを起動しましたhttp://lucas-Inspiron-7460 :40689/

概要

パラメーターをクリア

  • /マブロス/

パラメーター

  • /mavros/cmd/use_comp_id_system_control: 偽
  • /mavros/conn/heartbeat_rate: 1.0
  • /mavros/conn/system_time_rate: 1.0
  • /mavros/conn/timeout: 10.0
  • /mavros/conn/timesync_rate: 10.0
  • /mavros/distance_sensor/hrlv_ez4_pub/field_of_view: 0.0
  • /mavros/distance_sensor/hrlv_ez4_pub/frame_id: hrlv_ez4_sonar
  • /mavros/distance_sensor/hrlv_ez4_pub/id: 0
  • /mavros/distance_sensor/hrlv_ez4_pub/orientation: PITCH_270
  • /mavros/distance_sensor/hrlv_ez4_pub/send_tf: 真
  • /mavros/distance_sensor/hrlv_ez4_pub/sensor_position/x: 0.0
  • /mavros/distance_sensor/hrlv_ez4_pub/sensor_position/y: 0.0
  • /mavros/distance_sensor/hrlv_ez4_pub/sensor_position/z: -0.1
  • /mavros/distance_sensor/laser_1_sub/id: 3
  • /mavros/distance_sensor/laser_1_sub/orientation: PITCH_270
  • /mavros/distance_sensor/laser_1_sub/subscriber: True
  • /mavros/distance_sensor/lidarlite_pub/field_of_view: 0.0
  • /mavros/distance_sensor/lidarlite_pub/frame_id: Lidarlite_laser
  • /mavros/distance_sensor/lidarlite_pub/id: 1
  • /mavros/distance_sensor/lidarlite_pub/orientation: PITCH_270
  • /mavros/distance_sensor/lidarlite_pub/send_tf: 真
  • /mavros/distance_sensor/lidarlite_pub/sensor_position/x: 0.0
  • /mavros/distance_sensor/lidarlite_pub/sensor_position/y: 0.0
  • /mavros/distance_sensor/lidarlite_pub/sensor_position/z: -0.1
  • /mavros/distance_sensor/sonar_1_sub/id: 2
  • /mavros/distance_sensor/sonar_1_sub/orientation: PITCH_270
  • /mavros/distance_sensor/sonar_1_sub/subscriber: True
  • /mavros/fake_gps/eph: 2.0
  • /mavros/fake_gps/epv: 2.0
  • /mavros/fake_gps/fix_type: 3
  • /mavros/fake_gps/geo_origin/alt: 408.0
  • /mavros/fake_gps/geo_origin/lat: 47.3667
  • /mavros/fake_gps/geo_origin/lon: 8.55
  • /mavros/fake_gps/gps_rate: 5.0
  • /mavros/fake_gps/mocap_transform: 真
  • /mavros/fake_gps/satellites_visible: 5
  • /mavros/fake_gps/tf/child_frame_id: 修正
  • /mavros/fake_gps/tf/frame_id: マップ
  • /mavros/fake_gps/tf/listen: 偽
  • /mavros/fake_gps/tf/rate_limit: 10.0
  • /mavros/fake_gps/tf/send: 偽
  • /mavros/fake_gps/use_mocap: 真
  • /mavros/fake_gps/use_vision: 偽
  • /mavros/fcu_protocol: v2.0
  • /mavros/fcu_url: /dev/ttyUSB0:57600
  • /mavros/gcs_url:
  • /mavros/global_position/child_frame_id: base_link
  • /mavros/global_position/frame_id: マップ
  • /mavros/global_position/rot_covariance: 99999.0
  • /mavros/global_position/tf/child_frame_id: base_link
  • /mavros/global_position/tf/frame_id: マップ
  • /mavros/global_position/tf/global_frame_id: 地球
  • /mavros/global_position/tf/send: False
  • /mavros/global_position/use_relative_alt: 真
  • /mavros/image/frame_id: px4flow
  • /mavros/imu/angular_velocity_stdev: 0.000349065850399
  • /mavros/imu/frame_id: base_link
  • /mavros/imu/linear_acceleration_stdev: 0.0003
  • /mavros/imu/ Magnetic_stdev: 0.0
  • /mavros/imu/orientation_stdev: 1.0
  • /mavros/local_position/frame_id: マップ
  • /mavros/local_position/tf/child_frame_id: base_link
  • /mavros/local_position/tf/frame_id: マップ
  • /mavros/local_position/tf/send: False
  • /mavros/local_position/tf/send_fcu: 偽
  • /mavros/mission/pull_after_gcs: 真
  • /mavros/mocap/use_pose: 真
  • /mavros/mocap/use_tf: 偽
  • /mavros/odometry/estimator_type: 3
  • /mavros/odometry/frame_tf/desired_frame: ned
  • /mavros/plugin_blacklist: ['safety_area', '...
  • /mavros/plugin_whitelist: ['sys_*', 'comman...
  • /mavros/px4flow/frame_id: px4flow
  • /mavros/px4flow/ranger_fov: 0.118682389136
  • /mavros/px4flow/ranger_max_range: 5.0
  • /mavros/px4flow/ranger_min_range: 0.3
  • /mavros/safety_area/p1/x: 1.0
  • /mavros/safety_area/p1/y: 1.0
  • /mavros/safety_area/p1/z: 1.0
  • /mavros/safety_area/p2/x: -1.0
  • /mavros/safety_area/p2/y: -1.0
  • /mavros/safety_area/p2/z: -1.0
  • /mavros/setpoint_accel/send_force: False
  • /mavros/setpoint_attitude/reverse_thrust: 偽
  • /mavros/setpoint_attitude/tf/child_frame_id: target_attitude
  • /mavros/setpoint_attitude/tf/frame_id: マップ
  • /mavros/setpoint_attitude/tf/listen: False
  • /mavros/setpoint_attitude/tf/rate_limit: 50.0
  • /mavros/setpoint_attitude/use_quaternion: 偽
  • /mavros/setpoint_position/mav_frame: LOCAL_NED
  • /mavros/setpoint_position/tf/child_frame_id: target_position
  • /mavros/setpoint_position/tf/frame_id: マップ
  • /mavros/setpoint_position/tf/listen: False
  • /mavros/setpoint_position/tf/rate_limit: 50.0
  • /mavros/setpoint_velocity/mav_frame: LOCAL_NED
  • /mavros/startup_px4_usb_quirk: 真
  • /mavros/sys/disable_diag: 偽
  • /mavros/sys/min_電圧: 10.0
  • /mavros/target_component_id: 1
  • /mavros/target_system_id: 1
  • /mavros/tdr_radio/low_rssi: 40
  • /mavros/time/time_ref_source: fcu
  • /mavros/time/timesync_avg_alpha: 0.6
  • /mavros/time/timesync_mode: MAVLINK
  • /mavros/vibration/frame_id: base_link
  • /mavros/vision_pose/tf/child_frame_id: vision_estimate
  • /mavros/vision_pose/tf/frame_id: マップ
  • /mavros/vision_pose/tf/listen: False
  • /mavros/vision_pose/tf/rate_limit: 10.0
  • /mavros/vision_speed/listen_twist: 偽
  • /rosdistro: 月
  • /rosversion: 1.13.7

ノード
/
mavros (mavros/mavros_node)

自動起動する新しいマスター
プロセス [マスター]: pid で開始 [2541]
ROS_MASTER_URI= http://localhost :11311

/run_id を 9a6d39f0-3495-11e9-b342-d80f99bfeedd に設定
プロセス [rosout-1]: pid で開始 [2554]
コアサービス開始 [/rosout]
プロセス [mavros-2]: pid で開始 [2558]

診断

```
ヘッダ:
シーケンス: 2138
切手:
秒: 1550618079
秒: 476350000
frame_id: ''
状態:


  • レベル: 0
    名前: "mavros: FCU 接続"
    メッセージ: 「接続されました」
    hardware_id: "/dev/ttyUSB0:57600"
    値:



    • キー: 「受信パケット:」

      値:「3164」



    • キー: 「ドロップされたパケット:」

      値: 「0」



    • キー: 「バッファ オーバーラン:」

      値: 「0」



    • キー: "解析エラー:"

      値: 「0」



    • キー: "Rx シーケンス番号:"

      値: 「40」



    • キー: "Tx シーケンス番号:"

      値: 「56」



    • キー: "Rx 合計バイト数:"

      値: 「2350842」



    • キー: "Tx 合計バイト数:"

      値:「915507」



    • キー: 「受信速度:」

      値: 「661.000000」



    • キー: 「送信速度:」

      値: 「320.000000」


  • レベル2
    名前: "mavros: GPS"
    メッセージ: 「衛星がありません」
    hardware_id: "/dev/ttyUSB0:57600"
    値:



    • キー: 「衛星が見える」

      値: 「0」



    • キー: 「固定タイプ」

      値: 「0」



    • キー: "EPH (m)"

      値: 「99.99」



    • キー: "EPV (m)"

      値: 「99.99」


  • レベル: 0
    名前:「マブロス:ハートビート」
    メッセージ:「通常」
    hardware_id: "/dev/ttyUSB0:57600"
    値:



    • key: 「起動時からの心拍数」

      値:「2793」



    • キー: 「周波数 (Hz)」

      値: 「0.999995」



    • キー: 「車両タイプ」

      値: 「クアドローター」



    • キー: 「自動操縦タイプ」

      値: 「PX4 オートパイロット」



    • キー: 「モード」

      値: 「手動」



    • キー: 「システムステータス」

      値: 「スタンバイ」


  • レベル: 0
    名前: "mavros: システム"
    メッセージ:「通常」
    hardware_id: "/dev/ttyUSB0:57600"
    値:



    • キー: 「センサーの存在」

      値:「0x00000000」



    • キー: 「センサー有効」

      値:「0x00000000」



    • キー: 「センサーヘルス」

      値:「0x00000000」



    • キー: 「CPU負荷(%)」

      値: 「28.8」



    • key: 「ドロップ率(%)」

      値: 「0.0」



    • キー: 「エラー通信」

      値: 「0」



    • キー: 「エラー数 #1」

      値: 「0」



    • key: 「エラーカウント #2」

      値: 「0」



    • キー: 「エラーカウント #3」

      値: 「0」



    • key: 「エラーカウント #4」

      値: 「0」


  • レベル: 0
    名前:「マブロス:バッテリー」
    メッセージ:「通常」
    hardware_id: "/dev/ttyUSB0:57600"
    値:



    • キー: 「電圧」

      値: 「10.18」



    • キー: 「現在」

      値: 「0.0」



    • キー:「残り」

      値: 「0.0」


  • レベル2
    名前: "mavros: Time Sync"
    メッセージ: 「記録されたイベントはありません。」
    hardware_id: "/dev/ttyUSB0:57600"
    値:



    • キー: 「起動時からの Timesyncs」

      値: 「0」



    • キー: 「周波数 (Hz)」

      値: 「0.000000」



    • キー: 「最後の dt (ms)」

      値: 「9.376617」



    • キー: 「平均 dt (ms)」

      値: 「0.000000」



    • キー: 「最終システム時刻 (秒)」

      値: 「3023.959504000」



    • キー: "時間オフセット (秒)"

値: 「1550615055.404127836」

IDを確認


OK。 1:1からメッセージをいただきました。

1 件のアドレスから 371 件のメッセージを受信しました
sys:compメッセージのリスト

1:1 0、1、36、230、32、105、74、141、77、111、241、147、245、4、24、132、106、30

助けてくれてありがとう!

question

最も参考になるコメント

この問題は、ボー レート パラメータを変更せずに、パラメータ「MAV_0_RATE」(1200 (デフォルト) から 57600) を変更するだけで解決しました。 以前は SER_TEL1_BAUD パラメータを (57600 から 115200 に) 変更しようとしていましたが、問題は解決せず、テレメトリはこのボー レートでは機能しませんでした。 次に、MAV_0_RATE だけをテストしたところ、うまくいきました。

全てのコメント7件

そのテレメトリ リンクのボー レートでは、これらの種類のリンクの PX4 のリンク レート プロファイルが非常に低いことを考えると、これらのレートでデータを取得していることは完全に正常に見えます。 https://docs.px4.io/en/peripherals/serial_configuration.htmlに従って、リンクのボー レートを 115200 に設定してみます。

TSC21 様

返信ありがとうございます。

私はあなたが勧めた方法に従いましたが、成功しませんでした。 リンクのボーレートを 115200 に変更すると、テレメトリ経由でドローンにアクセスできなくなります。 QGroundControl には、「車両接続の待機中」のみが表示されます。 ここに投稿したリンクをたどろうとしましたが、これらのパラメーターを変更しました (ボーレート リンクの変更を目的としています)。

SER_TEL1_BAUD - 「57600」から「115200」まで
MAV_0_RATE - 「1200」から「115200」まで
MAV_0_MODE - 「0」から「1」へ (通常 -> カスタム)

この手順に何か問題があれば、教えてください。

どうもありがとうございました。

この件はPX4 Slackに持ってきてください。

この問題は、ボー レート パラメータを変更せずに、パラメータ「MAV_0_RATE」(1200 (デフォルト) から 57600) を変更するだけで解決しました。 以前は SER_TEL1_BAUD パラメータを (57600 から 115200 に) 変更しようとしていましたが、問題は解決せず、テレメトリはこのボー レートでは機能しませんでした。 次に、MAV_0_RATE だけをテストしたところ、うまくいきました。

この問題は、ボー レート パラメータを変更せずに、パラメータ「MAV_0_RATE」(1200 (デフォルト) から 57600) を変更するだけで解決しました。 以前は SER_TEL1_BAUD パラメータを (57600 から 115200 に) 変更しようとしていましたが、問題は解決せず、テレメトリはこのボー レートでは機能しませんでした。 次に、MAV_0_RATE だけをテストしたところ、うまくいきました。

こんにちは、どのようにして MAV_0_RATE を変更しましたか? Mission Planner のパラメーター リストで探しましたが、見つかりません。

この問題は、ボー レート パラメータを変更せずに、パラメータ「MAV_0_RATE」(1200 (デフォルト) から 57600) を変更するだけで解決しました。 以前は SER_TEL1_BAUD パラメータを (57600 から 115200 に) 変更しようとしていましたが、問題は解決せず、テレメトリはこのボー レートでは機能しませんでした。 次に、MAV_0_RATE だけをテストしたところ、うまくいきました。

こんにちは、どのようにして MAV_0_RATE を変更しましたか? Mission Planner のパラメーター リストで探しましたが、見つかりません。

実行している PX4 のバージョンによって異なります。 QGroundControl でこのパラメータにアクセスしました。 ここでパラメータを確認できます。

https://docs.px4.io/v1.9.0/en/advanced_config/parameter_reference.html

QGroundControl でパラメーターが見つからない場合は、PX4 コマンド ラインでこのパラメーターを設定することをお勧めします。

まだ解決策を探している人のために。

オドメトリーと HIGHRES_IMU メッセージの公開率を上げたかったのです。

この問題を解決した方法は次のとおりです。

1- QGroundControl でこれらの PX4 パラメータを変更してシリアル通信のボー レートを上げ、UAV を再起動します。

SER_TEL1_BAUD - from "57600" to "115200" 
MAV_0_RATE - from "1200" to "115200" 
MAV_0_MODE - from "0" to "1" (normal -> custom) 

参考資料:

https://docs.px4.io/master/en/peripherals/serial_configuration.html#how -to-configure-a-port

https://github.com/mavlink/mavros/issues/1182#issuecomment -465672331

2- Mavlink が ODOMETRY/HIGHRES_IMU メッセージを公開するレートを変更します。これは、PX4 の microSD カードにこのコマンドを書き込むことで実行できます。 どうやって?

  • Pixhawk からカードを取り外し、PC に接続します。 次に ./fs/etc/extras.txt に移動します。

  • このディレクトリ (またはその一部) が存在しない場合は、作成します。 次に、extras.txt 内に次のように記述します。

mavlink stream -d /dev/ttyS0 -s HIGHRES_IMU -r 200 
mavlink stream -d /dev/ttyS0 -s ODOMETRY -r 200 

参照:
https://dev.px4.io/v1.9.0/en/concept/system_startup.html#starting -additional-applications

完全を期すために、ここに私のセットアップの詳細があります。

MAVROSのバージョンとプラットフォーム

マブロス: 1.4

ROS:メロディック

Ubuntu: 18.04

オートパイロットのタイプとバージョン

PX4

バージョン: v1.10.1

PX4_FMU_V5 (V500)

ナットX、v7.29.0

このページは役に立ちましたか?
0 / 5 - 0 評価