无人机开发分享——四旋翼无人机打击算法仿真验证分享

上一期分享了四旋翼无人机如何实现追踪目标并撞击的算法开发思路,有很多人想验证一下这个打击算法思路的可行性。前段时间比较忙,今天空下来点时间来验证一下这个代码,在仿真中用四旋翼无人机打击目标。

上期中写了主要思路是

(1)感知模块

训练目标信息,载荷装在无人机上,获取目标信息,发送目标位置等信息

(2)规划模块

规划航线、局部避障、末端快速打击

(3)控制模块

跟踪航线、期望姿态指令。

今天在个人笔记本对上述算法进行快速验证一下

一、部署环境

(1)系统:ubuntu20.04

(2)ros2foxy

(3)px4 sitl 软件在环仿真

(4)Micro xrcedds ros2 转uorb插件

(5)qgc地面站

(6)gazebo classic

二、模型与世界

模型与世界选用原则:简单、好用、免费。符合无人机自由开发坊作风。

(1)无人机模型选择四旋翼无人机经典模型iris,用的最多的,也是最简单的

(2)打击目标用的行走的人,今天先打击静态人,哪天有空给人的模型加个行走插件,打击动目标,动目标对算法调参要求较高,比较耗费时间

(3)世界模型选用sonoma raceway 经典模型

三、算法架构

Image

依旧如上期内容:目标检测、订阅位置、制导计算、控制输出

今天的目标识别模块由于时间问题,没有用yolo等做目标训练识别,这个有时间可以做一下,不算复杂。结果都是输出目标位姿态等信息。今天采用模型位置信息发布作为代替。

由于ubuntu20不太好用,要么不更新了,要么很多模式更好适配ros1.但是由于最近开发用ros2 比较多,习惯了,所以今天还是用ros2.但是确实今天弄人的模型发布ros2话题的实时位置比较麻烦,还有插件都不支持,tips1:最后研究半天是用了这个插件libgazebo_ros_p3d.so,可以发布ros2话题的实时位置,试了好多个。

c 复制代码
<!-- Gazebo ROS2 Foxy原生插件:libgazebo_ros_p3d.so 发布位姿/里程计话题 -->
<plugin name="gazebo_ros_p3d_person" filename="/opt/ros/foxy/lib/libgazebo_ros_p3d.so">
  <!-- ************************ 需修改的参数 ************************ -->
  <ros_node_name>person_p3d_publisher</ros_node_name>  <!-- 节点名,自定义,含模型名即可 -->
    <!-- 新增命名空间:兜底实现自定义话题名,核心 -->
  <ns>/gazebo/person</ns>
  <topic_name>/gazebo/person/personodom</topic_name>        <!-- 发布的ROS2话题名,自定义 -->
  <body_name>link</body_name>                  <!-- 模型的基连杆,PX4模型固定为base_link,target模型若无则写模型名(如target) -->
  <!-- ************************************************************* -->

  <!-- 固定配置:适配PX4-Gazebo仿真 -->
  <update_rate>10.0</update_rate>                  <!-- 发布频率,PX4建议100Hz -->
  <gaussian_noise>0.001</gaussian_noise>            <!-- 噪声值,仿真可设小一点 -->
  <publish_odometry>true</publish_odometry>         <!-- 发布Odometry话题,固定true -->
  <publish_tf>false</publish_tf>                    <!-- 是否发布TF变换,若需RViz2可视化可设true -->
  <frame_name>world</frame_name>                    <!-- 参考坐标系,Gazebo世界坐标系,固定world -->
  <child_frame_name>person_walking/link</child_frame_name><!-- TF子坐标系,含模型名,自定义 -->
</plugin>

广播实时位置,然后订阅位置,计算控制输出,通过px4_msgs offboard模式控制px4无人机。

平面速度是16m/s,垂向是4m/s。

对了今天还有个插曲是,我个人笔记本的px4版本比较老,px4_msgs与新的不太一致,导致microxrcedds的发布的无人机局部位置信息无法反序列化,这个也浪费了点时间。tips2:记得PX4飞控代码和ROS2工程依赖的头文件保持一致。

四、开始仿真
1)无人机起飞到10米

(2)订阅到目标位置

(3)飞到距离目标30m距离

(4)发动末端导引,快速撞击目标

打击策略比较重要,横向和纵向加速度参数、高度控制节点掌控,需要好好花费时间调试打击策略和参数。

vokoscreen-2026-02-01_22-32-27

特写镜头,16m/s的速度,没有加速

vokoscreen-2026-02-01_22-36-43

后续可以添加目标倒下或者毁灭的效果,有时间的可以尝试。

本期的主要内容就是对上期分享的打击算法进行简单复现一下。主要省略了目标识别和动态目标打击,后续会继续复现,原理也不复杂,操作也不繁琐。今天抽了点时间简单复现,场景过于简单请不要介意。

打击算法和仿真流程全套代码 斯我(10Y)

相关推荐
动物园猫1 天前
无人机灾害场景人体目标检测数据集:10,000张图像 | 目标检测
人工智能·目标检测·无人机
tianxuanjg2 天前
高精密CNC 加工厂家该如何挑选
经验分享·机器人·无人机·材质
mtouch3332 天前
全球水面海面动态仿真规划生成数字沙盘电子沙盘系统
人工智能·机器人·无人机·虚拟现实·电子沙盘·数字沙盘
GrepowTattu3 天前
新品发布 | Tattu TA75八通道智能充电器,让无人机训练补能更高效
无人机
专业工业电源打工人3 天前
无人机硬件设计:工业模块电源选型的三个核心要点|电子工程师实操指南
无人机·国产化·工业电源
数模竞赛Paid answer4 天前
2023年五一杯数学建模A题无人机定点投放问题求解全过程完整文档及程序
算法·数学建模·无人机·五一杯
一根数据线4 天前
不用无人机也不用软件,AI也能直接从地图生成3D模型?
人工智能·3d·3d建模·无人机·倾斜摄影·造形家·场地建模
这张生成的图像能检测吗5 天前
(论文速读)基于 MEMS 振动的无人机智能健康监测:螺旋桨损伤与结构松动检测
人工智能·机器学习·无人机·信号处理·故障诊断·特征提取·缺陷识别
这张生成的图像能检测吗5 天前
(论文速读)多旋翼飞行器螺旋桨损伤的检测、分类和估计
人工智能·机器学习·无人机·故障诊断·缺陷识别·旋翼故障
andxe5 天前
安科士 AndXe|光纤通信重塑无人机链路:无人机专用光纤光模块技术解析
无人机·光模块·光通信