1. 23 Aug, 2021 1 commit
  2. 17 Jun, 2021 1 commit
    • Daniel Agar's avatar
      sensors: fix IMU init race condition · 76a86175
      Daniel Agar authored
       - IMU init requires valid published data (device ids, etc)
       - orb_group_count will include advertised instances before data is published, so this can't be used to throttle IMU init attempts
      76a86175
  3. 07 Jun, 2021 1 commit
  4. 11 Jan, 2021 1 commit
    • Daniel Agar's avatar
      rate limit most parameter_update subscriptions · 967d35a6
      Daniel Agar authored
       - parameter updates can be quite expensive because they trigger nearly all modules to reload all of their parameters immediately
       - limit modules from updating faster than once per second
      967d35a6
  5. 04 Jan, 2021 1 commit
    • Daniel Agar's avatar
      px4_work_queue: directly support SITL lockstep · 98cff947
      Daniel Agar authored
       - the purpose is to ensure that every WorkItem (and WorkItems scheduled
      by WorkItems) is allowed to run to completion every step
       - per workqueue register a lockstep component whenever a work item is
      added (if not already registered)
       - once the work queue is empty unregister component
      98cff947
  6. 27 Dec, 2020 1 commit
  7. 28 Oct, 2020 1 commit
    • Daniel Agar's avatar
      ekf2 selector fix SITL lockstep · 2c874f1c
      Daniel Agar authored
       - ekf2 selector don't register lockstep until first attitude publication
       - sensors module register lockstep component
       - enable multi-EKF2 in SITL
      2c874f1c
  8. 27 Oct, 2020 1 commit
    • Daniel Agar's avatar
      Multi-EKF support (ekf2) · 0f411d68
      Daniel Agar authored
      
      
       - ekf2 can now run in multi-instance mode (currently up to 9 instances)
          - in multi mode all estimates are published to alternate topics (eg estimator_attitude instead of vehicle_attitude)
       - new ekf2 selector runs in multi-instance mode to monitor and compare all instances, selecting a primary (eg N x estimator_attitude => vehicle_attitude)
       - sensors module accel & gyro inconsistency checks are now relative to the mean of all instances, rather than the current primary (when active ekf2 selector is responsible for choosing primary accel & gyro)
       - existing consumers of estimator_status must check estimator_selector_status to select current primary instance status
       - ekf2 single instance mode is still fully supported and the default
      
      Co-authored-by: default avatarPaul Riseborough <gncsolns@gmail.com>
      0f411d68
  9. 12 Oct, 2020 1 commit
  10. 08 Oct, 2020 1 commit
  11. 06 Oct, 2020 1 commit
  12. 29 Sep, 2020 1 commit
  13. 26 Sep, 2020 1 commit
  14. 15 Sep, 2020 1 commit
  15. 07 Sep, 2020 1 commit
  16. 21 Aug, 2020 2 commits
  17. 17 Jul, 2020 1 commit
  18. 14 Jul, 2020 1 commit
  19. 18 Jun, 2020 1 commit
    • Daniel Agar's avatar
      accel and gyro calibration refactor and cleanup · f55ed099
      Daniel Agar authored
       - remove all remaining IOCTLs for accel and gyro and handle all calibration entirely in sensors module with parameters
       - sensor_accel and sensor_gyro are now always raw sensor data
       - calibration procedures no longer need to first clear existing values before starting
       - temperature calibration (TC) remove all scale (SCL) parameters
          - gyro and baro scale are completely unused
          - regular accel calibration scale can be used (CAL_ACC*_xSCALE) instead of TC scale
      f55ed099
  20. 01 Jun, 2020 1 commit
  21. 30 May, 2020 1 commit
    • Daniel Agar's avatar
      move IMU integration out of drivers to sensors hub to handle accel/gyro sync · e34bdb4b
      Daniel Agar authored
       - IMU integration move from drivers (PX4Accelerometer/PX4Gyroscope) to sensors/vehicle_imu 
       - sensors: voted_sensors_update now consumes vehicle_imu
       - delete sensor_accel_integrated, sensor_gyro_integrated
       - merge sensor_accel_status/sensor_gyro_status into vehicle_imu_status
       - sensors status output minor improvements (ordering, whitespace, show selected sensor device id and instance)
      e34bdb4b
  22. 28 Apr, 2020 2 commits
  23. 01 Apr, 2020 1 commit
  24. 26 Mar, 2020 1 commit
  25. 20 Mar, 2020 1 commit
  26. 12 Mar, 2020 1 commit
  27. 11 Mar, 2020 1 commit
    • Daniel Agar's avatar
      sensors: move to WQ · 9cd8bb4f
      Daniel Agar authored
      Running the sensors module out of the same WQ thread as the estimator, position, and attitude controllers is a bit safer and prevents potential priority and starvation issues. There is a very small increase in latency (~50 us) between sensors and ekf2 execution (on average). This also saves a little bit of memory (~ 3 kB) and cpu (~1-1.5% depending on the board).
      9cd8bb4f
  28. 04 Feb, 2020 1 commit
  29. 22 Jan, 2020 1 commit
  30. 13 Jan, 2020 1 commit
    • Daniel Agar's avatar
      DriverFramework purge · de4f5949
      Daniel Agar authored
      The bulk of this change was tightly coupled and needed to be deleted in one pass. Some of the smaller changes were things that broke as a result of the initial purge and subsequently fixed by further eradicating unnecessary platform differences. Finally, I deleted any dead code I came across in the related files I touched while going through everything.
      
       - DriverFramework (src/lib/DriverFramework submodule) completely removed
       - added dspal submodule in qurt platform (was brought in via DriverFramework)
       - all df wrapper drivers removed
       - all boards using df wrapper drivers updated to use in tree equivalents
       - unused empty arch/board.h on posix and qurt removed
       - unused IOCTLs removed (pub block, priv, etc)
       - Integrator delete methods only used from df wrapper drivers
       - commander: sensor calibration use "NuttX version" everywhere for now
       - sensors: update to px4_{open, read, close} instead of DevMgr wrapper (adc open for analog differential pressure)
       - battery_status: update to px4_{open, read, close} instead of DevMgr wrapper (adc open for analog differential pressure)
       - cdev cleanup conflicting typedefs and names with actual OS (pollevent_t, etc)
       - load_mon and top remove from linux boards (unused)
       - delete unused PX4_MAIN_FUNCTION
       - delete unused getreg32 macro
       - delete unused SIOCDEVPRIVATE define
       - named each platform tasks consistently
       - posix list_devices and list_topics removed (list_files now shows all virtual files)
      de4f5949
  31. 05 Dec, 2019 3 commits
  32. 24 Nov, 2019 1 commit
  33. 30 Oct, 2019 1 commit
    • Beat Küng's avatar
      src/platforms: move all headers to platforms/common/include/px4_platform_common · 3198610f
      Beat Küng authored
      and remove the px4_ prefix, except for px4_config.h.
      
      command to update includes:
      for k in app.h atomic.h cli.h console_buffer.h defines.h getopt.h i2c.h init.h log.h micro_hal.h module.h module_params.h param.h param_macros.h posix.h sem.h sem.hpp shmem.h shutdown.h tasks.h time.h workqueue.h; do for i in $(grep -rl 'include <px4_'$k src platforms boards); do sed -i 's/#include <px4_'$k'/#include <px4_platform_common\/'$k/ $i; done; done
      for in $(grep -rl 'include <px4_config.h' src platforms boards); do sed -i 's/#include <px4_config.h/#include <px4_platform_common\/px4_config.h'/ $i; done
      
      Transitional headers for submodules are added (px4_{defines,log,time}.h)
      3198610f
  34. 28 Oct, 2019 1 commit
  35. 21 Oct, 2019 1 commit
  36. 29 Sep, 2019 1 commit