I have some questions and could use some clarification that I haven't been able to get through my own reading. My project has essentially gone full-circle and I am questioning the basics.
My project info:
Airframe: DJI F450 frame, motors, ESCs kit
Autopilot: 3DR (genuine) Pixhawk, with 3DR compass/GPS
Telemetry: 3DR v2
Goal: to build a platform for experimentation with vision-based autonomy and navigation.
I started my project around a year ago, using a Pixhawk and PX4 software. First assumption - I have been operating on the belief that these are fully compatible. Is that true? I understand that the Pixhawk is derived from and the hardware is very similar to, the PX4 board set.
After trying for three months to get the Pixhawk/PX4 to work, I shelved the project in frustration. Initially, the setup and configuration went really well. The early version of QGroundControl that I had even had a default PID tune that was a perfect match for my F450. However, there were two features that I couldn't get to work. I couldn't change flight modes, and I couldn't send mission waypoint data to the drone. I could arm/disarm and get perfect telemetry data. I reflashed the PX4 several times; the radios too. I tried four different GCSs on four different computers (2 x86/Windows, 2 Android), but they all had more or less the same problems. I got some expert advice on forums, but no one was able to reproduce my problems.
That was around nine months ago. Recently I got the jones to pick up the project again and gave 3DR tech support a call. They told me I had the wrong software installed on the Pixhawk. I reflashed it with their APM flight stack and the thing works like a top. It still needs some PID tuning, but I've made several successful flights on autopilot.
One might assume case-closed. However I don't want the APM flight stack. This opinion is based on prior reading and a little assumption. My belief is that the PX4 flight stack is a bit more sophisticated than the Ardupilot equivalent. I've done some development on AVR/ATMega and I'm well aware of the limitations. My assumption is that APMCopter for the Pixhawk is a ported version of a flight stack that was written for an 8-bit, 16MHz micro. Is this true? If so, it seems to me that this is a less desirable solution. I would prefer to have software that can take advantage of the more powerful Arm4 and it's co-processor, rather than just running simple code faster.
If my assumptions are correct, then I would still like to get the PX4 flight stack working. I would assume that I'm missing something very basic, since many others apparently find this hardware/software combination routine. So I would like to ask the community for advice. Any that you can offer is very much appreciated. I won't be offended if you have really basic suggestions. I'm a MAV noob. If I've left out important details, I apologize. Please ask, and I'll do my best to answer.