Hi, I’m Nicolau, nice to meet you all! I’m new to this forum. I’m a Control and Automation Engineering student, and my career has always been focused on software and firmware development, but I have no experience with drones, planes, or any other flying objects haha. I recently got the urge to build an autonomous drone project to monitor some animals I keep on a small farm, and I saw it as a great opportunity to learn more about the subject. I don’t understand the physics involved yet, but my end goal is to optimize the drone’s movement according to my needs. I’d like to study the main types of motors used, direction changes, and movement synchronization — could anyone point me to where I should start? I’m feeling a bit lost about all this.
Since you already have a background in control and automation, I’d recommend starting with an existing autopilot platform such as ArduPilot rather than building the entire flight controller from scratch.
First, learn the basic multirotor concepts: thrust, torque, attitude control, coordinate frames, and PID control. Then try SITL simulation with Gazebo or another simulator before building hardware.
A good learning path would be:
Build or buy a simple quadcopter and get it flying reliably in manual/stabilized modes.
Learn how the flight controller, ESCs, motors, propellers, GPS, compass, and telemetry system work together.
Test waypoint missions and autonomous flight using ArduPilot
After that, add the farm-monitoring functions such as cameras, animal detection, route planning, and possibly ROS 2.
For motor direction and mixing, you normally don’t need to synchronize each motor yourself. The flight controller calculates the required motor outputs from the desired roll, pitch, yaw, and thrust.
I’d avoid trying to optimize the drone’s movement at the beginning. First make the aircraft stable and reliable, then work on trajectory optimization and autonomy.
ArduPilot Copter documentation is a good place to start:
ArduPilot SITL + Mission Planner or QGroundControl would also be a very good starting point for learning autonomous flight.
Thank you so much, Jack5, I’ll follow your advice. Actually, my plan was already to learn the basic concepts first, since there’s no way I can optimize something I don’t understand haha.
Do you know of any development kit I could start with? I came across the Pixhawk — does it allow me to implement my own control logic?
Yes, you can definitely implement your own control logic with a Pixhawk-based flight controller.
Just to clarify, Pixhawk itself is the flight controller hardware. If you use open-source firmware such as ArduPilot or PX4, you can modify the firmware and implement your own flight modes, controllers, and control logic.
Personally, I would recommend starting with something like the CubePilot EDU 450:
It is a fairly conventional and well-balanced platform, so I think it is very suitable for learning the fundamentals of flight control and tuning.
This is just my personal opinion, but I would avoid choosing the cheapest DIY kit simply because of the price, especially when you are starting out. With some inexpensive kits, component quality and integration can vary, and you may end up troubleshooting the motors, ESCs, power system, frame, GPS, wiring, etc. instead of actually learning the flight-control side.
Even if the initial cost is a little higher, I think starting with a reliable and well-documented platform can save you a lot of time.
If you want something a little more affordable, the Holybro X500 V2 is also a good option:
My recommendation would be to first get comfortable with the standard flight modes, parameters, PID tuning, EKF, and basic flight characteristics. After you understand how the baseline system behaves, then start modifying the control logic or implementing your own controller.
That way, when something goes wrong, it is much easier to determine whether the problem is coming from your control algorithm or from the hardware/configuration.