【无人机设计与控制】基于控制避障函数(CBF)的四旋翼安全控制

devtools/2024/10/21 13:35:30/

摘要

本文提出了一种基于控制避障函数(Control Barrier Function, CBF)的四旋翼无人机安全控制策略,旨在确保无人机在复杂环境中能够有效避障并保持安全飞行。通过对CBF的设计和引入,结合四旋翼的动力学模型,解决了传统控制方法中难以处理的碰撞问题。实验结果表明,CBF控制方法能够在多障碍物环境中实现安全可靠的飞行。

理论

无人机避障是自主飞行系统中一个核心问题。对于四旋翼无人机而言,其复杂的动力学模型和高自由度运动使得避障问题更具挑战性。控制避障函数(CBF)是一种基于控制理论的函数,能够为系统提供一种形式化的安全约束,通过将障碍物区域建模为安全约束空间,CBF能够保证无人机的状态始终处于安全集内。

1. 四旋翼动力学模型: 四旋翼无人机的动力学模型可以通过牛顿-欧拉方程进行描述,包含了平移和旋转运动方程。设无人机的状态为位置𝑝=[x,y,z] 和速度 𝑣=[V𝑥,V𝑦,V𝑧],控制输入包括四个电机的转速。无人机的运动受到重力、空气阻力以及电机推力的影响。

2. 控制避障函数(CBF): CBF是一种将障碍物区域定义为不安全空间,并通过约束无人机的控制输入,使其始终远离不安全区域的数学工具。具体而言,CBF通过构造一个非负函数 ℎ(𝑥),保证当 ℎ(𝑥)>0时,无人机处于安全区域,当 ℎ(𝑥)≤0时,则进入不安全区域。通过控制输入确保 ℎ˙(𝑥)+𝛼(ℎ(𝑥))≥0(其中 𝛼是一个增益函数),可以避免碰撞。

实验结果

实验场景模拟了无人机在三维空间内飞行,并设置了多个静态障碍物。无人机从指定起点起飞(图中的绿色方块),经过多个障碍物(红色圆球)后到达指定的终点。实验结果显示,基于CBF的控制策略能够有效规划出避障路径,并保持无人机的飞行安全,绿色的飞行轨迹显示了无人机成功避开障碍物的过程。

从实验结果可以看出,CBF能够实时响应环境变化,在动态调整路径的同时保证无人机的飞行安全。

部分代码

无人机避障仿真代码
% 初始化参数
nObstacles = 20;  % 障碍物数量
obstaclePositions = rand(nObstacles, 3) * 10 - 5;  % 障碍物随机位置
startPos = [0, 0, 0];  % 起点
endPos = [5, 5, 5];  % 终点
dt = 0.1;  % 时间步长
maxSteps = 100;  % 最大步数
pos = startPos;  % 无人机初始位置
path = pos;  % 存储路径% 控制避障函数 (CBF)
function [u] = controlCBF(pos, obstaclePositions)u = [0, 0, 0];  % 初始控制输入for i = 1:size(obstaclePositions, 1)obs = obstaclePositions(i, :);h = norm(pos - obs) - 1;  % 避障函数:障碍物距离阈值设为1if h <= 0  % 如果进入不安全区域u = u + (pos - obs) / norm(pos - obs);  % 远离障碍物endendu = u / max(norm(u), 1);  % 正则化控制输入
end% 主循环
for step = 1:maxSteps% 计算控制输入u = controlCBF(pos, obstaclePositions);% 更新无人机位置pos = pos + u * dt;path = [path; pos];  % 记录路径% 判断是否到达终点if norm(pos - endPos) < 0.1break;end
end% 绘制结果
figure;
scatter3(obstaclePositions(:,1), obstaclePositions(:,2), obstaclePositions(:,3), 100, 'r', 'filled');  % 绘制障碍物
hold on;
plot3(path(:,1), path(:,2), path(:,3), 'g--');  % 绘制路径
plot3(startPos(1), startPos(2), startPos(3), 'gs', 'MarkerSize', 10, 'MarkerFaceColor', 'g');  % 绘制起点
plot3(endPos(1), endPos(2), endPos(3), 'bs', 'MarkerSize', 10, 'MarkerFaceColor', 'b');  % 绘制终点
xlabel('x / m');
ylabel('y / m');
zlabel('z / m');
title('无人机避障路径规划');
grid on;
hold off;

参考文献

  1. Ames, A. D., Xu, X., Grizzle, J. W., & Tabuada, P. (2017). Control barrier function based quadratic programs for safety critical systems. IEEE Transactions on Automatic Control, 62(8), 3861-3876.

  2. Li, P., Luo, X., & Zhou, J. (2018). Quadrotor flight control with obstacle avoidance based on control barrier functions. In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), 2742-2747.

  3. Teo, R., Yan, H., & Spindler, K. (2019). Safe control design for quadrotors using control barrier functions. Journal of Intelligent & Robotic Systems, 96(3-4), 579-593.

(文章内容仅供参考,具体效果以图片为准)


http://www.ppmy.cn/devtools/125585.html

相关文章

C++从入门到起飞之——(multi)set与(multi)map的的使用 全方位剖析!

&#x1f308;个人主页&#xff1a;秋风起&#xff0c;再归来~&#x1f525;系列专栏&#xff1a;C从入门到起飞 &#x1f516;克心守己&#xff0c;律己则安 目录 1. 序列式容器和关联式容器 2. set系列的使⽤ 2.1 set和multiset参考⽂档 2.2 set类的介绍 2.3 se…

Java后端基础练习|请求参数

请求参数&#xff0c;可以通过四种方式传递到后端 请求路径查询参数请求体请求头 controller代码 package com.urfread.breaknews.core.controller;import com.urfread.breaknews.core.common.model.ResultData; import lombok.Data; import org.springframework.web.bind.a…

【R语言】随机森林+相关性热图组合图

数据概况文末有获取方式 随机森林部分 #调用R包 library(randomForest) library(rfPermute) library(ggplot2) library(psych) library(reshape2) library(patchwork) library(reshape2) library(RColorBrewer) ​ ​ #读取数据 df<-read.csv("F:\\EXCEL-元数据\\2020…

人工智能和机器学习之线性代数(一)

人工智能和机器学习之线性代数&#xff08;一&#xff09; 人工智能和机器学习之线性代数一将介绍向量和矩阵的基础知识以及开源的机器学习框架PyTorch。 文章目录 人工智能和机器学习之线性代数&#xff08;一&#xff09;基本定义标量&#xff08;Scalar&#xff09;向量&a…

Ubuntu 18.04安装storcli查看阵列信息

rootCeph03:/opt/MegaRAID/storcli# cat /etc/issue Ubuntu 18.04.5 LTS \n \l 准备好storcli的安装包 解压 解压之后可以看到 根据系统版本选择 把storcli_1.18.11_all.deb包传到服务器 使用命令dpkg -I storcli_1.18.11_all.deb ./storcli64 show ./storcli64 /c1 show …

2.随机变量及其分布

第二章 随机变量及其分布 1. 随机变量及其分布 1.1 随机变量的定义 定义1.1 随机变量 ​ 定义在样本空间 Ω \Omega Ω上的实值函数 X X ( ω ) XX(\omega) XX(ω)称为随机变量,常用大写字母 X , Y , Z X,Y,Z X,Y,Z等表示随机变量&#xff0c;其取值用小写字母 x , y , z …

智汇云舟亮相WAFI世界农业科技创新大会,并参编数字农业产业图谱

10月10日&#xff0c;2024WAFI世界农业科技创新大会农食行业创新与投资峰会在北京金海湖国际会展中心举行。中国农业大学MBA教育中心主任、教授付文阁、平谷区委常委、统战部部长刘堃、华为公共事业军团数字政府首席专家刘丹、荷兰瓦赫宁根大学前校长Aalt Dijkhuizen、牧原食品…

通过API获取Milvus实例详情

GetInstanceDetail - 获取实例详情 获取单个实例的详细信息。 调试 您可以在OpenAPI Explorer中直接运行该接口&#xff0c;免去您计算签名的困扰。运行成功后&#xff0c;OpenAPI Explorer可以自动生成SDK代码示例。 ​编辑调试 授权信息 下表是API对应的授权信息&#…