## 1 Introduction
Comparing the result of both controllers found that the RM-based controller has a faster response time within 0.5 s in all states. The GA-based controller gives a slightly slower response in attitude response with 1.5 s of rising time, but it is better than the RM-based controller by 0.2 s in \(Z\) motion. Both controllers have zero overshoot and steady-state error. [PERSON] and [PERSON] [41] presented a linear version of the ADRC scheme for altitude and attitude control of the quadrotor under a wind gust. In this paper, a linear ESO was used to act as a compensator to eliminate the wind gust effectively. The optimization technique based on the ABC algorithm was used to obtain the optimal control performance. The simulation result shows that the attitude angle can be stabilized quickly with high accuracy with \(\approx\)0 overshoot and less than 2% steady-state error. The quadrotor can reach the desired altitude faster and with less steady-state error than using a PID controller when the disturbance was introduced. [PERSON], [PERSON] [42] proposed a PSO algorithm based on non-linear model predictive control (MPC) for trajectory tracking control of the quadrotor in the presence of environmental perturbation. The purpose of PSO was to solve the optimization problem of the nonlinear MPC. Finding shows that good tracking performance is obtained when no disturbance present with an acceptable control limit. When the disturbance is present, the quadrotor moves away from the desired trajectory but manages to return to the desired path again when the disturbance disappears. [PERSON], [PERSON] [43] proposed a quadrotor position controller using a first-order TSK fuzzy logic controller optimization algorithm. In their study, three evolutionary algorithms, namely GA, PSO, and ABC were used to facilitate automatically tune the antecedent and consequent parameter of the controller. The proposed controller's performance was compared under three different flight conditions: constant step input, varying step input, and the sine function. The finding shows that the controller can stabilize the quadrotor for a given constant step input and track the desired reference successfully within a short time. GA-FLC produces an overshoot of 10.58% and 1.43% for a 0.1 and 0.4 mutation rate, respectively, followed by PSO-FLC with 0.81% while ABC-FLC with zero overshoot. ABC-FLC also gives a faster settling time than GA-FLC and PSO-FLC. Although GA-FLC has the highest overshoot, it provides the quickest rise time than ABC-FLC and PSO-FLC. In the second flight condition, the controller performance is similar to the previous one, where ABC-FLC still gives a faster settling time with a smaller overshoot. In comparison, GA-FLC gives the highest overshoot with a faster rise time. In the third flight condition, all three controllers successfully track a sine function track with a faster convergence rate. However, ABC-FLC has the lowest cost function as the iteration time increases. Overall, ABC-FLC provides better performance than GA-FLC and PSO-FLC. In another work, a comparative study between four different nature-inspired optimization algorithms, which are GA, evolutionary strategy (ES), differential evolutionary (DE), and CS, were used to tune the PID controller for quadrotor path tracking problem [4]. The author concludes that ES and GA show the best path tracking result, yet ES is sensitive to rotational control. [PERSON], [PERSON] [40] conducted a study on the optimization-based PID controller to obtain an optimal gain parameter for the controller. In this paper, the RM method and GA were used to optimize the PID controller's gain for altitude and attitude angle control of the quadrotor. Comparing the result of both controllers found that the RM-basedcontroller has a faster response time within 0.5 s in all states. The GA-based controller gives a slightly slower response in attitude response with 1.5 s of rising time, but it is better than the RM-based controller by 0.2 s in Z motion. Both controllers have zero overshoot and steady-state error.