Skip to content

The AI part

terrytaylorbonn edited this page May 14, 2024 · 46 revisions

AI (object detect / recog) started out as the core focus of my ZiptieAI project (the drone was just the AI carrier). And it still is.

AI on a quadcopter typically runs on the

  • FC (flight controller)
  • CC (companion computer)

image

What is (small cheap drone) AI? **

  • Performed by FC:
    • 1 Fly by wire (similar to modern jets).
    • 2 Mission automation
  • Performed by CC:
    • 3 Object detection / recognition
    • 4 Pilot assistance (similar to driver assistance in modern cars).
    • 5 Autonomous flight (the drone can fly a pre-determined flight or modify the flight plan in response to external events)

** In reality, all of the above (including object recog and AI in general) have nothing to do with real intelligence. I use the blanket term "AI" for the sake of simplicity.

1 Fly by wire (FC)

Just as in a modern fighter jet, the quadcopter pilot does not control the flight control surfaces (the 4 rotors). Instead, the pilot inputs flight commands using an RC. The flight controller (Pixhawk 6c for example) performs all of the complex flight control.

image

2 Mission automation

Mission software (such as QGroundControl or Mission Planner) is used to create a flight plan that is uploaded to the FC.

image

3 Object detection / recognition

The AI for this project focuses mainly on object detection and recognition. The CC (companion computer or mission computer)

  • Receives input from the camera via ROS messages (or a direct connection to the camera without ROS).
  • Runs an AI routine to detect or recognize object.
  • Sends messages to the ground station or to the FC (to modify the flight plan).

image

4 Pilot assistance

Object detection could be used to alert a pilot of some detected object. This could be really useful when a pilot is flying in a complex environment. This is comparable to collision avoidance and driver alert in modern cars.

Modern AI algorithms running on cheap HW can sometimes do a better job of detection than humans.

image

5 Autonomous drone control (by CC)

An autonomous AI drone can

  • Fly the drone (continue the mission or return home) if the connection with the operator is lost.
  • React to unexpected situations. For example, in the pic below, at X something occurs (maybe a special object was recognized) that causes the CC to send commmands to the FC to
    • (1) take special action then
    • (2) return to launch.

image

Home

Getting into the air ASAP

(0) Reference


EPIC 1 - Build/fly FPV drone

(1) FPV simulators (inav notes 0608)

(2) SBeeF405/INAV (1a)

(3) SBeeF405/BF (1b)

(4) SBeeF405/AP (1c)


EPIC 2 - Build/fly Pixhawk drone

(5) Pix6c/PX4 (2a)

(6) Pix6c/AP (2b)


EPIC 3 - Add AI to Pixhawk drone

(7) AI cc + cam

(8a) AI Nano PX4

(8b) AI Nano AP

(8c) AI PI PX4

(8d) AI PI AP


EPIC 4 – Advanced AI

(9a) SIH (frame+world sim)

(11) FC FW Mavlink API (via CC/GCS APIs) (5.3)

(13) CC AI (+ Mavlink) (2)


EPIC 5 – Advanced platforms

(14) Firmware dev (5)

(15) Mission platforms (6b)

(16) Special projects (5.6,5.5)


EPIC 6 – PITS (Pie in the sky)

(9b) HITL (frame+world sim)

(10) (skip) SITL (total sim) (1) (was E4)

(14b) Matlab (was E5/4(HITL))

(12) ROS (+ROSMAV) (was E4)



Clone this wiki locally