Skip to content

Avoiding walls and rabbit holes

terrytaylorbonn edited this page May 22, 2024 · 6 revisions

The main thing when you are getting started with drones is to avoid show-stoppers (hitting the wall or going down rabbit holes). To get an idea of what I mean, click below to read about the history of ZiptieAI.

A short history of ZiptieAI


This section describes why I built ZiptieAI (and later added FFFF). Its basically a short history of my start (late 2023 to the present) with AI + drones.

1 How and why I got into the chaotic quadcopter world

I had a full-time job with an AI company in the defense sector (the company managed AI projects; I was not directly involved in AI development). Then Biden decided that although I had natural "immunity" (whatever than means for corona viruses) and I was working 100% remote, I was a threat to others. So I was forced out of my job (I chose not to take the experimental mRNA injections). 5 weeks after I lost my job, Biden held his SOU address in Congress with no distancing and no masks.

After this I had several 6-month contract jobs (they were all extended). But none of these contracts turned into full-time jobs. The last one ended after the VC money dried up.

I needed a change. A restart. A career in some tech field. I wandered around (the internet) a few months doing various tech demos and finally decided on AI. I spent a few months doing hand-on examples (2.5 AI study). Then somehow I made my way to drones and AI. This seemed like an ideal way to brush up on

  • C, C++, python, linux and
  • Documentation tools

And (most importantly) start my own long term project (career change). I expected drones to be easy. Simple. After all the experts all made it sound that way. And it was OPEN SOURCE! :)

2 First step: Simulate everything on the drone first

I thought

  • Simulate (1 Total simulation). I initially focused on simulation for one reason because the only big-picture step-by-step intro was from Intelligent Quads. The videos weres 5 years old. It was a major effort to get the examples running. I also had the impression from the comments that only a few people had actually done the demos (I did the entire series with a few exceptions at least 4 times; see my version of his original demo at 1 Total simulation 1.1-1.4).
  • Get AI working in simulation.
  • Then buy a drone kit, spend a few days putting it together, plop on the AI, and off we go!.

Was I really that naive? :)

3 Then test the AI on real HW

2 Real AI HW sections 2.1-2.4.

4 Then test the real (not sim) copter flight controller (FC) with HITL ("hardware in the loop")

3 Real FC HITL

HITL is good for verifying CC flight commands to FC. Which I, from what I read, was important. And in a way it is. But it too complicated, and really only important for complex projects.

HITL was interesting. But enough of this sim nonsense. I need to get something flying. Something real.

5 First drone: Ardupilot kit (X500)

  • I wanted more control.
  • I wanted to understand construction.
  • I was led to believe it would be easy (yea, right; I first went with the Holybro X-500 which Holybro said would only take 15 mins to assemble; minimal bare bones instructions)

6 I planned ZiptieAI around the above misconceptions

  • Ardupilot (the much heralded open source firmware for the x500 drone) is utter open source chaos.
  • After working on the x500 for weeks
    • Motors would not start (I also tried Ardupilot on my FPV... same problem; I know the problem is a simple one, but in the rabbit-hole world of Ardupilot finding that problem could take a while).
    • Experts? Help? I had always read that Ardupilot had a great helpful community.
      • Nowhere could I find detailed accurate complete setup info (like for the Intelligent Quads simulation).
      • The experts told me to read some crap docs that only confused me more.
      • The tools (like the ridiculous Mission Planner) were a hodgepodge of functionality and confusion.

7 I was misled (I got suckered)

I saw 2 videos in April 2024 that made a big impression on me.

  • An top Ardupilot expert noticed at some drone port that some people were having a "terrible time" getting their drone to fly. He talked them, understood the problem, and went home and programmed a fix. He then posted the (very high quality) step-by-step video in Youtube. I was able to replicate 100% what he did. The problem? He never posted anything in the docs (that I could find) about the existence of the video or about the steps involved. That's when I realized that Ardupilot's supposed open source availability to all users was a scam. In reality its like an old boys club, where only the insiders have the really critical info.
  • Joshua Bardwell showed how to put together the x500 FPV pilot tries Pixhawk for the first time // Introduction to Ardupilot. He is one of the great experts, and he helped me immensely. But I found the video very interesting in 2 ways
    • "I am out of my comfort zone!" when he ran into problems in the chaotic Ardupilot world. Wow, an honest video about these problems.
    • He left out some very critical details (then again, this video is about an FPV expert trying Pixhawk, not a step-by-step tutorial). Lets just say its quite probable that he had a lot of help that he did not mention in the video (these drone videos are his day job).

I started to realize that probably a rather large percentage of those that start in this field give up (they simply disappear without a trace, with no warning to others).

8 Switching gears

I discovered slowly some good youtube videos for getting started with other types of drone platforms and firmware.

8.1 Betaflight (BF)

I started working for an NGO active in Ukraine that wanted a FPV drone. I started using BF.

  • Wow! Professional quality tools and docs. None of this Ardupilot "we are great because our "community" controls the source", but just good corporate teamwork and engineering.
  • I got the FPV "in the air" (on my kitchen flight test table) quickly.

Great. Except that BF did not have some of the functionality of Ardupilot we really needed.

8.2 Ardupilot on FPV (installed, but the same motor problem)

After having the same motor problem with AP on the FPV

  • The Ardupilot experts tell me to read some ridiculosu garbage docs.
  • I can't get a param file anywhere. The ~1000 parameters are stored in the FPV FC (flight controller) and are the real core settings that are created using tools such as Mission Planner. I think that's where my problem, somewhere in those ~1000 parameters. But none of the Youtube demos and Ardupilot docs ever included example parameters files! I am missing something here?

8.3 Switched to PX4 and the x500 works!

  • I should have started with PX4. But I constantly read that Ardupilot has much better support and an active community. Sorry, but the best support is good design, good docs, and stuff that just works.
  • PX4 is open source, but industry supported. Thats the way to go.
  • Ardupilot (as I understand) wanted no industry ownership. No owners, noone maintains usability, and the Ardupilot gods think that makes Ardupilot accessible.

So much better. But still the chaotic Pixhawk world. If only we had the usability of BF with the functionality of PX4.

8.4 INAV

I don't remember exactly how I found INAV, but seems like what I was looking for.

  • Its kind of like BF, but with some things that PX4 (and Ardupilot) have.

9 Slowly putting all the pieces together

So I started making some progress. And I started to realize that part of the solution to all these challenges is the "SpaceX school of drone dev". Rather than trying to get everything perfect for that first liftoff, you just start ziptie'ing together whatever you can get working ASAP and test. If one thing doesn't work, then try another option. If you hit the wall, go around it. And document, document, document (I have no doubt SpaceX pays great attention to real documentation).

Basically the same philosophy of ZiptieAI, applied not only to the peripherals and payload of the drone, but also the core drone components (the FC and the firmware). I had to reorganize the wiki yet again after understanding all of the above.

10 Quality STM32 tools (for use with drones)

5.1 STM32 tools renewed my faith in the hobby drone world.

  • Quality products and documentation. And this is the core of the FC's (I used).
  • Using STM32 tools allows you to avoid open source or Chinese tools.

For a real mission build, you need to understand the tools available. I collected these together in part 5 Mission platform build.

11 Mission platforms (future)

Part 6 Mission platforms will (hopefully) cover my realistic future ziptie builds for specific missions.

12 If I knew then what I know now

The quadcopter world is chaotic. Building your first quad with no assistance is not fun. The big picture docs are very few (that's one reason why I created ZiptieAI). You think you finally found a great step-by-step tutorial that leaves you lost half-way through. The Youtubers make videos that avoid difficult subjects. No numbered steps (and every step matters). And rabbit hole directions, like "oh yes, you can also do this.. for other options see the link... only do this if you want to ...".

How I would have done things differently:

  • Get something into the air ASAP (do the AI later).
  • But I never found a good "quick start for drones), so the best bet is joinning a local drone club to get help.
  • Don't expect to make quick drone progress.

How I would do things differently now:

  • Follow the ZiptieAI directions (when they are finished)!

You can contact me @ ziptieai@gmai.com.

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