Dev Call Jan 6, 2025

Vehicle Update

Issues

CAN Redundancy

Attendee count (max): 19

UTC2300 - sidebar on CAN redundancy

  • Really need to document this
  • Topic that most people don’t tend to think about
  • If you have to wires to a CAN bus and cut one it’s not the same
  • Periphs can have 2 buses coming in
    • Which gives you some redundancy
    • Multiple receives means drivers are receiving twice as much traffic
    • Could potentially only send on second interface if we can’t send on first

UTC2303 - vehicle update

  • ArduPilot 4.6 issues list · Issue #28612 · ArduPilot/ardupilot · GitHub
  • F.bus
  • First have renamed fport2 to F.bus
    • All very confusing naming-wise
    • It’s a different baud rate to fport2
    • V.bus is same as fport2 but 460800
  • Leonard’s recovery patches need to be looked at again
    • Tridge had an “interesting” 80-degree roll due to a strong wind gust
    • Might suffer from the inverted-recover problem which we’ve previously looked at
  • Looking at transition-dip issues
    • PH has an alternative to tridge’s transition fixes, “throttle slew”
  • C++ quicktune in Plane for 4.6 but not Copter
    • Report of crash on the 4.6 quicktune
    • Qloiter quicktune and crashed
    • Unstable, full throttle, crashed into ground
    • Tridge will look

UTC2311 - Dds yaw control plane by Ryanf55 · Pull Request #26143 · ArduPilot/ardupilot · GitHub

  • DDS yaw control for Plane
  • Control yaw rate of Plane in Earth frame
    • How quickly you can achieve a 360 on Plane
    • Fixed-wing
    • Circle turn-rate and radius
    • L1 controller tuning
      • Lateral acceleration which gets converted to a roll
      • Not around a fixed point
      • More about the rate you turn
  • Why?
    • Lower-level control
    • Dubins calculations in ArduPilot would be nice
      • Shortest path for a vehicle with a given minimum turning radius
    • Leonard’s thinking of adding “circular segment” to Copter
      • Arc past waypoint
      • Can do it with fractional loiter turns
      • Maybe somehow use splines?
        • Splines are not as good
          • Non-circular shapes OK, circles less so
          • MP also doesn’t plot them correctly
        • A new waypoint type?
  • Ryan and Tom have been looking at implementing the trajectory message

UTC2328 - AP_GPS: Fix GSOF delay in PX-1 by Ryanf55 · Pull Request #27038 · ArduPilot/ardupilot · GitHub

  • Correct delay for GPS in PX-1
    • 6.5 milliseconds is a very small amount of time
    • We need flight lots to prove that number out
    • We have a tool that graphs the correlation between the IMU and the GPS velocity
      • Finds lag with highest correlation
      • Works best with fixed wing
      • Assume accels are zero-lag
      • How much to do you need to shift the GPS velocity to assume a zero lag
        • That gives you the lag
      • Circle mode on Copter should work, but traditionally done with a Plane

UTC2332 - Gsof bitmask flexible parser by Ryanf55 · Pull Request #28802 · ArduPilot/ardupilot · GitHub

  • GSOF flexible parser
  • Some debate around making the static check a runtime
  • A few comments but generally favourable review
  • Recommended

UTC2340 - AP_DDS: Make GPS DDS features depend on GPS by Ryanf55 · Pull Request #28341 · ArduPilot/ardupilot · GitHub

  • Make GPS DDS feature dependent on GPS
  • We should be able to ge DDS on the CustomBuild server shortly

UTC2344 - AP_Scripting: add bindings for servo telemetry by IamPete1 · Pull Request #28857 · ArduPilot/ardupilot · GitHub

  • Add bindings for servo telemetry
    • Now just gets the structure
    • Generator checks the validity bitmask
    • No need to check the validity bitmask yourself
    • Markup which specifies the relevant bitmask
      • “Valid_mask”
      • Will also work when we get around to do setting
    • Saves a few bytes over the individual methods

UTC2348 - ArduPlane: add guided timeout by Ryanf55 · Pull Request #28943 · ArduPilot/ardupilot · GitHub

  • Add guided timeout to Plane
    • It’s configurable in Copter, so make it configurable Plane too
  • Is this actually a timeout?
    • This just ignores old messages?
  • Interactions with the new “offboard” mode make this problematic
    • MissionPlanner-with-right-click is what you would be doing in GUIDED
    • “OFFBOARD” would be for companion-computer control
      • But too long for a parameter tree base name
    • OBRD_?
    • OFBD_?
  • Changing between offboard and guided will give you an alternative to get out of external script control
  • Leonard
    • Auto is all planned stuff
    • Guided is non-deterministic command handling
  • “Offboard” is a terrible name as it’s most likely to come from LUA or an onboard companion computer
    • 11:00 AM]rmackay9: the other team uses the word “offboard”…
  • The fancier external controls will still be done in offboard, but scripting will still work in auto…
  • Plane Offboard Support - Replace GUIDED mode · Issue #28956 · ArduPilot/ardupilot · GitHub
  • “What is the Plane doing?”
    • “Doing a takeoff”
    • “Flying home”
    • Kind of like an “immediate objective”, also called “flight stage”

UTC0005 - Plane Offboard Support - Replace GUIDED mode · Issue #28956 · ArduPilot/ardupilot · GitHub

  • Comments would be good!
  • [11:06 AM]Henry Wurzburg: keep hearing external control XCTL

UTC0107 - Tools: ros2: Clean up copter takeoff by Ryanf55 · Pull Request #28974 · ArduPilot/ardupilot · GitHub

  • Clean up copter takeoff example in ros2
  • Merged!

UTC0107 - Plane:mode AUTOLAND enhancements by Hwurzburg · Pull Request #28976 · ArduPilot/ardupilot · GitHub

  • Mode AUTOLAND enhancements
  • Extends autoland so you don’t just use it for mode-takeoff but also in other modes like manual or fbwa
  • Also lock in a landing direction at arming time
  • Once a direction is captured it persists until disarm
    • That’s a change in behaviour
  • Flown a lot in SITL and by Henry
  • If you capture at arming time then your landing direction is the direction you are pointing not adjusted by the landing offset
    • So if the option is set to 2 then the offset is never used
  • ARMING_REQUIRE 0?
    • You’re stuffed anyway….
  • Takeoff criteria have worked very well
    • Captures takeoff direction very well
  • Move method and state from Plane into Mode?
    • We can move it out later
  • Valid suggestion from blog post
    • When flying at much higher altitudes
      • No way to make an autolanding because you are too high to get to base-leg waypoint
    • Henry has coded and flown loiter-to-alt enhancement to autoland
    • Make the base a loiter-to-alt waypoint
    • Tangent breakout stuff would be great
    • Choose direction based on base-leg turn
    • TECS_SINK_MAX to calculate the glide-slope and do loiter if required
    • Bonus points look at wind
    • Do away with the base leg?
    • Because you might not loiter

UTC0125 - Networking/Filesystem: add 9P2000 network file client. by IamPete1 · Pull Request #28977 · ArduPilot/ardupilot · GitHub

  • Add P92000 network file client
  • So you can host a filesystem on your CC and poke at it from your FC
  • This is done as an @filesystem
    • SD card replacement eventually thus want to use it as root
    • Log to both network filesystem and the SD card
  • Server is written in “go” at the moment
    • Provide root directory it is serving
    • Hasn’t been tested with logging at the moment
    • Tested by ftp transfer to the new filesystem and making sure it appeared on the CC
  • Lots of error checking to be added
    • Remounting and reopen!
  • If we’re running scripts off this then do we block scripting until this starts?
  • CI fire up server and make sure it works
  • Maybe shared fs between CubeRedPrimary and CubeRedSecondary?!

UTC0154 - AP_Math: prevent FPE in SITL when limitting accel, vectors by peterbarker · Pull Request #28981 · ArduPilot/ardupilot · GitHub

  • Using MAX() to avoid an FPE
  • Should we change safe_sqrt to be the original intent which is to avoid the problem in the first place?
  • Thomas will force-push Peter’s branch
    • Internal-error on nan output
    • Check input is > =0, return 0 instantly otherwise

UTC0114 - Allow individual boards to define HAL_INS_RATE_LOOP and enable on F4 with one IMU by andyp1per · Pull Request #28984 · ArduPilot/ardupilot · GitHub

  • Enable HAL_INS_RATE_LOOP and enable on F4 with one IMU
  • Change sched loop default if someone has fast-loop-rate default
  • Tridge thinks it’s OK but it’s a Copter-only change…
  • merged!

UTC0123 - hwdef: remove bad flashing-last-sector comment by peterbarker · Pull Request #28985 · ArduPilot/ardupilot · GitHub

  • Remove bad comments
  • Maybe a Nucleo came with a locked sector?
  • merged!

UTC0124 - Copter: switch off fast rate while doing temperature calibration by andyp1per · Pull Request #29000 · ArduPilot/ardupilot · GitHub

  • Switch off fast rate while doing tcal
  • Callbacks don’t get called?!
  • Need a few questions answered
    • What else isn’t being called?!
    • What testing?
    • Why is it needed?

UTC0127 - AP_BLHeli: normalize ESC index correctly with iomcu by andyp1per · Pull Request #29001 · ArduPilot/ardupilot · GitHub

  • Normalize esc index correctly with iOMCU
  • Queries around why
  • Want user to test

UTC0136 - Compilation fixes when features disabled / feature extraction fixes by peterbarker · Pull Request #29007 · ArduPilot/ardupilot · GitHub

  • Compilation fixes when options enabled/disabled
  • Merged!

UTC0139 - AP_Arming: Allow arming when forcing DCM and no GPS configured by Ryanf55 · Pull Request #29012 · ArduPilot/ardupilot · GitHub

  • Allow arming when forcing DCM and no GPS is configured
  • Plane without GPS/airspeed
  • Just using a well-tuned plane with a gyro
  • No speed scaling
  • Well-tuned at a specific airspeed
  • We have code that tries to cope with this scenario
  • But without airspeed and without GPS
    • We speed-scale on throttle
    • As we raise/lower throttle your scaling changes by a significant scale
      • Doug Weibel’s code
  • Ryan wants to fly a gyro
    • Speed-scaling is the real problem
    • If an RC receiver can do this, why can’t ArduPilot?
    • They run fast…
      • Higher-order integration/differentiation methods make a difference, after all
    • Maybe a drag number that we use to estimate airspeed etc?!
      • Scripting airspeed backend?
      • Replace the throttle-based one
  • manual/acro will work
    • FBWA…. Maybe?!
    • Why?
      • GPS sensor coming from China and he wants to fly
  • Can’t allow arming without location by default
    • Requires GPS_TYPEs of zero
  • Could probably expect the leans….
  • An AHRS_OPTIONS bit to say it’s OK to arm without position?
    • If it is only the vehicle code checking it?!
  • Want the crude speed estimate code
    • Perhaps a sort of inverse TECS instead?
  • If Ryan wants to support, ….
  • An AP_Airspeed_Integrated

UTC0205 - Tools: fix Cygwin CI build by tpwrules · Pull Request #29013 · ArduPilot/ardupilot · GitHub

  • Fixes cygwin build
  • Something we were doing wrong combined with an upstream bug
  • Break cronjob?
  • We only ended up with 5 files copied anyway as the copy was magically mapped by cygwin, overwriting the same file
  • Need to make sure MissionPlanner continues to move forward with its versions

UTC0210 - Use HAL_GCS_ENABLED in place of HAL_NO_UARTDRIVER by peterbarker · Pull Request #29018 · ArduPilot/ardupilot · GitHub

  • Use HAL_GCS_ENABLED in place of HAL_NO_UARTDRIVER
  • Merged!

UTC0211 - Copter update

  • Beta3 time!
  • Partner’s call tomorrow morning

UTC0216 - Conference update

  • Look for announcement tomorrow
  • Conference is at field
  • Four days?
    • One day for partner presentations?
    • Third day was supposed to be documentation day?
      • Just a general conference day
    • Or two tracks on one of the days?
    • Poster-presentations is another way to expand

UTC0221 - close