A method of operating a multicopter comprising a body and n > 2 thrusters, each thruster independently actuated to vector thrust angularly relative to the body about first and second axes (15, 20), the method comprising: modelling dynamics of the multicopter with a mathematical model comprising coupled, non-linear combinations of thruster variables; decoupling the mathematical model into linear combinations of thruster control variables, sensing at least one characteristic of multicopter dynamics; comparing the sensed data with corresponding target characteristics; computing adjustments in thruster control variables for reducing the difference between the sensed data and the target characteristics according to a control algorithm; and actuating each thruster according to the computed thruster control variables to converge the multicopter towards the target characteristics; wherein the control algorithm is based on the decoupled mathematical model such that each thruster control variable can be adjusted independently, wherein the thruster control variables are independently adjustable (i) to control thrust amplitude and orientation of each thruster about the first axis; wherein each thruster is further independently operable to vector thrust angularly relative to the body about a second axis orthogonal to the first axis; wherein the thruster control variables are further independently adjustable to control orientation of each thruster about the second axis; wherein the model is decoupled by differentiating with respect to time, such that the thruster control variables comprise first derivatives of a) angular velocity of each thruster, b) orientation of each thruster about its first axis and c) orientation of each thruster about its second axis; wherein the method further comprises a step of integrating the new thruster control variables with respect to time to obtain values of thrust amplitude and orientation for actuating each thruster; wherein each thruster is pivotably mounted to the body via two concentrically and orthogonally arranged gimbals (60, 70) configured to rotate the thruster about the first axis and second axis respectively, each gimbal being independently rotatable relative to the body via a worm gear (66, 76), and wherein each worm gear is actuated according to the computed thruster control variables. modelling dynamics of the multicopter with a mathematical model comprising coupled, non-linear combinations of thruster variables; decoupling the mathematical model into linear combinations of thruster control variables, sensing at least one characteristic of multicopter dynamics; comparing the sensed data with corresponding target characteristics; computing adjustments in thruster control variables for reducing the difference between the sensed data and the target characteristics according to a control algorithm; and actuating each thruster according to the computed thruster control variables to converge the multicopter towards the target characteristics; wherein the control algorithm is based on the decoupled mathematical model such that each thruster control variable can be adjusted independently, wherein the thruster control variables are independently adjustable (i) to control thrust amplitude and orientation of each thruster about the first axis; wherein each thruster is further independently operable to vector thrust angularly relative to the body about a second axis orthogonal to the first axis; wherein the thruster control variables are further independently adjustable to control orientation of each thruster about the second axis; wherein the model is decoupled by differentiating with respect to time, such that the thruster control variables comprise first derivatives of a) angular velocity of each thruster, b) orientation of each thruster about its first axis and c) orientation of each thruster about its second axis; wherein the method further comprises a step of integrating the new thruster control variables with respect to time to obtain values of thrust amplitude and orientation for actuating each thruster; wherein each thruster is pivotably mounted to the body via two concentrically and orthogonally arranged gimbals (60, 70) configured to rotate the thruster about the first axis and second axis respectively, each gimbal being independently rotatable relative to the body via a worm gear (66, 76), and wherein each worm gear is actuated according to the computed thruster control variables.