Skip to content

完成基于 CarlaAir 与 ROS 的无人机视觉自主巡航防撞系统闭环 (#59)Drone imitation learning - #69

Merged
donghaiwang merged 1 commit into
OpenHUTB:masterfrom
tianyutu981:drone-imitation-learning
Sep 21, 2026
Merged

donghaiwang merged 1 commit into
OpenHUTB:masterfrom
tianyutu981:drone-imitation-learning

Conversation

@tianyutu981

Copy link
Copy Markdown
Contributor

修改概述:
关联 Issue #59。基于 CarlaAir (UE4 + AirSim) 仿真环境与 ROS 架构,构建端到端视觉行为克隆(Imitation Learning)无人机自主巡航与防撞闭环。重构了通信桥接与推理控制直通管线,消除死锁门控,并引入线程锁根除底层并发崩溃,实现平稳巡航。

修改的详细描述

  1. 通信桥接重构与并发加锁 (drone_ros_node.py):剔除冗余复杂的状态机与轮询逻辑,恢复轻量无状态直通;引入 threading.Lock 互斥锁,严格串行化前置相机图像抓取(simGetImages)与飞控速度下发(moveByVelocityAsync),根除底层 TCP 管道并发争抢导致的 BufferError 崩溃。
  2. 端到端视觉推理直通管线 (drone_autonomous_node.py):剥离多层状态机、多余定时器与时间戳门禁,打通“图像输入 -> Tensor 预处理 -> 卷积网络推理 -> 速度即时发布”的极简闭环,实现单帧约 30ms 的高频低延迟反应式控制。
  3. 巡航高度与动力学安全限幅:优化起飞与定高逻辑,将自主巡航基准高度锁定在安全避障高度(约 3.0 米),彻底越过地面低矮护栏与杂物;对横向速度与偏航角速度施加安全限幅,确保城市主干道巡航轨迹平稳。
  4. 演示资料与文档归档:在 docs/ 目录下同步添加实机自主巡航验证动图,并在说明文档中补充测试与部署流程。

经过了什么样的测试?

  1. 操作系统: Windows 11 (宿主机运行 CarlaUE4 / AirSim 仿真) + Ubuntu 20.04 (VMware 虚拟机运行 ROS Noetic)
  2. Python 版本: 3.8
  3. 基础校验:
    • 语法检查:修改代码均通过 python -m py_compile 语法校验。
    • 话题连通性测试:验证 /drone/front_camera/image_raw(10 Hz 推流)与 /drone/cmd_vel 控制指令收发畅通。
    • 闭环稳定性测试:连续多次起飞巡航,未再发生飞控死锁、着陆保护锁死或底层缓冲区冲突异常。

运行效果(动图、视频、图片、链接等)

test_one

修改所对应的前后效果(代码/网页):

  • 修改前:底层取图与控机并发抢占 AirSim 套接字,运行数秒即报 BufferError 崩溃闪退;自主节点内多层状态标志位死锁,导致模型推理正常但速度无法下发,真机悬停僵死。
  • 修改后:全链路直通运行顺畅,模型单帧推理 ~30ms 实时驱动飞控,无人机稳定爬升至安全高度并沿主干道实现端到端连续自主巡航。

所使用具体的大模型声明: Claude Code/Deepseek-flash

Comment thread docs/img/air/drone_cruise_demo.gif
Comment thread README.md Outdated
Comment thread src/air/air_learning/train.py
Comment thread src/air/air_learning/model.py
@tianyutu981
tianyutu981 force-pushed the drone-imitation-learning branch from bfa5b04 to 484f2c7 Compare September 20, 2026 08:44
@donghaiwang
donghaiwang merged commit c61d745 into OpenHUTB:master Sep 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants