Dev Call July 25, 2022

Issues & Pull Requests

Plane

**Copter & Rover **

GSOC

Attendee count (max): 21

UTC11100 - Support VTOL_LAND options by WickedShell · Pull Request #14874 · ArduPilot/ardupilot · GitHub

  • Vtol land options
  • Failing a lot of tests so can’t be merged here
  • Need it to pass CI to look further at this

UTC1102 - Plane: Max altitude for FBWB by khanasif786 · Pull Request #19732 · ArduPilot/ardupilot · GitHub

  • Been around a while, finally OK?
  • Max altitude for fbwb
  • Using fence_alt_max?
    • Yep
    • Also a fbwb param, uses largest of the mins and then the fence max
    • What if you don’t have a fence alt?
      • Fence type has a bit for min/max
      • What if you’ve got a non-zero fence alt but not enabled?
        • Just won’t use it
    • Bug? If you have a fbw min alt set and you don’t have the fence alt set it will use the fence minimum anyway?
    • Taking max of an undefined number….
    • Under no circumstances should we use the fence min alt if we haven’t enabled the fence minimum
  • One of us needs to test this - someone other than the author
  • Does include the fence margin
  • Alt vs alt_cm in Location object
    • Would be nice to change the location field name
    • Scripting bindings are very bad - they’re the raw fields
      • Difficult to fix these?
      • Make LUA check for the existence of the accessors at the time we load the script?
        • Could potentially do it
        • Might cost a bit?
          • Manually do it?
        • Load-time exception for fields that don’t exist?
      • Duck-typing means catching is problematic
  • Needs to stop using unconfigured altitude

UTC1108 - Move Fence to AP_Vehicle by IamPete1 · Pull Request #20217 · ArduPilot/ardupilot · GitHub

  • Move fence up to vehicle
  • Build server options
  • AC_Avoid fixes brought up by new CI test
  • Manually tested all fences and tested failsafes
    • Need to default fence on in build_options.py
  • Need a comment explaining what we mean setting a define to 2
  • Change to continue to require avoid if you have fence and vice-versa
  • Should we new() the AC_Fence object?
    • AP::fence() accessor returns a pointer
      • So it can be dynamically allocated relatively easily
    • Reserve a tonne of space for fence and rally in storage which isn’t unused
      • We don’t have markers in storage to dynamically allocate
      • Use SD card for storage regions
        • Still RAM-backed
        • 65536/15 bytes = 4369 waypoints
        • Tom will talk to tridge on this one
      • We lose a bit of storage to parameter backup on the 32kB parts on CubeBlack
        • RAM issues… F427

UTC1137 - AP_Control: change autotune I determination for Roll axis by Hwurzburg · Pull Request #21027 · ArduPilot/ardupilot · GitHub

  • Change autotune roll determination
  • There are frames where this would make it worse
  • Paul’s approved it, ‘though
  • Merged!

UTC1140 - AP_Param: always use set method, remove `=` by IamPete1 · Pull Request #21116 · ArduPilot/ardupilot · GitHub

  • Remove = and related parameters
  • Have to use param_variable.set to delimit what’s a parameter and what’s not
  • Andy’s not a fan
    • Less user-friendly
  • These are the ones that didn’t get changed to set_and_default
  • PH thinks this is better
  • Original design was intended that you assign and treat them as assignable
  • What’s changed between now and the design decision to have the overloads?
  • What does this give us?
    • Easy to find all parameters?
    • Less magic?
  • Tom likes this
  • This might kill pending PRs

UTC1153 - Copter: Payload Place fix take-off by lthall · Pull Request #21129 · ArduPilot/ardupilot · GitHub

  • Fixes payload place takeoff
  • Merged!

UTC1153 - Take-off throttle slew time by lthall · Pull Request #21158 · ArduPilot/ardupilot · GitHub

  • Takeoff throttle slew time
  • Auto-takeoff will be a bit gentler
  • Throttle ramps 0-100 in a given period of time
    • Looks for vertical rate and/or change of position and/or 90% throttle then flicks to the flying state
    • Currently it flicks into the flying state
    • I-term build up while we wait for the throttle to come up and the throttle ramp depends on pid tune
  • What’s the change look like to a user?
    • Auto-takeoff or guided takeoff?
      • Allows user to define throttle ramp up
        • 1 second to ramp up
          • 2 second slew from minimum to maximum
            • But takeoff is at 50% for most users
        • Hover throttle at 15%? 0.3s to takeoff
        • Shouldn’t this be be time-to-hover-throttle instead?
          • Might be unknown / based on payload
          • This is simpler - one number, consider it to be aggressiveness
          • Slew rate 1 is full rate
            • Copters don’t do percentages
            • Planes do percentages
            • Copters do + or - 1
  • From chat:
    • [10:01 AM] Peter Hall: I agree with Leonard.

    • [10:02 AM] Peter Hall: You don’t want it changing based on hover throttle learning.

    • [10:05 AM] Henry Wurzburg: TKOFF_THR_SLEW: Takeoff throttle slew rate

    • This parameter sets the slew rate for the throttle during auto takeoff. When this is zero the THR_SLEWRATE parameter is used during takeoff. For rolling takeoffs it can be a good idea to set a lower slewrate for takeoff to give a slower acceleration which can improve ground steering control. The value is a percentage throttle change per second, so a value of 20 means to advance the throttle over 5 seconds on takeoff. Values below 20 are not recommended as they may cause the plane to try to climb out with too little throttle. A value of -1 means no limit on slew rate in takeoff.

    • [10:06 AM] Henry Wurzburg: ATC_SLEW_YAW: Yaw target slew rate

    • [10:06 AM] Henry Wurzburg: cdeg per second

    • [10:07 AM] Henry Wurzburg: H_RSC_SLEWRATE: Throttle Slew Rate

    • This controls the maximum rate at which the throttle output (HeliRSC servo) can change, as a percentage per second. A value of 100 means the throttle can change over its full range in one second. A value of zero gives unlimited slew rate.

    • Increment Range

    • 10 0 to 500

    • [10:07 AM] Peter Hall: I would vote spool time to match what we have in AP_Motos.

    • [10:08 AM] BillGeyer: Heli’s don’t count in this case. I haven’t kept up

    • [10:08 AM] BillGeyer: plus I don’t know anyone that uses that parameter

    • [10:10 AM] timtuxworth: Agreed - I find the slew rate percentage on plane confusing, I have to “think” when I’m trying to figure out what to set it to.

  • Tridge wants to discuss parameter naming and particular slew rate naming with Randy
  • Think of this as a pilot moving the throttle stick up at a particular rate and waiting for the vehicle to take off
  • Takeoff time is dependent on payload and your i-term ramp up time
    • Auto takes into account jerk rate and other psc parameters
  • Low required hover throttle means faster takeoff than currently, probably
    • This bothers tridge
  • Bill really likes the i-term not building up
    • Tridge does too, it’s a presentation-to-user thing
  • Leonard will be limiting hover throttle’s impact
    • Removing from PID loops
    • Only place for hover throttle is for error detection
      • Problem with hover throttle is that it’s very difficult to detect it in auto flight because there si not place in auto flight where you are able to establish a measure of over throttle because you are in dynamic flight (hovering or transitioning)
      • Quite unusual for an auto flight o sit there and hover
      • Variable payloads
      • Hybrids, quadplanes
      • Taking off heavy, landing light
        • Full fuel load different
        • Same witty hybrids and petrol copters
    • Value in helping detect problems but very poorly defined parameter
      • Learn means it changes every flight
      • Leonard wants consistency between flights
      • Dangers associated with the hover throttle value

UTC0020 - Copter: fix landing limits by lthall · Pull Request #21131 · ArduPilot/ardupilot · GitHub

  • When the limits are turned on doesn’t let speed exceed limits as well as acceleration
  • If you have a position error it can currently over-speed
  • Notably during takeoff and landing where it can overspeed a little bit
  • Mostly not a problem
    • But prevents problems if you do get a position error
  • Now limits vel in addition to accel
  • Doing a takeoff?
    • Climb to an alt?
    • Also taking a rate?
    • Take alt and command pilot rate

UTC0029 - add skip-string-normalization to black config by mentonin · Pull Request #21239 · ArduPilot/ardupilot · GitHub

  • Not sure why this is DevCall - should be MergeOnCIPass?

UTC0030 - AP_GPS: correct compilation when all serial backends compiled out by peterbarker · Pull Request #21252 · ArduPilot/ardupilot · GitHub

  • Correct compilation when all serial backends compiled out
  • Merged

UTC0031 - AP_Vehicle: correct description of G_Dt by peterbarker · Pull Request #21255 · ArduPilot/ardupilot · GitHub

  • G_Dt description is wrong
  • Filter rates don’t bother tridge
  • Navigation calculations do bother tridge
    • Nav code for copter uses += velocity *dt
    • Average achieved loop rate might need to be a thing
    • Time since last called only appropriate if there’s no memory in the algorithm
  • Using a raw dt is bad when calculating navigation rates as it leads to throttle problems
    • EKF moved to average dt to avoid this sort of thing
  • We memoise a bunch of values in AP_Scheduler.h
    • Maybe the wrong thing to do?
    • Just variables that when you init the
  • A way in SITL of testing the case where the vehicle is not achieving the loop rate set in the parameter
    • Check that auto missions proceed at rate you have asked for
    • Some way to delay SITL / advance time
    • Sim_achieve_loop_rate which would make it slow down
    • Tridge did implement this as a quick hack
  • Aircraft not flying at speed which is configured
    • Target groundspeed doesn’t get achieved
    • Position controller is assuming that time is moving along as it should
  • We’re hitting timing issues more and more often not hitting desired loop rate
  • [10:36 AM] Peter Hall: Time since sensor samples your intergrating.
  • [10:44 AM] Peter Hall: You can force advance the hal time.
  • [10:45 AM] Peter Hall: We could just add a bit every loop.
  • [10:45 AM] Peter Hall: hal.scheduler->stop_clock(time)
    • Only changes average rate
    • Won’t do the every-4th-loopthing due to the 100Hz fusion step
    • Multiplier of some description?
  • Certain amount of flight time available
    • Calculate if task can be achieved
    • Decide it can
    • But then we don’t fly the groundspeed…
  • Changes which affect your loop rate shouldn’t change your groundspeed
    • Stop overtaxing your CPU…
  • We’ll leave this as a place-marker
    • We’ll move to making it a call on the scheduler to get the right number

UTC0051 - Plane update

  • Want 6x in Plane stable
  • Compass handling of heaters
  • 2 boards CubeOrange and Pix32v5 hwdef entries compass compensation for heater
    • Electromagnet
    • Both 6xs (CUAV and Holybro) have heater impacts on mag
    • Tridge wants these boards into stable
  • Master has several things wrong
  • Filtering in the icm 4 series sensors is going really well

UTC0054 - Copter update

  • No randy, no update

UTC0055 - GCS_MAVLink: ensure payload space for ACK before sending by peterbarker · Pull Request #21257 · ArduPilot/ardupilot · GitHub

  • Needs a comment then merge
  • Maybe make CI a bit better
  • Then merge

UTC0059 - Remove references to config.mk by peterbarker · Pull Request #21265 · ArduPilot/ardupilot · GitHub

  • Remove the pollute_env_from_file method as well
  • Then merge

UTC0100 - Add AUX switch to pause logging if rate limiting is active by Hwurzburg · Pull Request #21269 · ArduPilot/ardupilot · GitHub

  • Add aux switch to pause logging if rate limiting is active
  • Should be log-pause-streaming
  • Do it in Log_Write_Streaming
  • Rate is in integer hz…

UTC0113 - Automate reporting of firmware build limitations by board · Issue #21273 · ArduPilot/ardupilot · GitHub

UTC0129 - AP_AHRS: Option to disable logging of EKF log messages by Hwurzburg · Pull Request #21276 · ArduPilot/ardupilot · GitHub

  • Stop ekf logging with an option

  • Should really have these as logging parameters in the libraries themselves?

    • EK3_LOG_LEVEL ?
    • Independent of logging bitmask
  • Enum or bitmask?

  • 11:31 AM] Peter Hall: I think we have one left on plane.

  • [11:39 AM] Peter Hall: We do have AIS_LOGGING

  • [11:39 AM] Peter Hall: A bit mask of things to log or not.

  • [11:40 AM] Josh Henderson: We just need to ensure that there is high-level GUI/interface that makes it easy to turn things on/off like it is now.

  • Parameter per library makes it very annoying for a user

  • [11:41 AM] Peter Hall: also more flash of course…

  • [11:43 AM] Josh Henderson: yeah it would nice to get lower EKF logging. I could then enable pid logging for some vehicles i know

  • IMU bit in Plane

    • Attitude medium does log it even if it isn’t supposed to be
  • Henry’s going to make logging more consistent across vehicles

UTC0148 - close

Will the fence changes possibly re-energize the possibility of fence bindings for scripting?