文号D885864
649
6
收藏
编辑文章

关于飞机自动驾驶避障的一些想法

中文摘要

自从航空航天诞生之初,除了技术与飞行上的问题,最大的一个问题就是飞行器的安全隐患,其中就包括在飞行器起降期间发生鸟击产生事故。为了解决这一问题各国的专家以及机场等都在做相关的防护措施尽可能保障人民的生命安全,保障飞行器正常飞行。 鸟撞(Bird Strike),又称鸟击,是指在航空器低空飞行和接近着陆时,迎面受到飞鸟撞击造成局部损伤的事件,后扩展到鸟类与高速列车、汽车、人工建筑及其他设施相撞造成物件损坏和鸟类受伤事件。受鸟类迁徙及其生活习性的影响,鸟撞具有突发性、季节性等特点,春秋季也是鸟撞的高发期之一。于鸟类自身而言,与飞机相撞轻则受伤,重则失去生命,于航空领域而言,鸟撞可能导致航班延误、返航、中断起飞等,严重时还会造成飞机损坏,酿成事故[1]。

Abstract

Since the birth of aerospace, in addition to technical and flight issues, the biggest problem has been the safety hazards of aircraft, including accidents caused by bird strikes during takeoff and landing. In order to solve this problem, experts from various countries and airports are taking relevant protective measures to ensure the safety of people's lives as much as possible and ensure the normal flight of aircraft. Bird Strike, also known as bird strike, refers to an event in which an aircraft is hit head-on by birds during low altitude flight and near landing, causing local damage. It later extends to incidents where birds collide with high-speed trains, cars, artificial buildings, and other facilities, resulting in object damage and bird injuries. Due to the influence of bird migration and their living habits, bird collisions have characteristics such as suddenness and seasonality, and the spring and autumn seasons are also one of the high incidence periods of bird......

关键词

飞行器防鸟击避障

作者是个乐子,有很多不成熟的想法。如有问题还请多多指教。

一、摘要

为了防止鸟类撞击以及其他异物对飞行器的撞击给人民的财产生活带来影响,并且为了保证飞行器的稳定性,我们在飞行器的部分加装了非常小的装置通过大量的数据测试以及减法,使飞行器的处理更小型化,更加安全。在此基础之上更能满足飞行器轻量化、低成本、低经济、高质量、高性能多元化发展。让互联网以及AI等更多的延伸产品加入飞行器的研究增大飞行器的安全性以及制作设计效率。让飞行器以及其他延伸产品走进千家万户。

二、项目概述

此项目的研究内容为一种放置于飞行器中可以根据识别以及大数据处理的避鸟的飞行装置,通过雷达的识别以及飞行器各系统的处理来达到一个自动化避障的目的。在保证人民生命财产安全的同时,也保障了鸟类的安全,能避免更多类似的事故发生。

项目目标与背景

项目背景

2012年至2016年间,英国领空发生了8000余鸟类撞机事件,而美国每年就有超过13000起鸟撞事件,因鸟撞事故形成的经济损失约为每年6.5亿元。全球每年因相关事故造成飞机破损或航班延误付出的代价则高达100多亿美元。据统计,我国在2006-2015年十年间共发生鸟击事件17135起、鸟击事故征候1125起。2015年,中国民航运输类飞机因鸟击导致的事故征候有185起,占全年各类型事故征候总数的49.47%,是第一大事故征候类型。

项目目标

该项目的目标以及产品旨在让各飞行器以及各通用航空等飞机能够进行自动化的躲避障碍物,能够辅助飞行器自动的或者辅助飞行员完成规避动作。避免飞行器与鸟类等其他异物碰撞挽回人民以及航空公司的经济损失,保障人民的生命安全以及飞行员的生命安全。并且在军事方面提升军用飞行器在野外的起降功能,能够非常好的避免军用飞机在野外撞击鸟的概率,从而提升军用飞机的一个综合能力。不会因为飞鸟以及其他在空中飘落的异物而耽误飞行时间。

 

项目的特点

项目的特点在于通过不断的迭代更新,产品升级,识别能力越来越好。通过AI训练已经能满足部分的基础要求。在产品方面通过一个产品延伸出其他的产品,形成一条完善的产品产业链结构。满足该项目的同时也能满足其他项目的部分需求。

产品介绍

该产品结合AI大数据来建立鸟类以及鸟类飞行轨迹的数据库,通过算法来使飞机能够自动避开鸟类以及障碍物,并且通过后期的AI训练来优化躲避鸟类的飞行轨迹,以及通过大数据模型与飞机上的传感雷达来对鸟类进行规避。并且将每一次鸟类飞行轨迹以及最优化的规避方式录入数据库中以便下一次使用。
  第二是机载的避鸟以及避障措施,通过雷达以及超声波,激光雷达等方式来测量鸟的距离,通过esp 32 S3以及Mpu9250陀螺仪等传感器结合Madgwick算法来对飞行的姿态以及规避的路线进行规划

在飞机上加装新的装置,在之前飞机出任何故障需要飞行员手动去查找故障解决的说明书如何解决。后期我们将会制作以语音播报以及结合大数据为一体的AI语音播报查找的系统,飞行员说出自己所需的要求就可以通过AI大数据进行查找,通过语音播报反馈给飞行员当。 



我们原本的思路是通过改进飞机发动机来解决相关的问题,通过对飞机发动机的流体力学部分进行改进并设计一个新的飞机发动机来解决该问题,但是所需要的时间过长,而且是在给飞机做加法,安全性极低,虽然通过流体力学仿真,但没有通过大量的风洞实验存在有极大的安全风险。

以下是从网上找的一些关于K201识别鸟类的代码

# generated by maixhub, tested on maixpy3 v0.4.8
# copy files to TF card and plug into board and power on
import sensor, image, lcd, time
import KPU as kpu
import gc, sys

input_size = (224, 224)
labels = ['鸟']
anchors = [5.44, 6.06, 6.81, 6.78, 4.81, 5.47, 6.06, 5.5, 6.22, 6.47]

def lcd_show_except(e):
    import uio
    err_str = uio.StringIO()
    sys.print_exception(e, err_str)
    err_str = err_str.getvalue()
    img = image.Image(size=input_size)
    img.draw_string(0, 10, err_str, scale=1, color=(0xff,0x00,0x00))
    lcd.display(img)

class Comm:
    def __init__(self, uart):
        self.uart = uart

    def send_detect_result(self, objects, labels):
        msg = ""
        for obj in objects:
            pos = obj.rect()
            p = obj.value()
            idx = obj.classid()
            label = labels[idx]
            msg += "{}:{}:{}:{}:{}:{:.2f}:{}, ".format(pos[0], pos[1], pos[2], pos[3], idx, p, label)
        if msg:
            msg = msg[:-2] + "\n"
        self.uart.write(msg.encode())

def init_uart():
    fm.register(10, fm.fpioa.UART1_TX, force=True)
    fm.register(11, fm.fpioa.UART1_RX, force=True)

    uart = UART(UART.UART1, 115200, 8, 0, 0, timeout=1000, read_buf_len=256)
    return uart

def main(anchors, labels = None, model_addr="/sd/m.kmodel", sensor_window=input_size, lcd_rotation=0, sensor_hmirror=False, sensor_vflip=False):
    sensor.reset()
    sensor.set_pixformat(sensor.RGB565)
    sensor.set_framesize(sensor.QVGA)
    sensor.set_windowing(sensor_window)
    sensor.set_hmirror(sensor_hmirror)
    sensor.set_vflip(sensor_vflip)
    sensor.run(1)

    lcd.init(type=1)
    lcd.rotation(lcd_rotation)
    lcd.clear(lcd.WHITE)

    if not labels:
        with open('labels.txt','r') as f:
            exec(f.read())
    if not labels:
        print("no labels.txt")
        img = image.Image(size=(320, 240))
        img.draw_string(90, 110, "no labels.txt", color=(255, 0, 0), scale=2)
        lcd.display(img)
        return 1
    try:
        img = image.Image("startup.jpg")
        lcd.display(img)
    except Exception:
        img = image.Image(size=(320, 240))
        img.draw_string(90, 110, "loading model...", color=(255, 255, 255), scale=2)
        lcd.display(img)

    uart = init_uart()
    comm = Comm(uart)

    try:
        task = None
        task = kpu.load(model_addr)
        kpu.init_yolo2(task, 0.5, 0.3, 5, anchors) # threshold:[0,1], nms_value: [0, 1]
        while(True):
            img = sensor.snapshot()
            t = time.ticks_ms()
            objects = kpu.run_yolo2(task, img)
            t = time.ticks_ms() - t
            if objects:
                for obj in objects:
                    pos = obj.rect()
                    img.draw_rectangle(pos)
                    img.draw_string(pos[0], pos[1], "%s : %.2f" %(labels[obj.classid()], obj.value()), scale=2, color=(255, 0, 0))
                comm.send_detect_result(objects, labels)
            img.draw_string(0, 200, "t:%dms" %(t), scale=2, color=(255, 0, 0))
            lcd.display(img)
    except Exception as e:
        raise e
    finally:
        if not task is None:
            kpu.deinit(task)


if __name__ == "__main__":
    try:
        # main(anchors = anchors, labels=labels, model_addr=0x300000, lcd_rotation=0)
        main(anchors = anchors, labels=labels, model_addr="/sd/model-83507.kmodel")
    except Exception as e:
        sys.print_exception(e)
        lcd_show_except(e)
    finally:
        gc.collect()

参考材料

1 “愤怒的小鸟”频来袭 飞机如何解危_大陆_国内新闻_新闻_齐鲁网

 2 鸟撞:飞鸟之殇 - 豆丁网 

 3 鸟击防范研究 - 道客巴巴

 4 毕业论文(设计)-冲击载荷下油箱力学特性的有限元分析 

 5 北京首都国际机场鸟击物种鉴定及防控建议

 6 南方日报

 7 2024年全球及中国鸟类碰撞产品行业头部企业市场占有率及排名调研报告


最后感谢各位能阅读本文章,您的建议将会成为我学习的途径之一,谢谢


6
天极航天TASE 作者
5个月28天前 IP:广东
D885872

文中代码部分为为K210

全桥整流
5个月24天前 IP:广东
D886012

有一说一k210跑yolov3效果真挺拉胯的

天极航天TASE作者
5个月24天前 IP:北京
D886020
引用全桥整流发表于2楼的内容
有一说一k210跑yolov3效果真挺拉胯的

确实,主要是现有的材料只有k210

chenruixi
5个月18天前 IP:江苏
D886293

《图像识别》

大概只要飞来的不是鸟,就无所谓了

天极航天TASE作者
5个月18天前 IP:广东
D886312
引用chenruixi发表于4楼的内容
《图像识别》大概只要飞来的不是鸟,就无所谓了

好的,非常感谢您的评论

飞友一只
3个月14天前 IP:河南
D890390

我认为航空器的大众化还不可能 你的看法是什么

想参与大家的讨论?现在就 登录 或者 注册

天极航天TASE
机友
文章
2
回复
7
学术分
0
2024/03/20注册,7时54分前活动

Knowledge was boundless(学无止境)

主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:广东
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
ID: {{user.uid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
回复
设为精选取消精选
评学术分
鼓励
编辑
查看历史
通过审核
移动文章
加入收藏取消收藏
退修或删除
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}
回复
加入收藏取消收藏