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

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

相关文章

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

深度解析Java DTO(最新推荐)

《深度解析JavaDTO(最新推荐)》DTO(DataTransferObject)是一种用于在不同层(如Controller层、Service层)之间传输数据的对象设计模式,其核心目的是封装数据,... 目录一、什么是DTO?DTO的核心特点:二、为什么需要DTO?(对比Entity)三、实际应用场景解析

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

深度解析Python装饰器常见用法与进阶技巧

《深度解析Python装饰器常见用法与进阶技巧》Python装饰器(Decorator)是提升代码可读性与复用性的强大工具,本文将深入解析Python装饰器的原理,常见用法,进阶技巧与最佳实践,希望可... 目录装饰器的基本原理函数装饰器的常见用法带参数的装饰器类装饰器与方法装饰器装饰器的嵌套与组合进阶技巧

深度解析Spring Boot拦截器Interceptor与过滤器Filter的区别与实战指南

《深度解析SpringBoot拦截器Interceptor与过滤器Filter的区别与实战指南》本文深度解析SpringBoot中拦截器与过滤器的区别,涵盖执行顺序、依赖关系、异常处理等核心差异,并... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Python中文件读取操作漏洞深度解析与防护指南

《Python中文件读取操作漏洞深度解析与防护指南》在Web应用开发中,文件操作是最基础也最危险的功能之一,这篇文章将全面剖析Python环境中常见的文件读取漏洞类型,成因及防护方案,感兴趣的小伙伴可... 目录引言一、静态资源处理中的路径穿越漏洞1.1 典型漏洞场景1.2 os.path.join()的陷