AJ Airbot

Below are the main posts concerning my Arduino Airbot project – codenamed AJ for Aviation Junkie!… As you do.

  • Project Introduction
  • Living design documents
  • Phase 1: Automotive Control
    • Airframe modifications
      • Larger battery
      • Arms taped
      • Landing gear?
    • Flight control integration
      • Arduino flight monitoring
      • Accelerometer, gyro, magnetometer integration
    • Basic movement commands (ascend, hover, descend, off)
      • Definition of low hover
      • Fixed ascent and descent rates
      • Basic state engine programmed
      • Basic flight plan configured
    • Experiment/Proof: Takeoff and landing
  • Phase 2: Flight Recording / Debugging
    • Internal logging
      • SD card integration
      • Save settings (personality)
      • Sensor readings logged with other state information
    • Live transmission
      • Protocol: MavLink extensions?
      • Mechanism: Via BLE Nano?
      • Receiver: Logging to screen only
    • REST event sink (to MarkLogic for posterity)
      • Logging plugin framework for Arduino
      • MarkLogic Arduino API comms
      • Each update is a document, max 1 per second sent
      • 2D geospatial grid index, altitude, timecode, etc.
      • Basic tabular most recent display, facet for ‘before time index’
    • 3D display environment (Virtual 3D environment from work?)
    • Experiment/Proof: Live display in 3D environment
    • Experiment/Proof: Point in time query of position
  • Phase 3: Inertial Navigation
    • 3 axis accelerometer integration
      • Calculate floating point accuracy and wall clock of duration
    • Physics based INS assumptions
      • Integrate INS computer module
    • Integrate distance sensors
      • Sharp 10-80 cm sensors
      • Touch sensor for landed?
    • Overlay both and overlay outputs on screen
    • Programme basic move to commands (home, height, position)
      • Create pluggable flight plan commands
    • Experiment/Proof: Set a complex route over 10 minutes and compare results of INS versus actual position and sensors
  • Phase 4: Danger avoidance
    • Variable speeds forward and aft (fixed at slow until now)
    • Inverse feedback routine if collision on current heading detected (only if collision happens within next 2 seconds)
    • Remember to override avoidance when landing
    • Train to hover, back away from obstacle, and return to original position
    • Train to move to side if obstacle cannot be moved away from fast enough
    • Train to interrupt flight plan, to slow to a holding position near obstacle, then halt in hover
    • Experiment/Proof: Test with random flight paths and distances within room, and to RTB within 5 minutes
  • Phase 5: Map Memory
    • Log distance to obstacles, but only in 15cm increments, show separately on 3D environment
    • Train to explore and follow edges of obstacles, whilst mapping
    • Train to determine air corridors/highways/navigations
    • Train to create directed graph of corridors and interconnections
    • Create flight plan based on navigations
    • Enter and leave navigations on flight plan
    • Experiment/Proof: Create flight plan to take off, join navigation, move through house, land at bright spot, fully charge battery, then take off and move back to original position, and landing
  • Phase 6: Negative and Positive Reinforcement
    • Add ‘fear’ weighting to being near obstacle, away from home, away from charge point, low on charge, collision course, and unexpected obstacle (movement of person/labrador), flying at high and low speeds, being unstable in flight, being away from mapped area
    • Add ‘happy’ weighting to being at home, charging, near middle of navigation area
  • Phase 7: Personality
    • Weightings to characteristics like Explorer, Adrenaline Junkie, Inquisitive, Gymnast
    • Put these in to action in flight controller and state engine
    • Add feedback devices in visual and audio
    • Add Exercise mode where AJ flies around known space
    • Experiment/Proof: Corner AJ and see fear increase, let him roam free and see happy increase when flying, see flight paths weighted towards centre of navigations
  • Phase 8: Outside navigation
    • Respond to voice commands
    • Stay near to beacon (how?)
    • GPS integration
    • Multiple environment configurations
    • Phone (BLE?) flight programming and observation?
    • New commands – follow me
    • Emergency landing functions (don’t land on reflective paths aka lakes/rivers)
    • Programme with emergency travel to home command when out of area
    • Experiment/Proof: Follow me around a park