I'm interested in developing my own app to fly the drone, basically I want to replace the GCS and use my software to pilot the drone indoor based on sensors data(gyro, accelerometer, depth camera..) and a reconstructed map of the environment, I'm obviously very far from my goal.
At the moment I'm trying to figure out the best way to connect to the drone over wifi, read sensors data and issue commands, I thought to start with a nodejs app to learn the basics(mavlink), I'll then build a c++ app to preview the drone position/orientation and implement the flight logic.
For what I understand all the communications are done using MAVlink, I assume mavlink is enable on the pxfmini if I use apm or px4, otherwise I can run the mavproxy.py script to enable it, is this correct?
I found a mavlink npm module that I'd like to use, but I'm not sure I understand how to enstablish the communication, the node library is initialised using ids rather thatn ip and port number, but for instance apm planner just binds to the port 6000 and (I guess) waits for a broadcast message to initialise.
did anybody try this npm package?
ROS looks very intersting, I'm sure I'll use it at some point, but I was hoping to leave it out for now to simplify the system.
For what I understand, the flight stack takes care of things like stabilizing the drone, work with failsafes, mission planning, return to home etc, probably all things that I don't actually need if I'm going to use my own app, can I get rid of it APM/PX4 or should I still use some of it? If I don't use APM, can I just run mavproxy.py to take control of the pxfmini?
looks interesting, but it seems more useful for mission planning, I'm also not keen on developing in python.