I’m having a really hard time trying to understand how the PX4 system works.
Let’s say I have a Pixhawk mini 4 and I want to create a coaxial helicopter drone using it.
I already did all of the setting up with QGroundControl : installed the firmware, calibrated every sensor, correctly set up and tested the RC system and set my switch to choose between Manual and Stabilized flight modes.
My question is: what is the flow of communication? Which piece of software decides exactly when to use the RC system and how to use it? My understanding until now is the following (please correct me if I’m wrong):
- I turn up the pixhawk FC. Having selected the airframe, the airframe file will both load the mixer file and initialize the rc.* file.
- Then, some driver/module checks the flight mode (using a uORB topic? Which one?) and decides if/how to use the RC input.
- The same driver/module uses RC to send to commands to some kind of actuator controller topic (actuator_control_0, maybe?)
- Some other driver/module reads the actuator controller messages and sent it to the mixer (how do I access the pre-mixer and post-mixer values?)
Is there something else I should do? I’m in manual control mode and the actuator_control_0 topic doesn’t change when I turn the knobs on my RC remote controller, even though the RC_input changes the way it should.
Long story short, I’m completely lost about the way the system works, and reading the development documentation didn’t help me much. I’d really appreciate if someone could explain these concepts to me.