ModalAI Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    How to Fuse VL53L1X Rangefinder for Height-Above-Ground (HAGL) Estimation with PX4 on VOXL2

    Ask your questions right here!
    1
    1
    7
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      Sarika Sharma
      last edited by

      Hi ModalAI Team,

      I am working with a VOXL2 Mini test fixture (TF-M0104) and trying to integrate a VL53L1X ToF rangefinder with PX4 for altitude hold / height-above-ground estimation.

      My goal is for PX4 EKF2 to fuse the rangefinder data so that the drone can use the sensor for altitude estimation (dist_bottom / HAGL).

      Sensor configuration:

      /etc/modalai/voxl-rangefinder-server.conf

      {
      "i2c_bus": 0,
      "vl53l1x_timing_budget_ms": 50,
      "id_for_mavlink": 0,
      "sensors": [{
      "enabled": true,
      "sensor_id": 0,
      "type": "TOF_VL53L1X",
      "fov_deg": 15,
      "range_max_m": 3,
      "location_wrt_body": [0,0,0],
      "direction_wrt_body": [0,0,1],
      "is_on_mux": false
      }]
      }
      PX4 parameters
      EKF2_HGT_REF = 2
      EKF2_RNG_CTRL = 1
      EKF2_RNG_A_HMAX = 11.5 ft
      SENS_EN_VL53L1X : 1
      Sensor data received in PX4
      px4-listener distance_sensor

      current_distance: 0.62
      signal_quality: 100
      orientation: 25

      So PX4 is receiving the rangefinder data correctly.

      However, when I check:

      voxl2-mini-test-fixture (TF-M0104):/etc/modalai$ px4-listener vehicle_local_position

      TOPIC: vehicle_local_position
      vehicle_local_position
      timestamp: 1258315007 (0.002534 seconds ago)
      timestamp_sample: 1258313140 (1867 us before timestamp)
      ref_timestamp: 0
      ref_lat: nan
      ref_lon: nan
      x: -58.15529
      y: -29.38294
      z: -43.47373
      delta_xy: [-8.27161, 3.48610]
      delta_z: 0.00000
      vx: -5.77044
      vy: -8.23159
      vz: 0.09748
      z_deriv: 0.09754
      delta_vxy: [-0.89175, 1.40937]
      delta_vz: 0.65828
      ax: 1.33592
      ay: -1.74908
      az: 0.01860
      heading: 2.12604
      delta_heading: 1.62808
      ref_alt: nan
      dist_bottom: 0.10000
      eph: 0.61074
      epv: 0.20321
      evh: 0.41361
      evv: 0.11114
      vxy_max: inf
      vz_max: inf
      hagl_min: inf
      hagl_max: inf
      xy_valid: True
      z_valid: True
      v_xy_valid: True
      v_z_valid: True
      xy_reset_counter: 32
      z_reset_counter: 6
      vxy_reset_counter: 37
      vz_reset_counter: 26
      heading_reset_counter: 17
      heading_good_for_control: False
      xy_global: False
      z_global: False
      dist_bottom_valid: False
      dist_bottom_sensor_bitfield: 0

      dead_reckoning: True

      which means EKF2 is not fusing the rangefinder measurement.

      Am I missing any configuration steps to enable rangefinder fusion for altitude hold on VOXL2?

      1 Reply Last reply Reply Quote 0
      • First post
        Last post
      Powered by NodeBB | Contributors