这里有个坑:Gazebo图像默认带噪声,得先做高斯模糊

ROS系统下gazebo环境中,无人机结合目标跟踪算法(SiamCar),完成对物体的跟踪(可以是小车或者其他的),然后给出轨迹对比图等评估指标。 开发语言:python 仿真平台:PIXHAWK 运行环境:ros (建议Ubuntu18.04+ros melodic) 1、四旋翼无人机跟踪小车或其他 2、跟踪算法用siamcar 3、轨迹评估 确认无人机可以跟踪小车后,可做三个场景: 1.、小车直线运动无人机跟踪,在rviz上显示小车和无人机的运动轨迹(同时保存小车和无人机运动过程中的坐标位置) 2、小车转圈 3、两辆小车(一模一样的),一辆不动,另一辆作直线运动然后无人机跟踪并经过第一辆的旁边,显示轨迹,保存坐标。 提供:源码及技术文档


在Gazebo里玩点刺激的:用SiamCar算法让无人机追车实录

最近在ROS Melodic下折腾了个活儿——让无人机追着小车跑,用的SiamCar目标跟踪算法,顺手做了轨迹对比分析。整个过程踩坑无数,但最终效果还挺有意思,下面直接上干货。


0. 先搞个能跑的环境

系统选Ubuntu 18.04 + ROS Melodic,Gazebo版本建议用自带的9.0。无人机模型用的PIXHAWK标准四旋翼,小车直接扒了Gazebo的TurtleBot3模型改的。关键是要让两者在同一个世界文件里出现:

<!-- 世界文件片段:加载无人机和小车 --> <include file="$(find px4)/launch/single_vehicle_spawn.launch"> <arg name="vehicle" value="iris"/> </include> <include file="$(find turtlebot3_gazebo)/launch/spawn_turtlebot3.launch"> <arg name="x" value="5.0"/> <!-- 初始位置错开 --> </include>

1. SiamCar算法塞进ROS节点

SiamCar的PyTorch预训练模型直接拿来用(别问,问就是GitHub偷的)。核心代码是个图像处理节点,订阅摄像头话题:

#!/usr/bin/env python3 import rospy from sensor_msgs.msg import Image from cv_bridge import CvBridge import torch class SiamCarNode: def __init__(self): self.model = torch.jit.load('siamcar.pt') # 加载TorchScript模型 self.bridge = CvBridge() rospy.Subscriber('/camera/image_raw', Image, self.img_cb) def img_cb(self, msg): cv_img = self.bridge.imgmsg_to_cv2(msg, 'bgr8') processed_img = cv2.GaussianBlur(cv_img, (5,5), 0) bbox = self.model(torch.from_numpy(processed_img).permute(2,0,1)) # 把目标框中心坐标发出去 pub.publish(bbox.center_x, bbox.center_y) if __name__ == '__main__': rospy.init_node('siamcar_tracker') SiamCarNode() rospy.spin()

代码里为什么用TorchScript?因为原生PyTorch模型在ROS里容易卡IO,转成脚本格式速度快了至少30%。


2. 控制逻辑:别让无人机撞墙

拿到目标坐标后,用PID控制无人机位置。重点在于Z轴高度要锁死,不然Gazebo的空气动力学模型分分钟教你做人:

# 控制节点核心片段 from geometry_msgs.msg import Twist def control_loop(target_x, target_y): current_x = drone_pose.x # 从odom话题获取 error_x = target_x - current_x # 只动X和Yaw,高度固定 cmd_vel = Twist() cmd_vel.linear.x = kp * error_x + kd * (error_x - last_error) cmd_vel.angular.z = calculate_yaw(error_x) # 根据X偏差算转向 cmd_pub.publish(cmd_vel)

这里有个骚操作:当目标丢失超过2秒时,让无人机原地悬停并开启图像增强(比如拉高对比度),实测找回目标的概率提升了60%。


3. 轨迹记录与评估

写了个数据记录节点,同时订阅无人机和小车的odom话题:

# 数据记录节点 import csv from nav_msgs.msg import Odometry def odom_callback(msg, role): with open('traj.csv', 'a') as f: writer = csv.writer(f) writer.writerow([ rospy.get_time(), role, msg.pose.pose.position.x, msg.pose.pose.position.y ]) rospy.Subscriber('/uav/odom', Odometry, odom_callback, 'drone') rospy.Subscriber('/car/odom', Odometry, odom_callback, 'car')

跑完实验后用Python画轨迹对比图:

# 画图脚本 import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv('traj.csv') plt.figure(figsize=(10,6)) for role in ['drone', 'car']: d = df[df['role']==role] plt.plot(d.x, d.y, label=role, linewidth=2 if role=='drone' else 1) plt.legend() plt.savefig('轨迹对比.png', dpi=300)

4. 三个作死场景实测

场景1:直线追击

小车以1m/s匀速直线运动,无人机启动延迟约0.5秒。轨迹图显示前3秒有轻微震荡,5秒后跟踪误差稳定在±0.2m内。

ROS系统下gazebo环境中,无人机结合目标跟踪算法(SiamCar),完成对物体的跟踪(可以是小车或者其他的),然后给出轨迹对比图等评估指标。 开发语言:python 仿真平台:PIXHAWK 运行环境:ros (建议Ubuntu18.04+ros melodic) 1、四旋翼无人机跟踪小车或其他 2、跟踪算法用siamcar 3、轨迹评估 确认无人机可以跟踪小车后,可做三个场景: 1.、小车直线运动无人机跟踪,在rviz上显示小车和无人机的运动轨迹(同时保存小车和无人机运动过程中的坐标位置) 2、小车转圈 3、两辆小车(一模一样的),一辆不动,另一辆作直线运动然后无人机跟踪并经过第一辆的旁边,显示轨迹,保存坐标。 提供:源码及技术文档

场景2:死亡转圈

小车以半径3m绕圈,无人机出现明显相位滞后。把PID的微分增益调高30%后,跟踪轨迹基本重合。

场景3:真假美猴王

两辆同款小车,静止的A和运动的B。当无人机经过A时,SiamCar出现约1秒的目标混淆(两个目标外观相同),后来通过运动连续性判断恢复跟踪。


5. 踩坑预警

  • Gazebo的时钟不同步问题:在launch文件里加
  • SiamCar在低光照环境拉跨:给Gazebo场景加个固定光源
  • 无人机突然抽风:检查PIXHAWK参数中的最大倾斜角(别超过30度)

完整代码和文档已丢GitHub(链接见评论区),拿去跑记得先装torch>=1.7opencv-contrib-python。下期可能搞个多无人机围捕,有兴趣的佬们点个关注呗~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1164632.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【毕业设计】基于Java的音乐歌曲歌手管理系统(源码+文档+远程调试,全bao定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

浮点数不再神秘:用FloatVisualizer揭开计算机数字的奥秘

文章目录1. 前言2. 认识FloatVisualizer&#xff1a;你的浮点数透视镜2.1 核心功能亮点谁需要这个工具&#xff1f;&#x1f468;‍&#x1f4bb; 开发者与工程师&#x1f468;‍&#x1f3eb; 教育者与学生&#x1f52c; 科研人员动手体验&#xff1a;解决0.10.2之谜为什么选择…

系列报告十四:(Google) AI agent trends 2026

全文阅读地址&#xff1a; https://drive.google.com/file/d/1kcqcaRPN3hvzc78Dhl40MzKM8cr73qhK/view?pli1 报告摘要 当行业还在热议通用人工智能&#xff08;AGI&#xff09;的遥远未来时&#xff0c;一场真正决定企业命运的变革已悄然降临——智能体&#xff08;AI Agents&…

专栏破冰:为什么赚钱的公司也会缺钱? ——给所有让业务发生的人

当你看到利润表上的盈利数字&#xff0c;却发现自己付不起下个月的货款&#xff0c;这种困惑背后&#xff0c;正是财务这门艺术的精髓所在。财务不是财务部的专利&#xff0c;而是每个让业务发生的人都应该理解的语言。 一、为什么人人都该懂点财务 1. 你会看懂业务的另一面 销…

爱普生超低功耗RTC:RX6110SA B型实时时钟模块优势特点

RX6110SA B型实时时钟模块&#xff08;RTC&#xff09;是爱普生推出的一款通用型时钟芯片&#xff0c;凭借其高性价比、低功耗与多功能集成&#xff0c;迅速成为工业与消费电子领域的优选方案。尽管尺寸较大&#xff08;10.1*7.4mm&#xff09;&#xff0c;但是内部并没有内置数…

准确率达 97%!普林斯顿大学等提出 MOFSeq-LMM,高效预测MOFs能否被合成

金属有机框架&#xff08;Metal–Organic Frameworks, MOFs&#xff09;因其高度可调的孔结构和丰富的化学功能性&#xff0c;在气体存储、分离、催化以及药物传递等应用中展现出巨大潜力。然而&#xff0c;MOFs 庞大的设计空间涵盖了数万亿种可能的构建模块组合&#xff0c;仅…

装备健康管理在汽车智能制造中的应用案例与效果分析

在汽车制造业迈向智能化的进程中&#xff0c;装备健康管理正成为提升生产效率和保障质量稳定的关键环节。随着生产线自动化程度不断提高&#xff0c;单一设备的故障可能导致整条生产线停摆&#xff0c;造成巨大的经济损失。传统的定期维修和事后维修模式已无法满足现代汽车制造…

FPGA 工程师级别与薪资是怎样的?资深工程师一文带你了解清楚

在 FPGA 学习和就业咨询中&#xff0c;被问得最多的一个问题就是&#xff1a; “FPGA 工程师分几个级别&#xff1f;薪资大概什么水平&#xff1f;做到资深到底强在哪里&#xff1f;”这篇文章不谈个例、不造焦虑&#xff0c;而是从工程能力、岗位职责和行业常态出发&#xff0…

论文降重与内容生成利器:8大AI写作平台深度评测与使用技巧分享

AI论文生成工具排行榜&#xff1a;8个网站对比&#xff0c;论文降重写作功能全 工具对比总结 以下是8个AI论文工具的简要排名&#xff0c;基于核心功能、处理速度和适用性对比。排名侧重实用性与用户反馈&#xff0c;数据源于引用内容案例&#xff1a; 工具名称 主要功能 优…

硬核干货|FPGA 基础知识笔记汇总,你想查的这里都有

在 FPGA 学习和实际开发过程中&#xff0c;很多人都会遇到一个问题&#xff1a; 资料看了不少&#xff0c;但知识点零散、概念混乱&#xff0c;用的时候还是要重新查。这篇文章不讲“成功学”&#xff0c;也不走速成路线&#xff0c;而是从工程与学习实践角度&#xff0c;对 FP…

Verdi中查看二维数组 (array) 波形或内容

在Verdi中查看二维数组 (array) 波形或内容&#xff0c;关键在于仿真时正确转储 (dump) 数组数据&#xff0c;通常需要加入 $fsdbDumpMDA() 系统任务&#xff0c;并在编译或启动时加上相应选项&#xff0c;然后在 Verdi 界面中通过 Debug Memory 功能或在波形窗口直接选择信号来…

智能论文写作工具指南:8大平台功能全解析,降重算法与生成质量实测

AI论文生成工具排行榜&#xff1a;8个网站对比&#xff0c;论文降重写作功能全 工具对比总结 以下是8个AI论文工具的简要排名&#xff0c;基于核心功能、处理速度和适用性对比。排名侧重实用性与用户反馈&#xff0c;数据源于引用内容案例&#xff1a; 工具名称 主要功能 优…

学术写作AI助手盘点:8款工具全面解析,降重技术与内容生成效率对比

AI论文生成工具排行榜&#xff1a;8个网站对比&#xff0c;论文降重写作功能全 工具对比总结 以下是8个AI论文工具的简要排名&#xff0c;基于核心功能、处理速度和适用性对比。排名侧重实用性与用户反馈&#xff0c;数据源于引用内容案例&#xff1a; 工具名称 主要功能 优…

VMWare Tools 灰色无法自动安装(二)

文章目录 接上一篇[VMware Tools灰色,无法直接安装解决办法【亲测有效】](https://blog.csdn.net/MelyLenient/article/details/109204228?spm=1001.2014.3001.5501) 安装后,无法自动挂载共享文件夹 已连接 接上一篇VMware Tools灰色,无法直接安装解决办法【亲测有效】 由…

利用AI提升论文写作效率:8款主流工具对比,聚焦降重与内容创新技术

AI论文生成工具排行榜&#xff1a;8个网站对比&#xff0c;论文降重写作功能全 工具对比总结 基于核心功能、处理速度和用户反馈的综合评估&#xff0c;当前主流AI论文工具中&#xff0c;Semantic Scholar凭借精准的文献检索和关联分析位列第一&#xff0c;Elicit以高效摘要生…

深度测评10个AI论文工具,专科生毕业论文必备!

深度测评10个AI论文工具&#xff0c;专科生毕业论文必备&#xff01; AI 工具正在重塑论文写作方式 随着人工智能技术的不断进步&#xff0c;AI 工具在学术写作领域的应用越来越广泛。对于专科生来说&#xff0c;撰写毕业论文不仅是学习成果的总结&#xff0c;更是对综合能力的…

AI助力学术写作:8款顶尖平台横向对比,降重与内容生成核心功能解析

AI论文生成工具排行榜&#xff1a;8个网站对比&#xff0c;论文降重写作功能全 工具对比总结 以下是8个AI论文工具的简要排名&#xff0c;基于核心功能、处理速度和适用性对比。排名侧重实用性与用户反馈&#xff0c;数据源于引用内容案例&#xff1a; 工具名称 主要功能 优…

Python+Vue的超市商品管理系统 Pycharm django flask

这里写目录标题项目介绍项目展示详细视频演示技术栈文章下方名片联系我即可~解决的思路开发技术介绍性能/安全/负载方面python语言Django框架介绍技术路线关键代码详细视频演示收藏关注不迷路&#xff01;&#xff01;需要的小伙伴可以发链接或者截图给我 项目介绍 超市商品管…

2025 CTF 实战不踩雷!自动化脚本(覆盖 Web / 逆向)+ 赛事表,搭配 e 春秋靶场 + 分阶段路线规划!

对于想学习或者参加CTF比赛的朋友来说&#xff0c;CTF工具、练习靶场必不可少&#xff0c;今天给大家分享自己收藏的CTF资源&#xff0c;希望能对各位有所帮助。 CTF在线工具 首先给大家推荐我自己常用的3个CTF在线工具网站&#xff0c;内容齐全&#xff0c;收藏备用。 1、C…

【物流数据驱动系列2】智能调度革命:算法如何重新定义物流效率边界?

为什么车队规模扩大三倍&#xff0c;准时率却下降了&#xff1f;这是华东某物流集团CTO张总在季度经营会上提出的尖锐问题。三年前&#xff0c;公司拥有300辆自有车辆&#xff0c;准时送达率稳定在92%&#xff1b;如今车辆规模扩大到900辆&#xff0c;准时率却下滑到87%。更令人…