CN105306500A - 一种基于四轴飞行器的快递运输系统、快递运输方法及单目避障方法 - Google Patents

一种基于四轴飞行器的快递运输系统、快递运输方法及单目避障方法 Download PDF

Info

Publication number
CN105306500A
CN105306500A CN201410276432.5A CN201410276432A CN105306500A CN 105306500 A CN105306500 A CN 105306500A CN 201410276432 A CN201410276432 A CN 201410276432A CN 105306500 A CN105306500 A CN 105306500A
Authority
CN
China
Prior art keywords
task
message
axle aircraft
client
timeout
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410276432.5A
Other languages
English (en)
Other versions
CN105306500B (zh
Inventor
陈星池
王家亮
李大舟
吴磊
李思楠
郑换霞
刘倩
朱剑
张均
刘铮
徐久强
毕远国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201410276432.5A priority Critical patent/CN105306500B/zh
Publication of CN105306500A publication Critical patent/CN105306500A/zh
Application granted granted Critical
Publication of CN105306500B publication Critical patent/CN105306500B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Traffic Control Systems (AREA)

Abstract

一种基于四轴飞行器的快递运输系统、快递运输方法及单目避障方法属于无人机技术应用领域,具体涉及一种基于四轴飞行器的快递运输系统、快递运输方法及单目避障方法。本发明提供一种高效、方便的基于四轴飞行器的快递运输系统、快递运输方法及单目避障方法。本发明包括C/S架构的客户手机、PC管理平台、服务器、四轴飞行器,其结构要点PC管理平台和四轴飞行器之间使用GPRS方式进行数据通讯,客户手机用于向服务器发送快递信息,PC管理平台用于向四轴飞行器发送GPS坐标、客户信息、定位和快递信息,服务器存储并中转客户手机和PC管理平台的快递信息。

Description

一种基于四轴飞行器的快递运输系统、快递运输方法及单目避障方法
技术领域
本发明属于无人机技术应用领域,具体涉及一种基于四轴飞行器的快递运输系统、快递运输方法及单目避障方法。
背景技术
无人机以其性能可靠,能够完成侦查、营救、视频监控、农业病虫害防治、地质勘探等复杂任务的优点在广阔的领域得到应用。其中,四轴飞行器作为一种多轴飞行器凭借其尺寸较小、重量较轻、适合携带等特点成为当今的研究热点。与大型无人驾驶飞行器一样能够携带一定的任务载荷,具备自主导航飞行能力。
四轴飞行器有四个输入和六个输出的欠驱动旋翼式直升机,由此可知该系统能够实现准静态飞行(盘旋飞行和近距离盘旋飞行)。与传统的旋翼式无人机相比,四轴飞行器能通过改变旋翼的转速来实现各种运动。四旋翼的升力是四个旋翼转动的合成效应,旋转力矩则是由四个旋翼速度的差异效应引起的。四轴飞行器以其新颖的结构布局、独特的飞行方式引起了人们的广泛关注,迅速成为国际上新的研究热点。
传统快递是一种具有邮递功能的点对点物流。在传统快递运输过程中,快递公司通过使用铁路,公路和飞机等交通工具进行长距离的快递运输。短距离使用人力或者公路交通工具进行投递和运输。
相对于传统快递运输来说,基于四轴飞行器的快递运输具有便捷,高效,低成本等特点。
在国内,顺丰快递使用采用八旋翼,下设载物区,飞行高度约100米,内置导航系统,但是不能离开人的视线,进行障碍飞行;Linkall提出地面基站根据目标位置和GPS信息计算结合计算最佳路径发送给飞行器,飞行器的无线通讯模块将接收信号,并利用机上传感器躲避障碍物,最终到达目的地。
在美国,亚马逊使用遥控四旋翼飞行器,远程使用GPS导航,近程人工遥控,进行飞行器的导航;美国UPS快递公司此前也在开发无人机快递;美国Matternet公司使用“无人机”,能携带2公斤物体飞行9.7公里;FlowerDeliveryExpress.com公司使用进行鲜花的快递。
在德国,国际航空快递巨头德国邮政DHL使用人工遥控操作的方式,运送了一些药品,整个行程横跨莱茵河,大概0.6英里长,花了约两分钟时间来完成整个运送过程。DHL表示可以四轴飞行器可以脱离人工控制,按照GPS航点自主飞行。
在澳大利亚,澳大利亚无人机送快递,无人机采用激光测距和声呐结合进行避障,但是并不配备摄像头,激光测距的避障成本高。
以上无人机运输都使用的四轴飞行器,无论是使用基站和GPS结合计算路径并导航,或者单纯使用GPS导航,还是采用激光测距和声呐结合进行避障,都会产生大量的实时数据,对处理器能力要求很高,使得资源受限的飞行器处理器处理能力下降。而且都没有提出一种有效的低成本避障解决方案。无人机多是采用人工控制,人和无人机组成系统,没有快递公司和客户之间可以直接对接的系统级解决方案。
发明内容
本发明就是针对上述问题,提供一种高效、方便的基于四轴飞行器的快递运输系统、快递运输方法及单目避障方法。
为实现上述目的,本发明采用如下技术方案,本发明基于四轴飞行器的快递运输系统包括C/S架构的客户手机、PC管理平台、服务器、四轴飞行器,其结构要点PC管理平台和四轴飞行器之间使用GPRS方式进行数据通讯,客户手机用于向服务器发送快递信息,PC管理平台用于向四轴飞行器发送GPS坐标、客户信息、定位和快递信息,服务器存储并中转客户手机和PC管理平台的快递信息。
作为一种优选方案,本发明所述手机客户端以及PC管理平台均采用Socket套接字方式与服务器通信;服务器监听9527端口,手机客户端和PC管理平台通过9527端口与服务器进行通信;
所述GPS坐标信息由手机的GPS模块自动获取,其余信息由用户手动输入,输入完毕后发送将信息发送到服务器端并存入数据库;
获取信息部分会向服务器请求四轴飞行器的GPS信息,服务器返回GPS信息后,客户手机根据该GPS信息将四轴飞行器的位置实时显示在地图。
作为另一种优选方案,本发明所述PC管理平台用于:
1)读取服务器中存储的快递信息,将其发送给四轴飞行器并向四轴飞行器下达指令;
2)接收四轴飞行器发送的信息,并将这些信息存储到服务器中或由服务器进行下一步的转发。
作为另一种优选方案,本发明所述四轴飞行器采用atmega2560单片机;atmega2560单片机用于完成中断处理、任务通信、任务同步、内存管理、时间片服务、任务优先级分配,将应用问题分成小的易于管理的程序段;
一个任务是执行一个功能的代码段,它们之间互相独立地执行,这些任务的执行是并发的,任务间的通讯靠传输内部缓冲区或外部存储器信息段的指针来实现;当任务被创建时,每一个任务被分配一个优先级(在ITD表中定义),任务的优先级从0(最低)至7(最高),根据优先级来判断当某一个任务在运行时,哪些任务被禁止,以及决定哪一个就绪任务去运行,拥有高优先级的任务在竞争CPU资源时会占得先机;
所述一个任务的状态与其优先级和与之相关的“事件”有关,这个“事件”是一个中断、消息、时间间隔报告或超时报告;任务的状态有睡眠态、就绪态、运行态、空闲态。
作为另一种优选方案,本发明所述任务的管理模块管理构成应用系统的16个任务,它提供如下手段:创建一个用户任务;删除一个用户任务;查看任务的功能ID值;挂起一个任务;
CREATETASK:动态的创建及调度任务;
DELETETASK:删除系统中特定的任务;
GETFUNCTIONID:获得任务ID号(其值范围从00H至FFH);
WAIT:悬停正执行的任务;
GETMEM:获得系统中可用的具体有特定长度的内存块的首地址;
RELESEMEM:返还某一特定长度的内存块给系统内存区;
两种任务创建方式:
(1)静态创建
在初始产生应用系统时,由用户用ITD表的格式写入。
(2)动态创建
输入参数:任务的序号指针,装着将要创建任务的ITD表首地址的两字节变量,它被装在DPTR中。
输出参数:任务的ITD号,一个双字节变量,被放在寄存器R15、R16中,
(a)如果创建成功,它就是任务的序号值,范围在0至15之间。
(b)如果创建失败,则它存放错误的原因,即8X号错误;
调用动态地创建一个以ITD表为特性的新任务;如果创建成功,系统将给它可用ITD号中最小的一个,如果不成功,则在寄存器R17中装错误原因码;
同时,当创建一个任务时,还要初始化其如下属性表:
填TASK_BUF_BLOCK_TAB表:将任务申请的缓冲块的长度和首地址填入该表;
填TASK_PRR_TAB:将该任务的优先级填入该表;
填INT_MASK_TAB:将此优先级任务运行时允许的中断的中断位向量填入该表;
填TASK_INT_TAB:将该任务的中断源位向量填入该表;
填INT_SOUREC_TAB:将该中断源相关的ITD号填入该表;
填FID_TAB:将该任务的FID值填入该表;
填TASK_ADDR_TAB:将该任务的代码首地址填入该表;
填TASK_MSG_TAB:该任务的信息链中信息的个数,第一个信息的首地址,最后一个信息的首地址填入该表;
为任务引入FID值属性,用FID值识别任务;
当执行DELETETASK系统调用时,被删除的任务不再存在,它占用的系统资源、栈区归还给系统变为可再用的,这时系统可以再创建任务,并且系统还支持任务删除它自己;当删除了一个任务后,系统将:
(1)收回所有与该任务相关的中断源;
(2)如果这个任务是使用创建任务系统调用CREATETASK动态产生的,将把其栈空间归还给系统缓冲池;
(3)使这个ITD号对新任务可用;
(4)终止任何为该任务设置的时间间隔计时和超时计时;
(5)使该任务的FID值变为零;
(6)清除该任务的数据存储单元参数;
(7)如果删除时这个任务处于就绪状态,则将其从就绪链表中除去;
(8)若删除的任务是正运行的,那么系统将从就绪链表中再查出一个来,使之运行或进入idle态;
内存管理分如下两种方式:
(1)系统初始化时内存管理:在系统初始化时,系统内存区systemmemorypool被创建和修改,首先执行SUB1子程序来创建SMP,当初始化时需要创建任务,系统用CREATE10子程序在SMP的顶部为这些任务创建堆栈,特定长度的堆栈为任务所建立,最后系统缓冲池systembufferpool被创建,它们是一系列固定长度的缓冲块,SBP被创建;当系统按照系统缓冲块的初始值划分剩下的SMP空间为尽可能多的缓冲块时;之后剩余的内存空间即为系统划分SBP后剩余的;创建的SBP之间互相链接;
(2)动态的内存管理:在运行时,系统执行内存管理通过使用CREATE10子程序和SUB1子程序,当额外的任务被创建时,通过连续的使用SUB1子程序来使SBP归还给SMP,然后再通过CREATE10子程序来为任务分配它所需要的堆栈,分配后,系统再从剩下的SMP中创建SBP。
作为另一种优选方案,本发明所述任务的通信模块允许任务之间以传送信息的方式来交换数据;任务之间同步操作,共享系统资源,它提供的服务如下:分配缓冲区;向一个任务传送信息;挂起一个任务使其等待一个信息;释放缓冲区。
ALLOCATE:为即将发送的消息创建内存缓冲区;
SENDMESSAGE:发送消息至目的地址;
WAITMESSAGE:命令任务等待消息的到来;
DEALLOCATE:将已经分配的缓冲区归还至系统内存区;
申请缓冲块系统调用ALLOCATE用来从系统缓冲池申请一个固定大小的缓冲块;该系统调用被用在传送消息以前,用以装消息块的内容,申请缓冲块系统调用ALLOCATE用来从系统缓冲区中找一个可用的固定大小的缓冲块分配给任务,这个缓冲块的长度是buffersize;释放缓冲块系统调用DEALLOCATE将固定大小的缓冲块归还给系统缓冲池;它归还的缓冲块是用申请缓冲块系统调用ALLOCATE申请来的,否则系统将把其它部分的存储区划入系统缓冲池;
系统调用允许两个任务之间以消息的方式传送数据或命令;系统使这个消息传送到接收消息的消息队列中,但它不是将这个消息块传送过去,而是把这个消息块的指针送过去,等到接收消息的任务执行等待系统调用WAITMESSAGE等待这个消息时,它才被真正接收;若消息还没有到,这个任务就变成了等待状态,其它的就绪态任务会有一个去运行;当消息到时,看其优先级以决定它是进入就绪队列还是立即变成运行态;如果这个任务没有等待一个消息的到来,则这个消息只被记录到该接收任务的消息队列中,直到这个任务使用系统调用WAIT等待一个消息时才去处理它;
对于消息传输模式分为两种:
(1)单向消息模式
任务A要传送一批数据给任务B,任务A首先使用申请缓冲块系统调用ALLOCATE在内存分配一个缓冲块,将数据存入缓冲块,使用发送消息系统调用SENDMESSAGE将指针送给任务B,系统把这个消息的指针送入任务B的FIFO消息队列,如果任务B已执行等待系统调用WAIT等待一个消息时,它将接收这个指针并访问消息缓冲块;如果不是,则指针被放在消息队列中,等待任务B以后执行完等待系统调用WAIT等待消息时再去存取;
(2)事务处理模式
任务A向任务B传送消息,任务A先使用申请缓冲块系统调用ALLOCATE分配一个消息缓冲块,建立了一个命令消息的缓冲块,将命令消息存入缓冲块,然后使用发送消息系统调用SENDMESSAGE将这个消息的指针送给任务B,进入B的消息队列中,若任务B已经使用等待系统调用WAIT等待消息,则接收这个指针并存取缓冲块消息,若任务B没有在等待,则这一消息指针一直在任务B的消息队列中;
当任务B接收完这一消息后,将该消息类型由命令改为响应,交换源任务与目的任务,即把它送回给任务A,系统使之指针送入任务A的消息队列中,待任务A取得。
作为另一种优选方案,本发明所述中断处理使任务同外部设备通讯,提供如下服务:初始化时为任务设置中断源;屏蔽某一中断或某些中断;中断允许;用中断同步任务;
DISABLEINTERRUPT:屏蔽某中断;
ENABLEINTERRUPT:使能某中断;
SYNCHRONIZE:以中断同步任务;
中断处理过程是:首先判断系统是否处于空闲状态,若不是,则保护现场;然后查INT_SOURCE_TAB,找到与该中断源相关的任务的序号,之后再根据此序号查ASLEEP_TAB,得到event-vector,如果其第二位为0,表示没有等待中断,则把指针指向下一单元,取出event-coming,与中断位向量进行或操作,来反映中断事件,然后恢复现场,中断返回;如果event-vector其第二位为1,表示等待中断,这时把event-vector和timeout都清零,并且把这个任务的序号和正在运行的任务的序号进行比较,来决定是否交换任务运行,如果它是中断前正运行的任务则使其继续运行,否则保留之前运行任务参数后,让这个任务运行;
对于中断处理ASLEEP_TAB中的timeinterval和timeout,填写任务就绪表,分派一个任务去执行,启动定时器,运行优先级最高的任务,其处理过程如下:
首先判断Timer0中断发生前,系统是否处于空闲状态,若不是则保护现场。然后查ASLEEP_TAB取出timeinterval,若timeinterval不为0则转向timeinterval处理部分。若timeinterval为0则判断timeout,若timeout不为0则转向timeout处理部分;若timeinterval和timeout同时为0,则修改指针,对下一个任务仍按这样的步骤重新处理;
所述Timeinterval处理部分包括:置Timer0占用标识位;将timeinterval内容减1后判断,若timeinterval不为0,则停止timeinterval的处理,转向timeout处理部分;若timeinterval为0,则将任务的timeinterval值填入ASLEEP_TAB中;然后取出event-vector并判断第2和第3位,若任务没有等待timeinterval或没在睡眠态,则将event-coming中的timeinterval位上置1后转向任务的timeout处理部分,若任务处在睡眠态,并且在等待timeinterval报告,则将event-vector置04H,将timeout清0后填写任务就绪表,并且分配一个任务去执行,然后继续对下一个任务的timeinterval和timeout进行判断并处理。
Timeout处理部分:将timeout内容减1后判断,若timeout不为0将对下一个任务的timeinterval和timeout进行判断并处理;若timeout为0,则将event-vector内容也清0,填写任务就绪表后,分配一个任务去执行,然后继续对下一个任务的timeinterval和timeout进行判断并处理;
在所有任务的timeinterval和timeout处理后,设置timer0定时器工作,并且运行最大优先级的任务。
另外,本发明计时模块使用片上硬件计时器中的Timer0为系统中的每个任务提供了一个软时钟,这个软时钟提供时间间隔计时和超时计时,时间间隔计时允许任务在某一特定的时间间隔内执行某一功能,超时计时给出允许用户挂起一个任务的最长时间即任务等待某一事件的时间限度,它提供给用户如下服务:建立时间间隔;等待时间间隔到;等待超时报告;
SETINTERVAL:当interval事件发生时,设定一个时间间隔;
WAITEVENT:等待interval或者timeout事件的发生;
当一个任务调用等待系统调用wait时,系统将该任务置睡眠状态,事件发生后,使这个任务变成就绪态,如果这个任务的优先级足够高,它变成运行态任务;
调用挂起一任务,使其等待某一事件的到来,当任务执行完该系统调用后,首先要查询一下它要等待的任务来到没有,如果没有到,系统将置该任务为等待状态,这时看等待的时间,如果timeout为0,表示不能等待,则任务不等待继续执行;若timeout不为0,则当timeout不等于OFFH时,要计时;timeout为OFFH时则不计时,这时挂起这个任务,从就绪态中取一个任务继续运行;如果该任务要等待的事件有到来的,就看这个任务是否在等待消息,如果等待的消息已经到来,那么就处理这个消息;如果这个等待任务要等待的事件都已到,则它可以进入运行态,否则它要继续等待。
一种基于四轴飞行器的单目避障方法,包括以下步骤:
用光流来确定目标的运动,光流以点为基础,设图像点(x,y)的光流为(u,v),则将(x,y,u,v)为光流点,全部光流点构成的集合为光流场;
设场景中存在相对移动的物体,左上部为金字塔LK产生的真实光流,其中垂直向上光流为疑似障碍物,左下部为单应性变换得出的平移光流,将二者叠加到相同的图像,形成融合光流,通过比较这两种光流得出光流特性;融合光流和障碍物之间建立对应关系,判断障碍;
首先,对单个向量进行滤波,剔除长度过长的奇异向量;然后,对剩下向量进行k均值聚类,剔除各聚类内部奇异点和向量个数过少的聚类;其次,对融合光流进行滤波,剔除融合光流向量里的奇异向量和夹角过小的向量;最后,对障碍物做出判断。
一种基于四轴飞行器的快递运输方法,包括以下步骤:
客户发送快递:
客户在自己的智能手机中下载客户端;点击获取GPS坐标按钮,客户自行获取可接收快递位置的GPS坐标,或者手动输入可以接收快递的GPS坐标;填写基本信息(寄件人姓名、详细地址、联系电话,收件人姓名、详细地址、联系电话、备注),点击确认发送按钮;客户端将基本信息数据和手机GPS信息发送给后台服务器;后台服务器处理请求;PC管理平台通过服务器实时在客户信息页面接收、查询和操作相关数据;按照客户GPS坐标,PC管理平台给四轴飞行器设定GPS航点坐标;在室外四轴飞行器自主飞行,通过GPS导航,使用融合光流法进行视觉传感器避障,最后到达预定GPS坐标,悬停等待,客户在视距范围看见四轴飞行器悬停,点击手机客户端确认四轴飞行器降落;客户将待邮寄物品放入四轴飞行器货物装配装置,并在客户端确认快递装填完毕;PC管理平台通过访问服务器,在PC管理平台上显示客户装填完毕,而后在PC管理平台上,快递管理菜单中,选择确认发送,向四轴飞行器发送起飞返回命令,四轴飞行器按GPS坐标返回;客户发送快递流程结束;
客户接收快递:
PC管理通过服务器向手机客户端发送通知客户接收快递的消息;客户在手机客户端上进行接收时间的选择和可以接收快递地点GPS航点的设定;手机客户端将这些信息反馈给后台服务器;PC管理平台通过访问服务器,得知客户接收快递的时间和GPS坐标;PC管理平台根据客户提供的GPS坐标,对四轴飞行器进行GPS航点设定,然后派送四轴飞行器;四轴飞行器到达指定GPS航点,四轴飞行器视距内悬停;客户在手机客户端四轴飞行器降落界面,点击确认降落按钮,飞行器降落;打开装载装置,取走快递;客户通过手机客户端确认快递已经取完;在PC管理平台快递管理菜单中,返回命令中,点击确认发送按钮;四轴飞行器按GPS航点返回;客户接收快递流程结束。
本发明有益效果。
本发明通过客户手机、PC管理平台、服务器、四轴飞行器的配合使用,使快递公司和客户之间可以直接对接,使四轴飞行器的快递运输更加便捷、高效、方便。
附图说明
下面结合附图和具体实施方式对本发明做进一步说明。本发明保护范围不仅局限于以下内容的表述。
图1为服务器工作流程图。
图2手机客户端邮寄快递主界面。
图3客户确认四轴飞行器是否降落界面。
图4客户确认快递装填完毕界面。
图5手机客户端接收快递主界面。
图6快件信息实时显示。
图7手机客户端的处理流程图。
图8PC管理平台客户信息界面。
图9PC管理平台快递管理界面。
图10PC中转平台工作流程。
图11单向信息模式图。
图12事务处理模式图。
图13真实光流和平移光流的融合示意图。
图14客户发送快递流程。
图15客户发送快递流程。
具体实施方式
如图所示,本发明包括以下几方面,采用C/S架构的客户手机端软件和PC管理平台,服务器,四轴飞行器操作系统及单目避障。
手机客户端采用JAVA语言编写安卓版本,PC端采用C#和JAVA联合编写管理平台,服务器端采用ApacheTomcat7.0.4搭建,数据库采用开源的MySQL,服务器端、手机客户端以及PC中转站管理平台均采用Socket套接字方式与服务器通信。在现有四轴飞行器硬件平台上,搭建操作系统,使用单目摄像头实现空中避障功能。管理平台和四轴飞行器之间使用GPRS方式进行数据通讯。以达到解决快递公司与客户之间对接问题,在数据量大的情况下,四轴飞行器资源受限处理能力不足,四轴飞行器空中低成本避障,从而实现一套完整的基于四轴飞行器的完整快递运输系统及解决方案。
手机客户端用于向服务器发送快递信息,PC客户端用于向无人机发送GPS坐标,客户信息等定位和快递信息,服务器负责存储并中转手机和PC的快递信息。
服务器端:
服务器端的主要作用是接收并存储客户手机客户端发送过来的快递基本信息(主要包括:寄件人电话、姓名、详细地址,收件人电话、姓名、详细地址,邮寄物品类型等),提供用户快递信息查询。采用ApacheTomcat7.0.4搭建,数据库采用开源的MySQL,手机客户端以及PC中转站管理平台均采用Socket套接字方式与服务器通信。服务器监听9527端口,手机客户端和PC中转平台通过该端口与服务器进行通信。
其中,服务器中MySQL数据库存储的客户快递信息格式如下:
表1客户快递信息格式
数据库中快递信息表设计如下:
ID NAME ADDRESS GPS TEL REMARK
(NULL) (NULL) (NULL) (NULL) (NULL) (NULL)
表2数据库中快递信息表
手机客户端:
手机客户端主要用来接收用户输入的快递信息,并将其发送给服务器。
客户邮寄快递界面如图2所示。
客户确认四轴飞行器是否降落,如图3所示。
客户确认快递装填完毕界面,如下图4所示。
客户接收快递界面如图5所示。
其中,GPS坐标信息由手机的GPS模块自动获取,其余信息由用户手动输入,输入完毕后点击确认发送将信息发送到服务器端并存入数据库。
获取信息按钮会向服务器请求四轴飞行器的GPS信息,服务器返回GPS信息后,客户端根据该GPS信息将四轴飞行器的位置实时显示在地图(此处调用百度地图开放接口实现)上,如图6所示。
手机客户端的处理流程如图7所示。
PC管理系统:
一、读取服务器中存储的快递信息,将其发送给无人机并向无人机下达指令;
二、接收无人机发送的信息(如:无人机的GPS坐标、快件信息等),并将这些信息存储到服务器中或由服务器进行下一步的转发。
PC管理平台客户信息界面如图8所示。
PC管理平台快递管理界面如图9所示。
PC端的工作流程如图10所示。
四轴飞行器操作系统:
本四轴飞行器使用的是atmega2560单片机。
为了使小型四轴飞行器能够高效的进行采集图像及接收飞行控制信号,高效的进行任务的协调及执行。操作系统内核设计时旨在高效实现如下功能:中断处理,任务通信,任务同步,内存管理,时间片服务,任务优先级分配。采用AVR汇编语言实现。
系统具有多任务的特性允许将其应用问题分成小的易于管理的程序段,称为“任务”(task),通常一个任务是执行一个特殊功能的代码段,它们之间可以互相独立地执行,这些任务的执行可视为是并发的,任务间的通讯是靠传输内部缓冲区或外部存储器信息段的指针来实现的。当任务被创建时,每一个任务都会被分配一个优先级(在ITD表中设置),系统中任务的优先级从0(最低)至7(最高),系统根据优先级来判断当某一个任务在运行时哪些任务被禁止,以及决定哪一个就绪任务去运行,拥有高优先级的任务在竞争CPU资源时会占得先机。一个任务的状态与其优先级和与之相关的“事件”有关,这个“事件”可能是一个中断(interrupt)、消息(message)、时间间隔(timeinterval)报告或超时(timeout)报告。任务的状态有睡眠(asleep)态、就绪(ready)态、运行(running)态、空闲(idle)态。实时多任务操作系统模块化设计思想,各模块介绍如下:
1.任务管理模块
任务管理基本任务就是管理构成应用系统的16个任务,它提供了如下手段:创建一个用户任务;删除一个用户任务;查看任务的功能ID值;挂起一个任务。
CREATETASK:动态的创建及调度任务;
DELETETASK:删除系统中特定的任务;
GETFUNCTIONID:获得任务ID号(其值范围从00H至FFH);
WAIT:悬停正执行的任务;
GETMEM:获得系统中可用的具体有特定长度的内存块的首地址;
RELESEMEM:返还某一特定长度的内存块给系统内存区。
本系统设计了两种任务创建方式:
(1)静态创建
它是在初始产生这个应用系统时,由用户用ITD表的格式来编写的。
(2)动态创建
输入参数:任务的序号指针,它是装着将要创建任务的ITD表首地址的两字节变量,它被装在DPTR中。
输出参数:任务的ITD号,它是一个双字节变量,被放在寄存器R15、R16中:
(a)如果创建成功,它是任务的序号值,范围在0至15之间。
(b)如果创建失败,则它存放错误的原因,即8X号错误。
该系统调用动态地创建一个以ITD表为特性的新任务。如果创建成功,系统将给它可用ITD号中最小的一个,如果不成功,则在寄存器R17中装错误原因码。
同时,当创建一个任务时,还要初始化其如下属性表:
填TASK_BUF_BLOCK_TAB表:将任务申请的缓冲块的长度和首地址填入该表。
填TASK_PRR_TAB:将该任务的优先级填入该表。
填INT_MASK_TAB:将此优先级任务运行时允许的中断的中断位向量填入该表。
填TASK_INT_TAB:将该任务的中断源位向量填入该表。
填INT_SOUREC_TAB:将该中断源相关的ITD号填入该表。
填FID_TAB:将该任务的FID值填入该表。
填TASK_ADDR_TAB:将该任务的代码首地址填入该表。
填TASK_MSG_TAB:该任务的信息链中信息的个数,第一个信息的首地址,最后一个信息的首地址填入该表。
为了更好的区别任务,除了ITD号作为其属性之外,我们为任务引入了FID值属性;对于用户,是可以用FID值识别是哪一个任务,但对于系统识别任务的办法是看其ITD号,它是任务创建次序的序列号。
当系统执行DELETETASK系统调用时,这个被删除的任务就不再存在,并且它占用的系统资源,如ITD号,栈区也将归还给系统变为可再用的,这时系统可以再创建任务,并且系统还支持任务删除它自己。当删除了一个任务后,系统将:
(1)收回所有与该任务相关的中断源;
(2)如果这个任务是使用创建任务系统调用CREATETASK动态产生的,将把其栈空间归还给系统缓冲池;
(3)使这个ITD号对新任务可用;
(4)终止任何为该任务设置的时间间隔计时和超时计时;
(5)使该任务的FID值变为零;
(6)清除该任务的数据存储单元参数;
(7)如果删除时这个任务处于就绪状态,则将其从就绪链表中除去;
(8)若删除的任务是正运行的,那么系统将从就绪链表中再查出一个来,使之运行或进入idle态(当没有就绪态任务时)。
内存管理分如下两种方式:
(1)系统初始化时内存管理:在系统初始化时,系统内存区systemmemorypool(SMP)被创建和修改,首先执行SUB1子程序来创建SMP,当初始化时需要创建任务,系统需要用CREATE10子程序在SMP的顶部为这些任务创建堆栈,特定长度的堆栈就为任务所建立,最后系统缓冲池systembufferpool(SBP)就被创建,它们是一系列固定长度的缓冲块,SBP被创建当系统按照系统缓冲块的初始值划分剩下的SMP空间为尽可能多的缓冲块时。之后剩余的内存空间即为系统划分SBP后剩余的。创建的SBP之间互相链接着。
(2)动态的内存管理:在运行时,系统执行内存管理通过使用CREATE10子程序和SUB1子程序,当额外的任务被创建时,留给堆栈的内存单元就变得很重要,当试图创建一个新的任务时,SMP中剩余的内存不够分配作为此任务的堆栈,这时须通过连续的使用SUB1子程序来使SBP归还给SMP,然后再通过CREATE10子程序来为任务分配它所需要的堆栈,分配后,系统再从剩下的SMP中创建SBP。
2.任务通信模块
任务通信模块允许任务之间以传送信息的方式来交换数据。任务之间可以实现同步操作,并且可以共享系统资源,它提供的服务如下:分配缓冲区;向一个任务传送信息;挂起一个任务使其等待一个信息;释放缓冲区。
ALLOCATE:为即将发送的消息创建内存缓冲区;
SENDMESSAGE:发送消息至目的地址;
WAITMESSAGE:命令任务等待消息的到来;
DEALLOCATE:将已经分配的缓冲区归还至系统内存区。
申请缓冲块系统调用ALLOCATE用来从系统缓冲池申请一个固定大小的缓冲块。该系统调用通常被用在传送消息以前,用以装消息块的内容,申请缓冲块系统调用ALLOCATE用来从系统缓冲区中找一个可用的固定大小的缓冲块分配给任务,这个缓冲块的长度就是buffersize。释放缓冲块系统调用DEALLOCATE将固定大小的缓冲块归还给系统缓冲池。它归还的缓冲块应该是用申请缓冲块系统调用ALLOCATE申请来的,否则系统将把其它部分的存储区划入系统缓冲池。
该系统调用允许两个任务之间以消息的方式传送数据或命令。系统使这个消息传送到接收消息的消息队列中,但它不是将这个消息块传送过去,而是把这个消息块的指针送过去,等到接收消息的任务执行等待系统调用WAITMESSAGE等待这个消息时,它才被真正接收。若消息还没有到,这个任务就变成了等待状态,而其它的就绪态任务就会有一个去运行,这样就不浪费CPU资源的时间了。当消息到时,要看其优先级以决定它是进入就绪队列还是立即变成运行态。如果这个任务没有等待一个消息的到来,则这个消息只被记录到该接收任务的消息队列中,直到这个任务使用系统调用WAIT等待一个消息时才去处理它。
对于本系统的消息传输模式分为两种:
(1)单向消息模式
任务A要传送一批数据给任务B,任务A首先使用申请缓冲块系统调用ALLOCATE在内存分配一个缓冲块,将数据存入缓冲块,使用发送消息系统调用SENDMESSAGE将指针送给任务B,系统把这个消息的指针送入任务B的FIFO消息队列,如果任务B已执行等待系统调用WAIT等待一个消息时,它将接收这个指针并访问消息缓冲块。如果不是,则指针被放在消息队列中,等待任务B以后执行完等待系统调用WAIT等待消息时再去存取,如图11所示。
(2)事务处理模式
下面是处理模式的传输过程,其中任务A要向任务B传送消息。任务A先使用申请缓冲块系统调用ALLOCATE分配一个消息缓冲块,建立了一个命令消息的缓冲块,将命令消息存入缓冲块,然后使用发送消息系统调用SENDMESSAGE将这个消息的指针送给任务B,进入B的消息队列中,若任务B已经使用等待系统调用WAIT等待消息,则接收这个指针并存取缓冲块消息,若任务B没有在等待,则这一消息指针一直在任务B的消息队列中。
当任务B接收完这一消息后,将该消息类型由命令改为响应,交换源任务与目的任务,即把它送回给任务A,系统使之指针送入任务A的消息队列中,待任务A取得。如图12所示。
3.中断处理模块
中断处理服务使得任务可以同各类外设通讯,并且有利于管理,它提供如下服务:初始化时为任务设置中断源;屏蔽某一中断或某些中断;中断允许;用中断同步任务。
DISABLEINTERRUPT:屏蔽某中断;
ENABLEINTERRUPT:使能某中断;
SYNCHRONIZE:以中断同步任务。
实时系统与分时系统在切换任务时是很不相同的,分时系统依靠时间片到来切换任务,实时系统靠中断发生来切换,因此实时系统中,中断处理程序质量的优劣,直接影响到系统的实时性,本系统为用户提供了有效的通用处理程序COMMON_SERVER和TIMER0_SERVER。
本系统为了压缩代码,设计了一个通用的中断服务程序COMMON_SERVER,对外部中断请求0和1,Timer1中断,内部串行口中断请求等,都用这个中断处理程序。
对于通用中断处理程序COMMON_SERVER,它的处理过程是:首先判断系统是否处于空闲状态,若不是,则保护现场。然后查INT_SOURCE_TAB,找到与该中断源相关的任务的序号,之后再根据此序号查ASLEEP_TAB,得到event-vector,如果其第二位为0,表示没有等待中断,则把指针指向下一单元,取出event-coming,与中断位向量进行或操作,来反映中断事件,然后恢复现场,中断返回。如果event-vector其第二位为1,表示等待中断,这时把event-vector和timeout都清零,并且把这个任务的序号和正在运行的任务的序号进行比较,来决定是否交换任务运行,如果它是中断前正运行的任务则使其继续运行,否则保留之前运行任务参数后,让这个任务运行。
对于中断处理程序TIMER0_SERVER,它主要处理ASLEEP_TAB中的timeinterval和timeout,填写任务就绪表,分派一个任务去执行,启动定时器,运行优先级最高的任务等。其处理过程如下:
首先判断Timer0中断发生前,系统是否处于空闲状态,若不是则保护现场。然后查ASLEEP_TAB取出timeinterval,若timeinterval不为0则转向timeinterval处理部分。若timeinterval为0则判断timeout,若timeout不为0则转向timeout处理部分。若timeinterval和timeout同时为0,则修改指针,对下一个任务仍按这样的步骤重新处理。
Timeinterval处理部分包括:置Timer0占用标识位。将timeinterval内容减1后判断,若timeinterval不为0,则停止timeinterval的处理,转向timeout处理部分。若timeinterval为0,则将任务的timeinterval值填入ASLEEP_TAB中。然后取出event-vector并判断第2和第3位,若任务没有等待timeinterval或没在睡眠态,则将event-coming中的timeinterval位上置1后转向任务的timeout处理部分,若任务处在睡眠态,并且在等待timeinterval报告,则将event-vector置04H(清睡眠标志位,置timeinterval位),将timeout清0后填写任务就绪表,并且分配一个任务去执行,然后继续对下一个任务的timeinterval和timeout进行判断并处理。
Timeout处理部分:将timeout内容减1后判断,若timeout不为0将对下一个任务的timeinterval和timeout进行判断并处理。若timeout为0,则将event-vector内容也清0,填写任务就绪表后,分配一个任务去执行,然后继续对下一个任务的timeinterval和timeout进行判断并处理。
在所有任务的timeinterval和timeout处理后,设置timer0定时器工作,并且运行最大优先级的任务。
4.计时模块
使用片上硬件计时器中的Timer0为系统中的每个任务提供了一个软时钟,这个软时钟提供时间间隔计时和超时计时,时间间隔计时允许任务在某一特定的时间间隔内执行某一功能,超时计时给出允许用户挂起一个任务的最长时间即任务等待某一事件的时间限度,它提供给用户如下服务:建立时间间隔;等待时间间隔到;等待超时报告。
SETINTERVAL:当interval事件发生时,设定一个时间间隔;
WAITEVENT:等待interval或者timeout事件的发生;
当一个任务调用等待系统调用wait时,系统将该任务置睡眠状态,事件发生后,使这个任务变成就绪态,如果这个任务的优先级足够高,它可以变成运行态任务,这个调用使任务放弃处理机给其它任务使用,避免了CPU的空闲状态,有效地利用了处理机资源。
该系统调用挂起一任务,使其等待某一事件的到来,所以当任务执行完该系统调用后,首先就是要查询一下它要等待的任务来到没有,如果没有到,系统将置该任务为等待状态,这时它首先要看看等待的时间,如果timeout为0,表示不能等待,则任务不等待继续执行。若timeout不为0,则当timeout不等于OFFH时,要计时。timeout为OFFH时则不计时,这时挂起这个任务,从就绪态中取一个任务继续运行。如果该任务要等待的事件有到来的,就看这个任务是否在等待消息,如果等待的消息已经到来,那么就处理这个消息。如果这个等待任务要等待的事件都已到,则它可以进入运行态,否则它要继续等待。
本操作系统内核实现了任务管理、任务间通信服务、中断处理服务和计时服务等功能,这些系统功能主要是通过系统调用的方式来实现,所谓系统调用,它是本系统提供给用户的服务程序。当用户任务需要使用与此操作有关的功能时,不必再去编写这段程序,直接调用这个系统调用就可以了。因此设计的功能模块能够轻易的实现四轴飞行器平台的实时应用,可以高效的用于数据采集,接收控制信号等实时处理。
融合光流单目避障:
为了适合在室外飞行,单目摄像头辨别障碍物,本发明提出一种单目融合光流避障算法,以达到在室外稳定光照下,单目视觉避障的目的。
所谓光流指图像中灰度模式运动速度。光源照射下的物体,表面灰度会呈现出一种空间分布,其被称为灰度模式。光流包含了目标的运动信息,是对图像变化的表达,因此可以用来确定目标的运动。光流的定义是以点为基础的,具体而言,假设图像点(x,y)的光流为(u,v),则将(x,y,u,v)称为光流点。全部光流点构成的集合被称为光流场。
融合光流避障算法是由金字塔光流和平移光流融合而成。
融合光流的基本原理:
我们假设场景中存在相对移动的物体。图13左上部为金字塔LK产生的真实光流,其中垂直向上光流为疑似障碍物,左下部为单应性变换得出的平移光流,将二者叠加到相同的图像,形成融合光流,如图13右半部分所示。通过比较这两种光流可以推导出一种光流的特性。
障碍物上融合光流的夹角(金字塔光流和平移光流之间的偏移量)明显有别于其他无障碍部分。通过比较偏移量可以推导出一种融合光流的特性。因此,融合光流和障碍物之间建立对应关系,进而判断出障碍。
首先,对单个向量进行滤波,剔除长度过长的奇异向量。然后,对剩下向量进行k均值聚类,剔除各聚类内部奇异点和向量个数过少的聚类。其次,对融合光流进行滤波,剔除融合光流向量里的奇异向量和夹角过小的向量。最后,对障碍物做出判断。
下面结合附图什么本发明快递运输方法。
客户发送快递:
客户在自己的智能手机(如图14中A所示)中下载客户端;点击图1中获取GPS坐标按钮,客户自行获取可接收快递位置的GPS坐标,或者手动输入可以接收快递的GPS坐标;填写基本信息(寄件人姓名、详细地址、联系电话,收件人姓名、详细地址、联系电话、备注等),点击图2中确认发送按钮;客户端将基本信息数据和手机GPS信息发送给后台服务器(如图14中B所示),如图14中1过程;后台服务器处理请求;PC管理平台(如图14中C所示,界面如图8所示)通过服务器可实时在客户信息页面接收、查询和操作相关数据,如图14中2过程所示;按照客户GPS坐标,PC管理平台给四轴飞行器设定GPS航点坐标(如图8中所示),如图14中3过程所示;在室外四轴飞行器自主飞行,通过GPS导航,使用融合光流法进行视觉传感器避障,最后到达预定GPS坐标,悬停等待,客户在视距范围看见四轴飞行器悬停,点击手机客户端确认四轴飞行器降落(界面如图3所示);客户将待邮寄物品放入四轴飞行器货物装配装置,并在客户端确认快递装填完毕(界面如图4所示),如图14中4过程所示;PC管理平台通过访问服务器,如图14中5过程。在PC管理平台上显示客户装填完毕(界面如图9所示),而后在PC管理平台上,快递管理菜单中,选择确认发送,向四轴飞行器发送起飞返回命令(界面如图9所示),如下图14中6过程。四轴飞行器按GPS坐标返回;客户发送快递流程结束。
客户接收快递:
PC管理通过服务器向手机客户端发送通知客户接收快递的消息,如图15中1过程;客户在手机客户端上进行接收时间的选择和可以接收快递地点GPS航点的设定(如图5所示);手机客户端将这些信息反馈给后台服务器,如图15中2过程;PC管理平台通过访问服务器,得知客户接收快递的时间和GPS坐标,如图15中3过程;PC管理平台根据客户提供的GPS坐标,对四轴飞行器进行GPS航点设定,然后派送四轴飞行器;四轴飞行器到达指定GPS航点,四轴飞行器视距内悬停;客户在手机客户端四轴飞行器降落界面,点击确认降落按钮,飞行器降落(如图3所示);打开装载装置,取走快递;客户通过手机客户端确认快递已经取完;在PC管理平台快递管理菜单中,返回命令中,点击确认发送按钮(如图9所示);四轴飞行器按GPS航点返回;客户接收快递流程结束。
可以理解的是,以上关于本发明的具体描述,仅用于说明本发明而并非受限于本发明实施例所描述的技术方案,本领域的普通技术人员应当理解,仍然可以对本发明进行修改或等同替换,以达到相同的技术效果;只要满足使用需要,都在本发明的保护范围之内。

Claims (10)

1.一种基于四轴飞行器的快递运输系统,其特征在于包括C/S架构的客户手机、PC管理平台、服务器、四轴飞行器,其结构要点PC管理平台和四轴飞行器之间使用GPRS方式进行数据通讯,客户手机用于向服务器发送快递信息,PC管理平台用于向四轴飞行器发送GPS坐标、客户信息、定位和快递信息,服务器存储并中转客户手机和PC管理平台的快递信息。
2.根据权利要求1所述一种基于四轴飞行器的快递运输系统,其特征在于所述手机客户端以及PC管理平台均采用Socket套接字方式与服务器通信;服务器监听9527端口,手机客户端和PC管理平台通过9527端口与服务器进行通信;
所述GPS坐标信息由手机的GPS模块自动获取,其余信息由用户手动输入,输入完毕后发送将信息发送到服务器端并存入数据库;
获取信息部分会向服务器请求四轴飞行器的GPS信息,服务器返回GPS信息后,客户手机根据该GPS信息将四轴飞行器的位置实时显示在地图。
3.根据权利要求1所述一种基于四轴飞行器的快递运输系统,其特征在于所述PC管理平台用于:
1)读取服务器中存储的快递信息,将其发送给四轴飞行器并向四轴飞行器下达指令;
2)接收四轴飞行器发送的信息,并将这些信息存储到服务器中或由服务器进行下一步的转发。
4.根据权利要求1所述一种基于四轴飞行器的快递运输系统,其特征在于所述四轴飞行器采用atmega2560单片机;atmega2560单片机用于完成中断处理、任务通信、任务同步、内存管理、时间片服务、任务优先级分配,将应用问题分成小的易于管理的程序段;
一个任务是执行一个功能的代码段,它们之间互相独立地执行,这些任务的执行是并发的,任务间的通讯靠传输内部缓冲区或外部存储器信息段的指针来实现;当任务被创建时,每一个任务被分配一个优先级(在ITD表中定义),任务的优先级从0(最低)至7(最高),根据优先级来判断当某一个任务在运行时,哪些任务被禁止,以及决定哪一个就绪任务去运行,拥有高优先级的任务在竞争CPU资源时会占得先机;
所述一个任务的状态与其优先级和与之相关的“事件”有关,这个“事件”是一个中断、消息、时间间隔报告或超时报告;任务的状态有睡眠态、就绪态、运行态、空闲态。
5.根据权利要求4所述一种基于四轴飞行器的快递运输系统,其特征在于所述任务的管理模块管理构成应用系统的16个任务,它提供如下手段:创建一个用户任务;删除一个用户任务;查看任务的功能ID值;挂起一个任务;
CREATETASK:动态的创建及调度任务;
DELETETASK:删除系统中特定的任务;
GETFUNCTIONID:获得任务ID号(其值范围从00H至FFH);
WAIT:悬停正执行的任务;
GETMEM:获得系统中可用的具体有特定长度的内存块的首地址;
RELESEMEM:返还某一特定长度的内存块给系统内存区;
两种任务创建方式:
(1)静态创建
在初始产生应用系统时,由用户用ITD表的格式写入。
(2)动态创建
输入参数:任务的序号指针,装着将要创建任务的ITD表首地址的两字节变量,它被装在DPTR中。
输出参数:任务的ITD号,一个双字节变量,被放在寄存器R15、R16中,
(a)如果创建成功,它就是任务的序号值,范围在0至15之间。
(b)如果创建失败,则它存放错误的原因,即8X号错误;
调用动态地创建一个以ITD表为特性的新任务;如果创建成功,系统将给它可用ITD号中最小的一个,如果不成功,则在寄存器R17中装错误原因码;
同时,当创建一个任务时,还要初始化其如下属性表:
填TASK_BUF_BLOCK_TAB表:将任务申请的缓冲块的长度和首地址填入该表;
填TASK_PRR_TAB:将该任务的优先级填入该表;
填INT_MASK_TAB:将此优先级任务运行时允许的中断的中断位向量填入该表;
填TASK_INT_TAB:将该任务的中断源位向量填入该表;
填INT_SOUREC_TAB:将该中断源相关的ITD号填入该表;
填FID_TAB:将该任务的FID值填入该表;
填TASK_ADDR_TAB:将该任务的代码首地址填入该表;
填TASK_MSG_TAB:该任务的信息链中信息的个数,第一个信息的首地址,最后一个信息的首地址填入该表;
为任务引入FID值属性,用FID值识别任务;
当执行DELETETASK系统调用时,被删除的任务不再存在,它占用的系统资源、栈区归还给系统变为可再用的,这时系统可以再创建任务,并且系统还支持任务删除它自己;当删除了一个任务后,系统将:
(1)收回所有与该任务相关的中断源;
(2)如果这个任务是使用创建任务系统调用CREATETASK动态产生的,将把其栈空间归还给系统缓冲池;
(3)使这个ITD号对新任务可用;
(4)终止任何为该任务设置的时间间隔计时和超时计时;
(5)使该任务的FID值变为零;
(6)清除该任务的数据存储单元参数;
(7)如果删除时这个任务处于就绪状态,则将其从就绪链表中除去;
(8)若删除的任务是正运行的,那么系统将从就绪链表中再查出一个来,使之运行或进入idle态;
内存管理分如下两种方式:
(1)系统初始化时内存管理:在系统初始化时,系统内存区systemmemorypool被创建和修改,首先执行SUB1子程序来创建SMP,当初始化时需要创建任务,系统用CREATE10子程序在SMP的顶部为这些任务创建堆栈,特定长度的堆栈为任务所建立,最后系统缓冲池systembufferpool被创建,它们是一系列固定长度的缓冲块,SBP被创建;当系统按照系统缓冲块的初始值划分剩下的SMP空间为尽可能多的缓冲块时;之后剩余的内存空间即为系统划分SBP后剩余的;创建的SBP之间互相链接;
(2)动态的内存管理:在运行时,系统执行内存管理通过使用CREATE10子程序和SUB1子程序,当额外的任务被创建时,通过连续的使用SUB1子程序来使SBP归还给SMP,然后再通过CREATE10子程序来为任务分配它所需要的堆栈,分配后,系统再从剩下的SMP中创建SBP。
6.根据权利要求4所述一种基于四轴飞行器的快递运输系统,其特征在于所述任务的通信模块允许任务之间以传送信息的方式来交换数据;任务之间同步操作,共享系统资源,它提供的服务如下:分配缓冲区;向一个任务传送信息;挂起一个任务使其等待一个信息;释放缓冲区。
ALLOCATE:为即将发送的消息创建内存缓冲区;
SENDMESSAGE:发送消息至目的地址;
WAITMESSAGE:命令任务等待消息的到来;
DEALLOCATE:将已经分配的缓冲区归还至系统内存区;
申请缓冲块系统调用ALLOCATE用来从系统缓冲池申请一个固定大小的缓冲块;该系统调用被用在传送消息以前,用以装消息块的内容,申请缓冲块系统调用ALLOCATE用来从系统缓冲区中找一个可用的固定大小的缓冲块分配给任务,这个缓冲块的长度是buffersize;释放缓冲块系统调用DEALLOCATE将固定大小的缓冲块归还给系统缓冲池;它归还的缓冲块是用申请缓冲块系统调用ALLOCATE申请来的,否则系统将把其它部分的存储区划入系统缓冲池;
系统调用允许两个任务之间以消息的方式传送数据或命令;系统使这个消息传送到接收消息的消息队列中,但它不是将这个消息块传送过去,而是把这个消息块的指针送过去,等到接收消息的任务执行等待系统调用WAITMESSAGE等待这个消息时,它才被真正接收;若消息还没有到,这个任务就变成了等待状态,其它的就绪态任务会有一个去运行;当消息到时,看其优先级以决定它是进入就绪队列还是立即变成运行态;如果这个任务没有等待一个消息的到来,则这个消息只被记录到该接收任务的消息队列中,直到这个任务使用系统调用WAIT等待一个消息时才去处理它;
对于消息传输模式分为两种:
(1)单向消息模式
任务A要传送一批数据给任务B,任务A首先使用申请缓冲块系统调用ALLOCATE在内存分配一个缓冲块,将数据存入缓冲块,使用发送消息系统调用SENDMESSAGE将指针送给任务B,系统把这个消息的指针送入任务B的FIFO消息队列,如果任务B已执行等待系统调用WAIT等待一个消息时,它将接收这个指针并访问消息缓冲块;如果不是,则指针被放在消息队列中,等待任务B以后执行完等待系统调用WAIT等待消息时再去存取;
(2)事务处理模式
任务A向任务B传送消息,任务A先使用申请缓冲块系统调用ALLOCATE分配一个消息缓冲块,建立了一个命令消息的缓冲块,将命令消息存入缓冲块,然后使用发送消息系统调用SENDMESSAGE将这个消息的指针送给任务B,进入B的消息队列中,若任务B已经使用等待系统调用WAIT等待消息,则接收这个指针并存取缓冲块消息,若任务B没有在等待,则这一消息指针一直在任务B的消息队列中;
当任务B接收完这一消息后,将该消息类型由命令改为响应,交换源任务与目的任务,即把它送回给任务A,系统使之指针送入任务A的消息队列中,待任务A取得。
7.根据权利要求4所述一种基于四轴飞行器的快递运输系统,其特征在于所述中断处理使任务同外部设备通讯,提供如下服务:初始化时为任务设置中断源;屏蔽某一中断或某些中断;中断允许;用中断同步任务;
DISABLEINTERRUPT:屏蔽某中断;
ENABLEINTERRUPT:使能某中断;
SYNCHRONIZE:以中断同步任务;
中断处理过程是:首先判断系统是否处于空闲状态,若不是,则保护现场;然后查INT_SOURCE_TAB,找到与该中断源相关的任务的序号,之后再根据此序号查ASLEEP_TAB,得到event-vector,如果其第二位为0,表示没有等待中断,则把指针指向下一单元,取出event-coming,与中断位向量进行或操作,来反映中断事件,然后恢复现场,中断返回;如果event-vector其第二位为1,表示等待中断,这时把event-vector和timeout都清零,并且把这个任务的序号和正在运行的任务的序号进行比较,来决定是否交换任务运行,如果它是中断前正运行的任务则使其继续运行,否则保留之前运行任务参数后,让这个任务运行;
对于中断处理ASLEEP_TAB中的timeinterval和timeout,填写任务就绪表,分派一个任务去执行,启动定时器,运行优先级最高的任务,其处理过程如下:
首先判断Timer0中断发生前,系统是否处于空闲状态,若不是则保护现场。然后查ASLEEP_TAB取出timeinterval,若timeinterval不为0则转向timeinterval处理部分。若timeinterval为0则判断timeout,若timeout不为0则转向timeout处理部分;若timeinterval和timeout同时为0,则修改指针,对下一个任务仍按这样的步骤重新处理;
所述Timeinterval处理部分包括:置Timer0占用标识位;将timeinterval内容减1后判断,若timeinterval不为0,则停止timeinterval的处理,转向timeout处理部分;若timeinterval为0,则将任务的timeinterval值填入ASLEEP_TAB中;然后取出event-vector并判断第2和第3位,若任务没有等待timeinterval或没在睡眠态,则将event-coming中的timeinterval位上置1后转向任务的timeout处理部分,若任务处在睡眠态,并且在等待timeinterval报告,则将event-vector置04H,将timeout清0后填写任务就绪表,并且分配一个任务去执行,然后继续对下一个任务的timeinterval和timeout进行判断并处理。
Timeout处理部分:将timeout内容减1后判断,若timeout不为0将对下一个任务的timeinterval和timeout进行判断并处理;若timeout为0,则将event-vector内容也清0,填写任务就绪表后,分配一个任务去执行,然后继续对下一个任务的timeinterval和timeout进行判断并处理;
在所有任务的timeinterval和timeout处理后,设置timer0定时器工作,并且运行最大优先级的任务。
8.根据权利要求1所述一种基于四轴飞行器的快递运输系统,其特征在于系统计时模块使用片上硬件计时器中的Timer0为系统中的每个任务提供了一个软时钟,这个软时钟提供时间间隔计时和超时计时,时间间隔计时允许任务在某一特定的时间间隔内执行某一功能,超时计时给出允许用户挂起一个任务的最长时间即任务等待某一事件的时间限度,它提供给用户如下服务:建立时间间隔;等待时间间隔到;等待超时报告;
SETINTERVAL:当interval事件发生时,设定一个时间间隔;
WAITEVENT:等待interval或者timeout事件的发生;
当一个任务调用等待系统调用wait时,系统将该任务置睡眠状态,事件发生后,使这个任务变成就绪态,如果这个任务的优先级足够高,它变成运行态任务;
调用挂起一任务,使其等待某一事件的到来,当任务执行完该系统调用后,首先要查询一下它要等待的任务来到没有,如果没有到,系统将置该任务为等待状态,这时看等待的时间,如果timeout为0,表示不能等待,则任务不等待继续执行;若timeout不为0,则当timeout不等于OFFH时,要计时;timeout为OFFH时则不计时,这时挂起这个任务,从就绪态中取一个任务继续运行;如果该任务要等待的事件有到来的,就看这个任务是否在等待消息,如果等待的消息已经到来,那么就处理这个消息;如果这个等待任务要等待的事件都已到,则它可以进入运行态,否则它要继续等待。
9.一种基于四轴飞行器的单目避障方法,其特征在于包括以下步骤:
用光流来确定目标的运动,光流以点为基础,设图像点(x,y)的光流为(u,v),则将(x,y,u,v)为光流点,全部光流点构成的集合为光流场;
设场景中存在相对移动的物体,左上部为金字塔LK产生的真实光流,其中垂直向上光流为疑似障碍物,左下部为单应性变换得出的平移光流,将二者叠加到相同的图像,形成融合光流,通过比较这两种光流得出光流特性;融合光流和障碍物之间建立对应关系,判断障碍;
首先,对单个向量进行滤波,剔除长度过长的奇异向量;然后,对剩下向量进行k均值聚类,剔除各聚类内部奇异点和向量个数过少的聚类;其次,对融合光流进行滤波,剔除融合光流向量里的奇异向量和夹角过小的向量;最后,对障碍物做出判断。
10.一种基于四轴飞行器的快递运输方法,其特征在于包括以下步骤:
客户发送快递:
客户在自己的智能手机中下载客户端;点击获取GPS坐标按钮,客户自行获取可接收快递位置的GPS坐标,或者手动输入可以接收快递的GPS坐标;填写基本信息(寄件人姓名、详细地址、联系电话,收件人姓名、详细地址、联系电话、备注),点击确认发送按钮;客户端将基本信息数据和手机GPS信息发送给后台服务器;后台服务器处理请求;PC管理平台通过服务器实时在客户信息页面接收、查询和操作相关数据;按照客户GPS坐标,PC管理平台给四轴飞行器设定GPS航点坐标;在室外四轴飞行器自主飞行,通过GPS导航,使用融合光流法进行视觉传感器避障,最后到达预定GPS坐标,悬停等待,客户在视距范围看见四轴飞行器悬停,点击手机客户端确认四轴飞行器降落;客户将待邮寄物品放入四轴飞行器货物装配装置,并在客户端确认快递装填完毕;PC管理平台通过访问服务器,在PC管理平台上显示客户装填完毕,而后在PC管理平台上,快递管理菜单中,选择确认发送,向四轴飞行器发送起飞返回命令,四轴飞行器按GPS坐标返回;客户发送快递流程结束;
客户接收快递:
PC管理通过服务器向手机客户端发送通知客户接收快递的消息;客户在手机客户端上进行接收时间的选择和可以接收快递地点GPS航点的设定;手机客户端将这些信息反馈给后台服务器;PC管理平台通过访问服务器,得知客户接收快递的时间和GPS坐标;PC管理平台根据客户提供的GPS坐标,对四轴飞行器进行GPS航点设定,然后派送四轴飞行器;四轴飞行器到达指定GPS航点,四轴飞行器视距内悬停;客户在手机客户端四轴飞行器降落界面,点击确认降落按钮,飞行器降落;打开装载装置,取走快递;客户通过手机客户端确认快递已经取完;在PC管理平台快递管理菜单中,返回命令中,点击确认发送按钮;四轴飞行器按GPS航点返回;客户接收快递流程结束。
CN201410276432.5A 2014-06-19 2014-06-19 一种基于四轴飞行器的快递运输系统、快递运输方法及单目避障方法 Expired - Fee Related CN105306500B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410276432.5A CN105306500B (zh) 2014-06-19 2014-06-19 一种基于四轴飞行器的快递运输系统、快递运输方法及单目避障方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410276432.5A CN105306500B (zh) 2014-06-19 2014-06-19 一种基于四轴飞行器的快递运输系统、快递运输方法及单目避障方法

Publications (2)

Publication Number Publication Date
CN105306500A true CN105306500A (zh) 2016-02-03
CN105306500B CN105306500B (zh) 2018-11-02

Family

ID=55203250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410276432.5A Expired - Fee Related CN105306500B (zh) 2014-06-19 2014-06-19 一种基于四轴飞行器的快递运输系统、快递运输方法及单目避障方法

Country Status (1)

Country Link
CN (1) CN105306500B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105752338A (zh) * 2016-05-16 2016-07-13 苏州金建达智能科技有限公司 一种用于递送轻便物件的飞行装置
CN105867396A (zh) * 2016-03-30 2016-08-17 中国矿业大学 校园自主巡航四轴飞行器的信息处理系统及其工作方法
CN105872081A (zh) * 2016-05-16 2016-08-17 深圳市智璟科技有限公司 一种应用无人机运送急救物品的系统及方法
CN106708080A (zh) * 2017-03-16 2017-05-24 江西师范大学 一种基于云端控制的无人机快递自动投放系统
CN107102648A (zh) * 2017-03-21 2017-08-29 苏州光之翼智能科技有限公司 一种无人机自主运输系统
CN107340781A (zh) * 2016-09-30 2017-11-10 广州亿航智能技术有限公司 无人机飞行控制方法和系统
CN107390719A (zh) * 2017-08-23 2017-11-24 佛山神航科技有限公司 一种无人机配送快递系统
CN107592337A (zh) * 2017-08-04 2018-01-16 歌尔科技有限公司 一种无人机控制装置与移动终端通信的方法及装置
CN108830257A (zh) * 2018-06-29 2018-11-16 电子科技大学 一种基于单目光流的潜在障碍物检测方法
CN109314844A (zh) * 2018-09-04 2019-02-05 北京小米移动软件有限公司 信息传输方法及装置
CN109775219A (zh) * 2019-03-11 2019-05-21 广东赛斐迩物流科技有限公司 一种巷道阻挡自动移库方法以及使用该方法的移库系统
CN110062919A (zh) * 2016-10-17 2019-07-26 X开发有限责任公司 递送车辆的放下地点规划
CN113342040A (zh) * 2021-06-16 2021-09-03 一飞(海南)科技有限公司 无人机编队飞行表演航点动态获取的方法及飞行控制器

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006110475A3 (en) * 2005-04-08 2009-05-22 Trueposition Inc Augmentation of commercial wireless location system (wls) with moving and/or airborne sensors for enhanced location accuracy and use of real-time overhead imagery for identification of wireless device locations
US20110161119A1 (en) * 2009-12-24 2011-06-30 The Travelers Companies, Inc. Risk assessment and control, insurance premium determinations, and other applications using busyness
CN102331783A (zh) * 2011-06-17 2012-01-25 沈阳航空航天大学 一种用于室内飞艇的自动驾驶仪
CN102506892A (zh) * 2011-11-08 2012-06-20 北京航空航天大学 一种光流多传感器和惯导器件信息融合配置方法
CN103281352A (zh) * 2013-04-25 2013-09-04 四川创物科技有限公司 快递派件跟踪方法及系统
CN103365297A (zh) * 2013-06-29 2013-10-23 天津大学 基于光流的四旋翼无人机飞行控制方法
CN103778523A (zh) * 2014-01-09 2014-05-07 武汉猎隼科技有限公司 一种垂直起降无人机及其精确定位及避障方法
CN103869819A (zh) * 2014-03-10 2014-06-18 中国矿业大学 一种基于多旋翼无人机的带式输送机自动巡检系统及方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006110475A3 (en) * 2005-04-08 2009-05-22 Trueposition Inc Augmentation of commercial wireless location system (wls) with moving and/or airborne sensors for enhanced location accuracy and use of real-time overhead imagery for identification of wireless device locations
US20110161119A1 (en) * 2009-12-24 2011-06-30 The Travelers Companies, Inc. Risk assessment and control, insurance premium determinations, and other applications using busyness
CN102331783A (zh) * 2011-06-17 2012-01-25 沈阳航空航天大学 一种用于室内飞艇的自动驾驶仪
CN102506892A (zh) * 2011-11-08 2012-06-20 北京航空航天大学 一种光流多传感器和惯导器件信息融合配置方法
CN103281352A (zh) * 2013-04-25 2013-09-04 四川创物科技有限公司 快递派件跟踪方法及系统
CN103365297A (zh) * 2013-06-29 2013-10-23 天津大学 基于光流的四旋翼无人机飞行控制方法
CN103778523A (zh) * 2014-01-09 2014-05-07 武汉猎隼科技有限公司 一种垂直起降无人机及其精确定位及避障方法
CN103869819A (zh) * 2014-03-10 2014-06-18 中国矿业大学 一种基于多旋翼无人机的带式输送机自动巡检系统及方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
苑严伟等: "超低空无人飞行器虚拟现实技术实现与仿真", 《农业机械学报》 *
赵海等: "一种面向多智能体群集的避障算法", 《东北大学学报(自然科学版)》 *
赵海等: "基于消失点的四旋翼飞行器走廊自主导航", 《东北大学学报(自然科学版)》 *
邓扬等: "自动化无人机快递系统的研究与设计", 《计算机光盘软件与应用》 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105867396A (zh) * 2016-03-30 2016-08-17 中国矿业大学 校园自主巡航四轴飞行器的信息处理系统及其工作方法
CN105872081A (zh) * 2016-05-16 2016-08-17 深圳市智璟科技有限公司 一种应用无人机运送急救物品的系统及方法
CN105752338A (zh) * 2016-05-16 2016-07-13 苏州金建达智能科技有限公司 一种用于递送轻便物件的飞行装置
CN107340781A (zh) * 2016-09-30 2017-11-10 广州亿航智能技术有限公司 无人机飞行控制方法和系统
CN110062919A (zh) * 2016-10-17 2019-07-26 X开发有限责任公司 递送车辆的放下地点规划
US11353892B2 (en) 2016-10-17 2022-06-07 X Development Llc Drop-off location planning for delivery vehicle
CN111966114A (zh) * 2016-10-17 2020-11-20 X开发有限责任公司 递送车辆的放下地点规划
CN110062919B (zh) * 2016-10-17 2020-09-01 X开发有限责任公司 递送车辆的放下地点规划
CN106708080A (zh) * 2017-03-16 2017-05-24 江西师范大学 一种基于云端控制的无人机快递自动投放系统
CN107102648A (zh) * 2017-03-21 2017-08-29 苏州光之翼智能科技有限公司 一种无人机自主运输系统
CN107592337A (zh) * 2017-08-04 2018-01-16 歌尔科技有限公司 一种无人机控制装置与移动终端通信的方法及装置
CN107390719A (zh) * 2017-08-23 2017-11-24 佛山神航科技有限公司 一种无人机配送快递系统
CN108830257A (zh) * 2018-06-29 2018-11-16 电子科技大学 一种基于单目光流的潜在障碍物检测方法
CN109314844A (zh) * 2018-09-04 2019-02-05 北京小米移动软件有限公司 信息传输方法及装置
CN109314844B (zh) * 2018-09-04 2022-05-06 北京小米移动软件有限公司 信息传输方法及装置
CN109775219A (zh) * 2019-03-11 2019-05-21 广东赛斐迩物流科技有限公司 一种巷道阻挡自动移库方法以及使用该方法的移库系统
CN113342040A (zh) * 2021-06-16 2021-09-03 一飞(海南)科技有限公司 无人机编队飞行表演航点动态获取的方法及飞行控制器

Also Published As

Publication number Publication date
CN105306500B (zh) 2018-11-02

Similar Documents

Publication Publication Date Title
CN105306500B (zh) 一种基于四轴飞行器的快递运输系统、快递运输方法及单目避障方法
CN110413006B (zh) 一种基于5g通信的无人机编队组网系统及方法
US7418317B2 (en) System and method for controlling and communicating with a vehicle
CN111813560B (zh) 一种基于云池端的智能天基系统体系
CN208401845U (zh) 用于促进无人驾驶飞行工具网络的系统
CN105398571B (zh) 基于无人飞行器的点对点送达系统及其送达方法
CN109669477A (zh) 一种面向无人机集群的协同控制系统及控制方法
CN102637040B (zh) 无人机集群可视导航任务协同方法和系统
CN108762295A (zh) 基于软件总线的一体化无人机控制系统
CN110322231A (zh) 一种航班计划自动发布方法和系统
CN108573619A (zh) 一种空地协同作业的无人机运管云平台
CN106774382A (zh) 一种多无人机实时态势信息共享系统
CN106452563A (zh) 基于通信卫星的无人机数据链通用接入系统
CN111813522B (zh) 一种虚拟arinc 653仿真验证平台
CN103166971A (zh) 一种多路复用串口协议转换器
CN107102833A (zh) 线路信息互动方法及电子设备
JP2020181583A (ja) 無人飛行体の予約管理装置
WO2020060441A1 (ru) Способ доставки грузов
CN111478839B (zh) 一种物理总线及操作系统解耦的分布式航空通信系统
CN111309488B (zh) 无人机集群的计算资源共享方法与系统及计算机存储介质
CN104724295B (zh) 一种无人机载荷通用接口系统
CN106656778A (zh) 一种北斗卫星导航系统的通信网关及其通信方法
CN113127176A (zh) 一种用于工作平台的多角色任务分配方法及系统
CN100364269C (zh) Cns/atm管制工作站及其管制方法
CN104765644A (zh) 基于智能体Agent的资源协作演化系统及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20181102