室内智能无人机比赛:基于深度学习的感知、规划与导航

2024-03-13 06:50

本文主要是介绍室内智能无人机比赛:基于深度学习的感知、规划与导航,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

泡泡图灵智库,带你精读机器人顶级会议文章
标题:Perception, Guidance and Navigation for
Indoor Autonomous Drone Racing using Deep Learning
作者:Sunggoo Jung , Sunyou Hwang , Heemin Shin , David Hyunchul Shim
来源:ICRA 2018
欢迎个人转发朋友圈;其他机构或自媒体如需转载,后台留言申请授权


摘要

大家好,今天为大家带来的文章是——室内智能无人机比赛:基于深度学习的感知、规划与导航。该文章发表于ICRA2018。

智能无人机比赛中要求无人机能够快速穿过障碍门,并且保证没有发生碰撞,因此利用计算机视觉去检测障碍门非常重要。然而由于光照变化和障碍门视觉重叠等问题,基于颜色和障碍门的几何关系的传统算法在实践中经常失效。

在本文中,作者提出了一基于卷积神经网络的种鲁邦方法来检测障碍门和其中心,最后以视线(line of sight)的方式来进行导航。本文将提出的算法部署在一个现有的低成本硬件平台上进行验证,所有的视觉计算任务都能用NVIDIA Jestson TX2实时完成。大量的实验证明本文的算法在室内环境下具有高效可靠的目标检测和导航性能。


介绍

室内智能无人机比赛是目前最流行的电子竞赛,IROS 2016年第一次举办了该类型比赛。IROS 2016要求无人机连续穿越26个1.3m×1.3m大小的障碍门。考虑到室内不能使用GPS进行定位,如何利用视觉信息就尤为重要。

主要贡献有:
1、 提出了ADRNet网络,尽可能的提高障碍门的检测精度,并且减少由于网络结构改变导致的性能下降;
2 、改进了基于固定翼的导航算法,将其适用于旋翼无人机,并与ADRNet估计的障碍门中心配合进行导航。


算法流程

这里写图片描述
图1 本文的算法流程图

IROS室内智能无人机比赛有三个要求:1)无人机必须足够小,以便能够顺利通过障碍门;2)尽可能快的穿越所有的障碍门;3)所有的计算必须在无人机上完成。本文作者选用了基于Ubuntu16.04的ROS-Kinetic系统,并利用NVIDIA TX2进行视觉计算,同时安装了TeraRanger-One激光测距仪用于高度测量,PX4Flow用于速度计算,ZED深度相机用于里程计算,PointGrey FireFly鱼眼相机用于目标检测,除此之外还有IMU用于测量位姿信息。

上图1展示了本文系统的主要框架,ADRNet用于障碍门检测,然后再进行状态控制完成穿越障碍门的动作。

ADRNet感知

SSD是目前常用的多目标检测网络,在常规配置的PC电脑上能够达到40fps的检测效果。然而在TX2上,SSD的速度非常慢,单张计算时间为462.04ms,不能胜任比赛的要求。为此本文提出了ADRNet,以AlexNet为基础进行目标检测,可以达到了84ms的计算速度。并且考虑到在比赛中,每次只需要检测距离最近的一个障碍门,删除了不必要的检测部分,更进一步提高了检测速度,最终达到了30fps的效果,并且只下降了0.07的检测精度。

导航与控制

本文使用的导航算法是基于固定翼中常用的LOS矢量导航算法,并加以改进以适合更灵活的旋翼无人机,使得每一个轴都能够单独控制。但是由于室内FCC只能处理航偏角和翻滚角命令,作者也相应的进行了改进以符合需求。
下图2展示了如何通过导航控制顺利的通过一个障碍门,即最终使得摄像头的光轴与障碍门的中心相交。
这里写图片描述
图2 LOS导航示意图,即逐渐使得上图中的两个变量的值都为0.


主要结果

本文主要从目标检测和LOS导航控制两方面进行了实验和评价。

ADRNet性能评价

这里写图片描述
图3 ADRNet检测的障碍门,图中的结果都来源于测试数据集。
这里写图片描述
图4 ADRNet与其他算法的比较,可以发现无论是在精度还是计算效率上,ADRNet都达到了最好的效果。
这里写图片描述
图5 对比了传统检测算法与ADRNet的检测结果,其中左侧都是传统算法检测结果,右侧是ADRNet结果。

LOS导航控制

这里写图片描述
图6 上图展示了智能无人机在穿过9个障碍门时的LOS控制命令与控制结果的示意图,其中上图是控制命令,下图是无人机相机光心与障碍门中心的差距,当差距为0时表示正在穿越障碍门。对比可以发现,LOS控制命令可以非常完美的穿越障碍门。

结论

本文提出了一个使用基于深度学习的无人机感知、导航和控制的算法,能够在TX2实时计算。同时为了加快该领域的研究,作者也公开了相关代码,链接如下:https://sunyouh.github.io/projects/adr2017。


这里写图片描述

这篇关于室内智能无人机比赛:基于深度学习的感知、规划与导航的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/803969

相关文章

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Java MCP 的鉴权深度解析

《JavaMCP的鉴权深度解析》文章介绍JavaMCP鉴权的实现方式,指出客户端可通过queryString、header或env传递鉴权信息,服务器端支持工具单独鉴权、过滤器集中鉴权及启动时鉴权... 目录一、MCP Client 侧(负责传递,比较简单)(1)常见的 mcpServers json 配置

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

浅谈MySQL的容量规划

《浅谈MySQL的容量规划》进行MySQL的容量规划是确保数据库能够在当前和未来的负载下顺利运行的重要步骤,容量规划包括评估当前资源使用情况、预测未来增长、调整配置和硬件资源等,感兴趣的可以了解一下... 目录一、评估当前资源使用情况1.1 磁盘空间使用1.2 内存使用1.3 CPU使用1.4 网络带宽二、

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security