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

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

上期中写了主要思路是

(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)

相关推荐
小O的算法实验室10 小时前
IEEE IOTJ,基于点云网络辅助粒子群算法+三维无人机基站部署
无人机
雨晨源码(同名B站)12 小时前
深度学习毕业设计选题推荐:基于卷积神经网络的无人机影像建筑裂缝裂纹检测分类与分割系统(LeNet-5 二分类模型、GCN-Res50分割模型)
深度学习·信息可视化·分类·cnn·毕业设计·无人机·课程设计
沃达德软件1 天前
智慧无人机图像识别分析技术
人工智能·目标检测·计算机视觉·目标跟踪·视觉检测·无人机
AiNightVision1 天前
电力巡检夜视方案选型指南——无人机/机器人/固定监测三种场景怎么选
人工智能·科技·车载系统·机器人·无人机·边缘计算·视频
sxgzzn1 天前
如何利用无人机提升光伏巡检效率?
运维·重构·无人机·开关柜局放在线监测·光伏运维管理系统
迅翼SwiftWing2 天前
论文分享 | 固定翼无人机深失速栖停,NMPC 跟踪的稳定性从哪来?轨迹优化与时变终端设计
无人机
FPGA小迷弟2 天前
FPGA 与无人机:从飞控实时性到智能载荷的硬件加速实践
人工智能·ai·fpga开发·架构·无人机·ai编程
zzlyx992 天前
无电子身份无人机的精准侦测与高端反制
无人机
高升说2 天前
无人机吊舱相机选型:稳定、变焦与画质的工程权衡
数码相机·无人机
迅翼SwiftWing2 天前
论文分享|UC Berkeley 提出风感知 NMPC:固定翼无人机 10m/s 强风下稳定保持空速
无人机·固定翼·开源垂起固定翼