ArduRover based nppilot log

Day 1

Controller brownout when accelerating. I can reproduce this on the bench by gunning the throttle with the wheels off the ground. The documentation suggests that the power module is designed for 3S batteries, not the 2S equivalent that my 7.2 V NiMH packs are. Powering off just the cars BEC shows the same problem.

Solution: remove the power module. Add a small LiPo with a switchmode BEC to the controllers servo rails.

Oversteering at a corner.

Day 2


  • Figure out how to restart the log.
  • Profile the speed versus demand curve.
  • Increase the standard speed to 4 m/s.
  • Reduce the steering gain to reduce oversteering.
  • Brake at the end of the run
  • See how the throttle stick changes speed on Auto
    • Should be throttle_base + throttle_nudge + pid(speed error)
    • PID is PID(speed error in m/s * 100) / 100
    • Range is 0 .. 100
    • Speed is from ground_speed, which is from either the EKF or GPS.
  • Calibrate centre on the steering
    • startup_ground calls trim_radios at startup which stores the steering trim (yay!)
  • Test the throttle range
  • Check if the motor controller can be calibrated: seems not, but the stick position on power on sets neutral.
  • See if it can beep more
  • See when the waypoints get cleared
    • Based on the trainer switch release.
    • In manual, should log ‘Erasing waypoints’
      • If roll is full right then also sets home
    • In training, sets waypoint. Prints ‘Learning waypoint’
    • In auto, goes to RTL (return to landing)
  • See if the log can be restarted on a signal
    • Logs if log_bitmask & MASK_LOG_WHEN_DISARMED, but never stops the log.
  • The main metrics are

1650=4m/s span=1500-1900 Changes:

  • Set GPS_NAVFILTER to Automotive

To investigate:

  • GCS_PID_MASK: mask of PIDs to send PID_TUNING messages for
    • Defaults off
    • No obvious speed version. Not obvious where the message is defined.
  • Can arm / disarm using the rudder - right to arm, left to disarm; while the throttle is in the deadzone
Michael Hope
Software Engineer