The AI part - terrytaylorbonn/auxdrone GitHub Wiki
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)
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.
2 Mission automation
Mission software (such as QGroundControl or Mission Planner) is used to create a flight plan that is uploaded to the FC.
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).
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.
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.