👨🎓个人主页:研学社的博客
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
在过去的七年中,材料、电子、传感器和电池的进步推动了微型无人机(MA V)的发展,长度在0.1-0.5米之间,质量在0.1-0.5公斤之间。
一些研究小组构建并分析了10厘米范围内的MA v[2,3]。其中最小的是Picoflyer,螺旋桨直径60毫米,质量3.3 g[4]。50厘米范围的平台更为普遍,有几个团队已经建造和飞行了这种尺寸的系统[5-7]。事实上,在这个尺寸范围[8]中,有几种商业上可用的RC直升机和研究级直升机。[9]中介绍了开发自主微型UA Vs所面临的挑战。
在本项目中,我们介绍了用于GRASP多MAV试验台的四旋翼建模,以支持MAVs协调动态飞行的研究。本文档来源于完整的参考文献[10],它描述了建模、控制和集成现成的四旋翼的方法。
原文摘要:
n the last seven years, advances in materials, electronics, sensors and batteries have fueled a growth in the develop-ment of Micro Unmanned Aerial V ehicles (MA Vs) that are between 0.1-0.5 m in length and 0.1-0.5 kg in mass [1].A few groups have built and analyzed MA Vs in the 10 cm range [2, 3]. One of the smallest is the Picoflyer with a 60 mm propeller diameter and a mass of 3.3 g [4]. Platforms in the 50 cm range are more prevalent with several groups having built and flown systems of this size [5–7]. In fact, there are several commercially available RC he-licopters and research grade helicopters in this size range [8]. A review of the challenges in develop autonomous micro UA Vs is presented in [9]. In this project, we introduce the modeling of quad rotors used in the GRASP Multiple MA V testbed to support research on coordinated, dynamic flight of MAVs. This document is derived from the complete reference [10] which describes the approach to modeling, control and integrating off-the-shelf quad rotors.
详细文章讲解见第四部分。
📚2 运行结果
2.1 无人机路径规划
运行视频:
【无人机】四旋翼飞行器控制、路径规划和轨迹优化(Matlab代码实现)
2.2 控制
运行视频:
【2】【无人机】四旋翼飞行器控制、路径规划和轨迹优化(Matlab代码实现)_哔哩哔哩_bilibili
部分代码:
function [F, M, trpy, drpy] = controller(qd, t, qn, params)
% CONTROLLER quadrotor controller
% The current states are:
% qd{qn}.pos, qd{qn}.vel, qd{qn}.euler = [roll;pitch;yaw], qd{qn}.omega
% The desired states are:
% qd{qn}.pos_des, qd{qn}.vel_des, qd{qn}.acc_des, qd{qn}.yaw_des, qd{qn}.yawdot_des
% Using these current and desired states, you have to compute the desired controls
% position controller params
Kp = [15;15;30];
Kd = [12;12;10];
% attitude controller params
KpM = ones(3,1)*3000;
KdM = ones(3,1)*300;
acc_des = qd{qn}.acc_des + Kd.*(qd{qn}.vel_des - qd{qn}.vel) + Kp.*(qd{qn}.pos_des - qd{qn}.pos);
% Desired roll, pitch and yaw
phi_des = 1/params.grav * (acc_des(1)*sin(qd{qn}.yaw_des) - acc_des(2)*cos(qd{qn}.yaw_des));
theta_des = 1/params.grav * (acc_des(1)*cos(qd{qn}.yaw_des) + acc_des(2)*sin(qd{qn}.yaw_des));
psi_des = qd{qn}.yaw_des;
euler_des = [phi_des;theta_des;psi_des];
pqr_des = [0;0; qd{qn}.yawdot_des];
% Thurst
qd{qn}.acc_des(3);
F = params.mass*(params.grav + acc_des(3));
% Moment
M = params.I*(KdM.*(pqr_des - qd{qn}.omega) + KpM.*(euler_des - qd{qn}.euler));
% =================== Your code ends here ===================
% Output trpy and drpy as in hardware
trpy = [F, phi_des, theta_des, psi_des];
drpy = [0, 0, 0, 0];
end
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
@software{Lu_yrlu_quadrotor_Quadrotor_Control_2022, author = {Lu, Yiren}, doi = {10.5281/zenodo.6796215}, month = {7}, title = {{yrlu/quadrotor: Quadrotor Control, Path Planning and Trajectory Optimization}}, version = {1.0.0}, year = {2017} }