【无人机】多障碍避障轨迹设计的混合整数线性规划(Matlab实现)

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

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

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

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

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

多障碍避障轨迹设计的混合整数线性规划是一种数学优化方法,用于设计机器人或自动驾驶车辆等智能系统的运动轨迹,以避开多个障碍物。该问题涉及在给定环境中,通过调整机器人或车辆的运动路径,使其在避开多个障碍物的同时达到特定的目标位置。混合整数线性规划(MILP)是一种优化技术,它结合了线性规划和整数规划的特点,能够在考虑连续变量和离散变量的情况下进行优化。

📚2 运行结果

主函数部分代码:

function CollisionMILP5
%%Mixed integer linear programming of trajectory in 3 dimensional space
% with obstacle avoidance. Bounded by initial and final postion and 
% velocity, max thrust, and total time.
% 
% Accepts values for total time (tf), time step (dt), inital and final
% states (x0,v0,xf,vf), max thrust for each axis (uxmax), and mass (m).
% Also accepts the locations of multiple objects to avoid collsion.
clc,close all

%% Inputs
% Simulation time
tf = 30; %sec
dt = 0.5; %sec

% Initial state
x0 = 0; %m
y0 = 20;
z0 = 5;
vx0 = 4; %m/s
vy0 = 0;
vz0 = 0;

% Final state
xf = 40; %m
yf = 40;
zf = 0;
vxf = 0; %m/s
vyf = 0;
vzf = 0;

% Vehicle parameters
uxmax = 0.25; %N
uymax = uxmax;
uzmax = uxmax;
m = 1; %kg

% Restricted area
xbmin = [10 30 15]; %m
ybmin = [10 20 25];
zbmin = [-10 -10 -10];
xbmax = [20 40 25];
ybmax = [20 30 35];
zbmax = [10 7 15] ;

% Safety buffer
d = 0.5; %m

%% Pre-optimization setup
t = 0:dt:tf;
Nsim = length(t)-1;
Nvar = 6*Nsim;
NObjs = length(xbmin);
Nbi = NObjs*Nvar;

alpha = dt/m;
beta = dt^2/m;
g = 0;

% Parameter bounds, function coefficients, integer contraints
lb = zeros(Nvar+Nbi,1);
ub = ones(Nvar+Nbi,1);
f = zeros(Nvar+Nbi,1);
for i = 1:6:Nvar
    ub(i:i+1) = [uxmax;uxmax];
    ub(i+2:i+3) = [uymax;uymax];
    ub(i+4:i+5) = [uzmax;uzmax];
    f(i:i+5) = dt*ones(6,1);

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]黎明,陈娇娇,周海等.基于伴随方法的无人机气动隐身优化研究[J/OL].航空学报:1-13[2024-03-13].http://kns.cnki.net/kcms/detail/11.1929.v.20240311.1849.010.html.

🌈4 Matlab代码实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值