Developer

Providing the user / pilot a good feedback is very important.. Right now most autopilots just have 1-3 LEDs, but no interaction concept. We would like to collect some feedback on this topic. It takes less than 60 seconds to complete and will help us a lot: Link to survey

Based on this feedback and general UI concepts we're trying to come up with a consistent interaction concept using the different LEDs, switches and buzzers to make the operation of the PX4 hardware as user friendly and safe as possible.

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones

Comments

  • Interesting paper.  Thanks, Dan.  (All the other research at that site looks fascinating, too.)

  • Feedback is only part of the solution. Could you imagine if elevators merely notified you to the fact that someone's arm was stuck in the closing door and required a rider to press the door open button? When the correct response is obvious, we automate it.

    Multiple failures should be required before real-world consequences are even possible:

    • It should be impossible to arm in any flight mode until the operational status of all required systems is confirmed:
      • Tracking more than X GPS satellites and position is stable.
      • Telemetry (if equipped) has bi-directional communication and high RSSI.
      • Receiving RC control with no dropped frames.
      • Compass has sensible reading (perhaps require that the craft be on a certain heading or be swept through 90 degrees)
      • Barometer has sensible reading which agrees with GPS.
      • Airflow and other sensors with a high noise floor are reading typical noise levels.
      • Craft is near the home point indicated in flight planner. Coordinates are entered into flight planner to get satellite imagery; those coordinates should be mandatory and shared with the craft.
      • All batteries are at expected voltages.
    • For X seconds after takeoff, unexpected sensor readings/conditions should cause an immediate throttle cut, regardless of flight mode.
      • Unexpected direction or attitude.
      • Large mismatch between compass and GPS heading.
      • Mismatch between airspeed and GPS velocity not seen before takeoff.
      • No increase in barometric altitude.
      • Missing expected GPS updates or a sudden large change in reported position.
      • Loss of telemetry or RC.
      • Drop in battery voltage below safe levels.
    • Basic LED and/or beeper feedback should indicate 3 basic states: ready, setup/wait, and error. More information through blink codes or whatever would be good, but it should always be possible for a naive observer to determine those 3 states without training, i.e. it should be viscerally obvious that the craft wants to fly or does not want to fly.
    • Save the most-annoying alarms for real danger situations, to reduce the desire to disconnect the alarm while hacking, for example:
      • Attempting to arm before the craft is ready.
      • Throttle increased before the craft is armed/ready.
      • 'Copter is picked up while armed.
    • Support optional on-board display of flight parameters and error messages on small inexpensive displays like this one to simplify diagnosis and reinforce any error messages. Most people don't react appropriately just knowing there is a problem, they must also be told how to react to the problem, which is what error messages are for. If you don't believe me, ask any car mechanic what their customers think of the low-oil-pressure warning light.

    Most of this doesn't need to be active during flight and could/should be turned off while the CPU is busy with other things, for example nobody should have their face close enough to read an LCD while the craft is armed. 

  • This paper about "Unlocking the Expressivity of Point Lights" is your friend:

    http://www.chrisharrison.net/index.php/Research/LEDBehaviors

    Chris Harrison | Unlocking the Expressivity of Point Lights
  • For me having a complex set of blink codes while flying would be a liability more than an asset.

    But why not make it user selectable, 2 or even 3 schemes could be included and just set a parameter to select which.

    Maybe a Simple mode like I suggested above, a Naza compatible mode and possibly another more advanced mode that makes better use of the wide range of colors available in a BlinkM as well. 

    These are bits set or unset and are not resource hogs and in the BlinkM you download them to it anyway.

    I have a very strong sense that the simple mode is what should be selected by default though.

    And I agree on the static indicators, although maybe a one or 2 letter (or even 8 character) LED display could be a lot easier to interpret

  • Blinking LED's are usually associated with special conditions, but the color is also an indication. Blinking red is trouble, but what do you do with blinking blue or green?

    A state where all lights are on is a good indication that the system is ready to go. If one light is flashing and others are lit, then I wouldn't know if that light indicates "working GPS and everything else ok" or whether it's an issue with GPS. So consistency is key here.

    A system where lights have different blinking schemes depending on conditions that you don't necessarily care about as a user, then the user needs to memorize all these different blinking schemes and what they mean (per light). was green gps or blue?   It's probably better not to have too many LEDs.

    Problems should be analyzed from telemetry and the ground station, as there's only so much you can do.

    An alternative is to use two LED's for this state indicator:

    1. blinking blue: on and waiting for systems to come up.

    2. fixed blue, ready to go, not armed.

    3. fixed green: armed and ready to go. (blue turns off)

    4. blinking red: problem

    5. blinking green (later orange): battery half full.

    In the end, this LED system can be replaced by a single RGB led.

  • Developer

    I think the individual function leds serve each a particular purpose and are good for detail-level checking. They were never designed / intended to be visibility from outside of the vehicle and its thus ok if they each have their own meaning (as long as they're consistent regarding the blinking / non blinking pattern).

    For the RGB led it looks like there are two distinct groups: One wants to have maybe three colors and 1-2 different blink or on and off patterns, and the second group wants to encode the full system state into it. Both ways have their appealing sides. I agree that the pattern probably can't be copyrighted, the question is just: How long did it take you to learn to decode it? Is that just a learning curve thing or does it really take some effort and remains confusing?

  • I don't think blink codes are copyrightable material.. so why not follow the DJI blink codes?   I would much prefer standard blink codes as I don't just fly my Wookong-M or NAZA or APM.. but instead all of them... and have different codes for different flight boards is problematic... best to be the same.. and it isn't like the blink codes defines the flight controller or is any reason someone would choose one over the other.. so having the same or very similar blinks would be perfered.

  • Great idea Lorenz,

    On the ground status indication might be better via LCD panel like the HobbyKing KK controller.

    I think the BlinkM color adjustable indicator could be quite useful for in flight status but I think it would be good to not make its indications too complicated.

    Maybe blinking green for good GPS, Armed and flyable, steady green for ready to fly not armed, blinking red for problems, solid red for failsafe engaged, blinking blue for GPS low sat count - solid GPS lost.

    Right now my PX4 system has 3 LEDs on the FMU board, 3 LEDs on the IO board, 2 LEDs on the GPS and the LED on the arming button.

    Too many LEDs, only really pay attention to arming button and GPS.

    applying the KISS principal especially for in flight distractions is I think mandatory.

This reply was deleted.