【无人机】四旋翼飞行器控制、路径规划和轨迹优化(Matlab代码实现)

👨‍🎓个人主页:研学社的博客  

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

2.1 无人机路径规划

 2.2 控制

🎉3 参考文献

🌈4 Matlab代码及文章讲解


💥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}
}

🌈4 Matlab代码及文章讲解

  • 19
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值