一种基于四轴飞行器的快递运输系统、快递运输方法及单目避障方法
【技术领域】
[0001] 本发明属于无人机技术应用领域,具体涉及一种基于四轴飞行器的快递运输系 统、快递运输方法及单目避障方法。
【背景技术】
[0002] 无人机以其性能可靠,能够完成侦查、营救、视频监控、农业病虫害防治、地质勘探 等复杂任务的优点在广阔的领域得到应用。其中,四轴飞行器作为一种多轴飞行器凭借其 尺寸较小、重量较轻、适合携带等特点成为当今的研究热点。与大型无人驾驶飞行器一样能 够携带一定的任务载荷,具备自主导航飞行能力。
[0003] 四轴飞行器有四个输入和六个输出的欠驱动旋翼式直升机,由此可知该系统能够 实现准静态飞行(盘旋飞行和近距离盘旋飞行)。与传统的旋翼式无人机相比,四轴飞行器 能通过改变旋翼的转速来实现各种运动。四旋翼的升力是四个旋翼转动的合成效应,旋转 力矩则是由四个旋翼速度的差异效应引起的。四轴飞行器以其新颖的结构布局、独特的飞 行方式引起了人们的广泛关注,迅速成为国际上新的研究热点。
[0004] 传统快递是一种具有邮递功能的点对点物流。在传统快递运输过程中,快递公司 通过使用铁路,公路和飞机等交通工具进行长距离的快递运输。短距离使用人力或者公路 交通工具进行投递和运输。
[0005] 相对于传统快递运输来说,基于四轴飞行器的快递运输具有便捷,高效,低成本等 特点。
[0006] 在国内,顺丰快递使用采用八旋翼,下设载物区,飞行高度约100米,内置导航系 统,但是不能离开人的视线,进行障碍飞行;Linkall提出地面基站根据目标位置和GPS信 息计算结合计算最佳路径发送给飞行器,飞行器的无线通讯模块将接收信号,并利用机上 传感器躲避障碍物,最终到达目的地。
[0007] 在美国,亚马逊使用遥控四旋翼飞行器,远程使用GPS导航,近程人工遥控,进行 飞行器的导航;美国UPS快递公司此前也在开发无人机快递;美国Matternet公司使用"无 人机",能携带2公斤物体飞行9. 7公里;FlowerDeliveryExpress.com公司使用进行鲜花 的快递。
[0008] 在德国,国际航空快递巨头德国邮政DHL使用人工遥控操作的方式,运送了一些 药品,整个行程横跨莱茵河,大概〇. 6英里长,花了约两分钟时间来完成整个运送过程。DHL 表示可以四轴飞行器可以脱离人工控制,按照GPS航点自主飞行。
[0009] 在澳大利亚,澳大利亚无人机送快递,无人机采用激光测距和声呐结合进行避障, 但是并不配备摄像头,激光测距的避障成本高。
[0010] 以上无人机运输都使用的四轴飞行器,无论是使用基站和GPS结合计算路径并导 航,或者单纯使用GPS导航,还是采用激光测距和声呐结合进行避障,都会产生大量的实时 数据,对处理器能力要求很高,使得资源受限的飞行器处理器处理能力下降。而且都没有提 出一种有效的低成本避障解决方案。无人机多是采用人工控制,人和无人机组成系统,没有 快递公司和客户之间可以直接对接的系统级解决方案。
【发明内容】
[0011] 本发明就是针对上述问题,提供一种高效、方便的基于四轴飞行器的快递运输系 统、快递运输方法及单目避障方法。
[0012] 为实现上述目的,本发明采用如下技术方案,本发明基于四轴飞行器的快递运输 系统包括C/S架构的客户手机、PC管理平台、服务器、四轴飞行器,其结构要点PC管理平台 和四轴飞行器之间使用GPRS方式进行数据通讯,客户手机用于向服务器发送快递信息,PC 管理平台用于向四轴飞行器发送GPS坐标、客户信息、定位和快递信息,服务器存储并中转 客户手机和PC管理平台的快递信息。
[0013] 作为一种优选方案,本发明所述手机客户端以及PC管理平台均采用Socket套接 字方式与服务器通信;服务器监听9527端口,手机客户端和PC管理平台通过9527端口与 服务器进行通信;
[0014] 所述GPS坐标信息由手机的GPS模块自动获取,其余信息由用户手动输入,输入完 毕后发送将信息发送到服务器端并存入数据库;
[0015] 获取信息部分会向服务器请求四轴飞行器的GPS信息,服务器返回GPS信息后,客 户手机根据该GPS信息将四轴飞行器的位置实时显示在地图。
[0016] 作为另一种优选方案,本发明所述PC管理平台用于:
[0017] 1)读取服务器中存储的快递信息,将其发送给四轴飞行器并向四轴飞行器下达指 令;
[0018] 2)接收四轴飞行器发送的信息,并将这些信息存储到服务器中或由服务器进行下 一步的转发。
[0019] 作为另一种优选方案,本发明所述四轴飞行器米用atmega2560单片机; atmega2560单片机用于完成中断处理、任务通信、任务同步、内存管理、时间片服务、任务优 先级分配,将应用问题分成小的易于管理的程序段;
[0020] 一个任务是执行一个功能的代码段,它们之间互相独立地执行,这些任务的执行 是并发的,任务间的通讯靠传输内部缓冲区或外部存储器信息段的指针来实现;当任务被 创建时,每一个任务被分配一个优先级(在ITD表中定义),任务的优先级从0 (最低)至 7 (最高),根据优先级来判断当某一个任务在运行时,哪些任务被禁止,以及决定哪一个就 绪任务去运行,拥有高优先级的任务在竞争CPU资源时会占得先机;
[0021] 所述一个任务的状态与其优先级和与之相关的"事件"有关,这个"事件"是一个 中断、消息、时间间隔报告或超时报告;任务的状态有睡眠态、就绪态、运行态、空闲态。
[0022] 作为另一种优选方案,本发明所述任务的管理模块管理构成应用系统的16个任 务,它提供如下手段:创建一个用户任务;删除一个用户任务;查看任务的功能ID值;挂起 一个任务;
[0023] CREATETASK:动态的创建及调度任务;
[0024] DELETETASK:删除系统中特定的任务;
[0025] GETFUNCTIONID:获得任务ID号(其值范围从00H至FFH);
[0026] WAIT:悬停正执行的任务;
[0027] GETMEM:获得系统中可用的具体有特定长度的内存块的首地址;
[0028] RELESEMEM:返还某一特定长度的内存块给系统内存区;
[0029] 两种任务创建方式:
[0030] (1)静态创建
[0031] 在初始产生应用系统时,由用户用ITD表的格式写入。
[0032] (2)动态创建
[0033] 输入参数:任务的序号指针,装着将要创建任务的ITD表首地址的两字节变量,它 被装在DPTR中。
[0034] 输出参数:任务的ITD号,一个双字节变量,被放在寄存器R15、R16中,
[0035] (a)如果创建成功,它就是任务的序号值,范围在0至15之间。
[0036] (b)如果创建失败,则它存放错误的原因,即8X号错误;
[0037] 调用动态地创建一个以ITD表为特性的新任务;如果创建成功,系统将给它可用 ITD号中最小的一个,如果不成功,则在寄存器R17中装错误原因码;
[0038] 同时,当创建一个任务时,还要初始化其如下属性表:
[0039] 填TASK_BUF_BLOCK_TAB表:将任务申请的缓冲块的长度和首地址填入该表;
[0040] 填TASK_PRR_TAB:将该任务的优先级填入该表;
[0041] 填INT_MASK_TAB:将此优先级任务运行时允许的中断的中断位向量填入该表;
[0042] 填TASK_INT_TAB:将该任务的中断源位向量填入该表;
[0043] 填INT_S0UREC_TAB:将该中断源相关的ITD号填入该表;
[0044] 填FID_TAB:将该任务的FID值填入该表;
[0045] 填TASK_ADDR_TAB:将该任务的代码首地址填入该表;
[0046] 填TASK_MSG_TAB:该任务的信息链中信息的个数,第一个信息的首地址,最后一 个信息的首地址填入该表;
[0047] 为任务引入FID值属性,用FID值识别任务;
[0048] 当执行DELETETASK系统调用时,被删除的任务不再存在,它占用的系统资源、栈 区归还给系统变为可再用的,这时系统可以再创建任务,并且系统还支持任务删除它自己; 当删除了一个任务后,系统将:
[0049] (1)收回所有与该任务相关的中断源;
[0050] (2)如果这个任务是使用创建任务系统调用CREATETASK动态产生的,将把其栈 空间归还给系统缓冲池;
[0051] (3)使这个ITD号对新任务可用;
[0052] (4)终止任何为该任务设置的时间间隔计时和超时计时;
[0053] (5)使该任务的FID值变为零;
[0054] (6)清除该任务的数据存储单元参数;
[0055] (7)如果删除时这个任务处于就绪状态,则将其从就绪链表中除去;
[0056] (8)若删除的任务是正运行的,那么系统将从就绪链表中再查出一个来,使之运行 或进入idle态;
[0057] 内存管理分如下两种方式:
[0058] (1)系统初始化时内存管理:在系统初始化时,系统内存区systemmemorypool 被创建和修改,首先执行SUB1子程序来创建SMP,当初始化时需要创建任务,系统用 CREATE10子程序在SMP的顶部为这些任务创建堆栈,特定长度的堆栈为任务所建立,最后 系统缓冲池systembufferpool被创建,它们是一系列固定长度的缓冲块,SBP被创建;当 系统按照系统缓冲块的初始值划分剩下的SMP空间为尽可能多的缓冲块时;之后剩余的内 存空间即为系统划分SBP后剩余的;创建的SBP之间互相链接;
[0059] (2)动态的内存管理:在运行时,系统执行内存管理通过使用CREATE10子程序和 SUB1子程序,当额外的任务被创建时,通过连续的使用SUB1子程序来使SBP归还给SMP,然 后再通过CREATE10子程序来为任务分配它所需要的堆栈,分配后,系统再从剩下的SMP中 创建SBP。
[0060] 作为另一种优选方案,本发明所述任务的通信模块允许任务之间以传送信息的方 式来交换数据;任务之间同步操作,共享系统资源,它提供的服务如下:分配缓冲区;向一 个任务传送信息;挂起一个任务使其等待一个信息;释放缓冲区。
[0061]ALLOCATE:为即将发送的消息创建内存缓冲区;
[0062]