PX4 Dev Call: April 20, 2022

April 20, 2022

Join us

Agenda

  • Community Announcement
  • Community Q&A
  • Weekly Overview
  • Project Updates
  • General Discussions
  • High priority queue
  • Release

:loudspeaker: Community Announcement


  • No deep technical discussions during the first 45 minutes of general call
  • CFP registration deadline extended till the end of Friday (April 22nd) this week!

Go apply now!!

  • The Dev Summit will be happening at the same time with other Linux Open Source Events!
  • After Party & Cocktails :cocktail:

:people_holding_hands: Community Q&A (No deep technical discussions)


Q.1 : Debug Consoles baud rate is quite low, why?

  • Current rate is a NuttX Default (57600), but probably won’t be updated since it’s dependent on NuttX.
  • You can however customize the rate freely!

Q.2 : Bootloader GPIO Initialization - @cdcross

  • In order to get safe/deterministic initialization of PWM (and other GPIO) outputs that avoid unintentional actuation under certain conditions, a PX4 application needs to safely initialize those GPIO during board init. See: PWM outputs go high for ~500ms on boot · Issue #19188 · PX4/PX4-Autopilot · GitHub
  • The bootloader (at least for some boards) does not share this initialization logic, nor does it have access to some of the timer channel configuration helpers/utility methods/classes due to being a C target, so to achieve the same safe GPIO init, a clumsy, hand-coded duplication of the init logic can be performed. See: PWM outputs go high for ~500ms on boot · Issue #19188 · PX4/PX4-Autopilot · GitHub
  • @dagar and @david_s5 suggest that there is the opportunity to unify the GPIO initialization process and share the same code between the application and bootloader, at least in the case of in-tree bootloaders, such as for the H7-based boards.

Q.3 : Alternatives to the px_uploader.py script for flashing firmware - @cdcross

  • The current script seems to exhibit some flaky behaviors in triggering reboots into bootloader mode and failure to report explicit error messages in many situations
  • Many exceptions are silenced at the “Waiting for bootloader” stage. Example: if pyserial is not installed, creation of the uploader object fails, but the exception is silenced and a retry occurs indefinitely
  • Chris Seto also reported flaky behaviors through their experience flashing targets 10+ times a day
    • Seems like the uploader has issues getting the Px4 into BL (retries a few times)
    • warning message about modem-manager apparently regardless of if it’s installed or not
  • @cdcross will be putting together a PR in the near future to add better error handling/feedback to improve this, and will also be creating a standalone C++ lib+app for performing firmware updates, specifically for offboard compute driven firmware update use-cases.
  • Besides the uploader script, the only other thing that comes to mind is QGroundControl
  • @dagar shares that there is a C++ firmware update class in PX4 within the PX4IO uploader class: PX4-Autopilot/src/drivers/px4io/px4io_uploader.cpp at main · PX4/PX4-Autopilot · GitHub

Q.4 : Battery load compensation for load-carrying aerial vehicle - Safy

  • By default, the compensation is done by battery voltage & estimated thrust
  • Much better to use ‘current’ reading, to know how much power drone has consumed
  • This can be documented better - @MaEtUgR
  • OR, get a smart battery :smirk:

Q.5 : MAV command for Mission Item doesn’t have timing information

  • USE CASE : Trying to command the Servo’s position for a whole 1 minute, when reaching a mission point (item)
  • SOLUTION : Try ‘Loiter time’.

Q.6 : Using the BeiDou satellite network - Tony :artificial_satellite:

  • GPS signal was weak in certain regions, searching for options of using BeiDou to supplement
  • GLONASS coverage is terrible in this region. GPS is kinda sufficient.
  • 2 vehicles crashed
  • Using ‘satellite information’ uORB message to log status
  • TODO : Will update on the status

:construction_worker_woman: Project Updates / Contributions


MSP OSD Support

RC Input refactor PR

Create a proper Circular Buffer library for RC input parsing

  • Previous CRSF parser was loosing a byte for example!!

:calendar: Weekly Overview


:computer: Slack

:phone: Last Dev-Call

:thinking: General Discussions


Sensor Calibration feedback

Please leave your thoughts on Sensor Calibration in general at this issue : [Project Tracker] Sensor Calibration Improvement for PX4 · Issue #19459 · PX4/PX4-Autopilot · GitHub

  • Taking all the sensor data at once would be a potential improvement (mag dance won’t go away, but still saves time)
  • Tony : Keeping ‘IMU Automatic Calibration’ enabled. So good to use if no error messages are popping up!

How accurate should we be when calibrating the mag? - Chris

  • Very clumsy to do the mag dance for 2 meter wide vehicle with USB cable connected.
  • MAG CAL is trying to fit all the points on the ‘ellipsoid’ for all the motions.
  • Option of doing a ‘quick cal’ by facing the craft to North!
  • 3D Mag Bias online estimation exists (has 30 second window after take-off to verify)
  • It’s quite ‘ambiguous’ what the user should exactly do!
    • TODO : Would be better to add ‘dotted circle’ to show that direction doesn’t matter, etc.
  • The ‘wireless sensor calibration can be unstable’ message, is it necessary?
    • Nope
    • TODO : Remove this message in QGC! (PX4)

Dev Call Format

How frequently is master branch real-life tested? - Chris

  • Fixed Wing, Multicopter, etc.

Simulated Vehicle Improvement

  • Improvement in Fixed Wing simulation would be great
    • Currently it’s a powered Brick :brick:
    • Dynamics Model isn’t so bad - Jay
    • The reason it’s bad is because of the model that should resemble the plane’s behavior :airplane:
  • Other Simulator options
  • We need someone who regularly flies Fixed Wing to judge if the model is good or not :person_shrugging:

:exclamation: High priority queue


Discussion based on : High-Priority Queue · GitHub

:ear_of_rice: Release


  • Release Candidate selection in progress
  • Tony : Didn’t notice anything weird happening