基于Petri网的多线程技术在机器人编队中的应用

时间:2024-01-26 点赞:47225 浏览:95236 作者原创标记本站原创

该文为关于线程相关本科毕业论文范文,与基于Petri网的多线程技术在机器人编队中的应用相关论文参考文献代码,可作为参考文献专业线程论文写作研究的大学硕士与本科毕业论文开题报告范文和职称论文参考文献资料。免费下载教你怎么写线程及机器人及进程方面的优秀学术论文范文。

摘 要:传统的单机器人难以适应复杂的任务以及灵活多变的环境,因此多机器人的研究受到越来越多的关注.结合多线程技术为机器人编队建立Petri网模型,运用Petri网模型对系统各线程对共享区资源的独占性存取,线程之间同步协作进行模拟分析,提出机器人编队的多线程软件解决方案.

关 键 词 :机器人编队 多线程技术 Petri网 解决方案

中图分类号:TP242 文献标识码:A 文章编号:1007-3973(2013)006-047-02

1.引言

多机器人编队以其能够更加有效、准确的获取环境信息,提高工作效率,增加系统鲁棒性等优点成为机器人研究领域中的一个热点.编队成员之间通过加速度计、里程计、电子罗盘等传感器收集自身位姿信息实现自身定位,结合超声波、视觉等感知型传感器获得周围环境信息,采用无线组网的方式将个体的位置与环境信息在群体内共享并计算机器人之间的相对位置实现机器人编队.

编队移动过程中对系统实时性要求较高,常需要多个任务并行运行,常规的软件设计方案难以满足要求,本文结合多线程技术为机器人编队的软件设计方案提供参考.引入多线程技术之后,由线程并发运行所造成的非确定性使得系统变得更加复杂,协调线程以配合完成系统控制任务、对共享区数据的访问进行限制等问题使常规的系统设计方法难以满足要求.Petri网理论是一种直接易用的系统建模工具,具有严格的数学定义,对具有并发行为的系统能够合理描述,对系统的运行过程能够直观的模拟.结合多线程技术为机器人编队建立Petri网模型,利用模型对机器人编队中的多线程的运行做模拟分析,提出机器人编队的多线程软件解决方案.


2.多线程技术在机器人编队中的设计与实现

多线程技术可以通过时分轮转调度算法在单片机中实现.每个活动的线程轮流使用CPU,每个线程占用CPU的一个时间片,CPU在多个线程间快速切换,宏观上表现为多个线程同时执行.本文将机器人编队划分为多个进程:主进程,获取任务命令进程,机器人间的通讯进程,进程中包含多个线程.本文所选的主控芯片为Freescale Kiis系列,采用ARM Cortex-M4内核,处理速度快,外设接口丰富,能够较好的满设计的要求.

主进程利用周期中断定时器产生时间片用于线程切换.时间片的长短根据各个线程的执行时间和各任务的响应要求来综合考虑.主进程中包含的线程有:获取机器人自身姿态线程、实现自身定位线程、实现机器人移动线程等.

获取任务命令进程根据任务要求创建.机器人进行通信获取任务,根据目标任务的要求激活相应的子线程.若没有接到任务命令,则不执行本进程.

机器人之间的通讯进程采用外部中断服务函数实现.当收到外部通信中断请求,或者本机对外通讯的中断请求时创建激活本进程.若没有接到通信中断请求,则不执行本进程.

3.机器人编队的多线程Petri网模型

本文主要研究的是带禁止弧的时间Petri网,该Petri网的定义请参考文献[2],本文不做过多的描述.

用位置表示进程、线程和与此有关的工作状态,用变迁表示进程、线程的执行以及与此有关的工作过程,结合多线程技术为机器人编队建立Petri网模型,如图1所示.图中各标号相同的位置表示同一位置.表1是各主要位置和变迁实施的具体含义.

在主进程中主要包含获取机器人自身姿态线程、实现自身定位线程、实现机器人移动线程(T0→T15).每个线程能够执行应同时满足:轮巡的时间片到达、线程是活动的.例如在图1中实现机器人自定位线程的启动除了要等待时间片轮巡到P8,即等待所有传感器信息采集完毕,还需要系统对自定位线程的使能,使T5具有发生权,P7得到令牌.T11为获取命令进程的变迁节,只有当系统处于任务等待状态且收到任务命令时才创建并执行.

机器人之间的通讯进程包含数据的接收线程与发送线程.每个线程在运行的过程中需要调用全局变量,如果一个线程访问并修改全局变量时,另一个线程启动并访问该变量,此时该变量的值将变得不确定,给系统带来安全隐患,因此需要对线程进行互锁.将所有线程需要访问的全局变量存放在一个共享区进行共享.图1中P11位置表示对访问共享区的线程进行互锁,只允许T9,T33,T16变迁中有且仅有一个线程对共享区进行访问,一个变迁节使能将使其他变迁节不能发生.图1中T18→T27表示数据发送子线程将数据以队列的形式进行传送.P28→T25的权值为3,即需要数据队列准备完毕才能开始建立连接.P28想要获得令牌,取决于变迁T22,T23,T24的引发,而这三个变迁的引发是相互竞争冲突的.本文引入禁止弧P25→T23和P26→T24可以使这三个变迁获得T22的优先级高于T23,T23的优先级高于T24的引发次序,从而确保数据队列的正确建立.

图1 机器人编队的多线程时间Petri网模型

表1 图1 Petri网中主要位置和变迁节的含义

4.机器人编队的多线程软件解决方案探讨

机器人编队中进程、线程之间的同步协作、对共享区资源的独占性存取、线程的启动与结束等方面的问题在上文中的Petri网模型均有体现.通过该模型的模拟运行,可以直观的了解各进程、线程之间工作流程中执行顺序、并发、竞争冲突以及同步关系.以此为基础,针对机器人编队中多线程的实现提出软件设计方案.

线程优先级的设置以及调用通过函数ThreadScheduler实现.程序上通过switch-case与break结合,识别线程编号priority_num.优先级的设置通过case语句的排列顺序实现,优先级较高的排列靠前.线程的调用由线程编号决定,只有priority_num为某个线程的编号时,该线程才启动,实现时间片在多个线程之间的轮巡.

主进程中线程的启动在中断定时器PIT0中实现,划分时间片长度为20ms(根据经验)即PIT0定时周期为20ms.周期中断一次,时间片TIME的数值加1,根据时间片TIME值的不同调用线程使能函数ThreadSet使能相应的线程.

由于篇幅有限,本文仅提出机器人编队的多线程软件框架.详细的线程之间的互锁、同步、竞争等关系,编队通讯队列的建立等具体代码的实现将在后续论文中给予体现.

5.结束语

在机器人编队的软件设计中使用了多线程技术,使编队的多个任务能够同时执行,增强了编队的实时性,切实提高了编队效率.建立多线程的机器人编队带禁止弧的Petri网模型,可以直观明了地掌握多线程在工作流程中的执行顺序、竞争冲突、并发以及同步关系.为后期代码的实现提供参考,能够有效的避免多个线程对共享资源存取不当、线程不同步等常见问题,从而提高了机器人编队的稳定性和安全性.

相关论文

Ja多线程技术的网络编程

本文是一篇线程论文范文,线程方面在职研究生毕业论文,关于Ja多线程技术的网络编程相关毕业论文模板范文。适合线程及操作系统及计算机应用技。

计算机多线程TCP/IP协议还原技术概述

本文是一篇计算机论文范文,关于计算机毕业论文开题报告,关于计算机多线程TCP IP协议还原技术概述相关硕士学位毕业论文范文。适合计算机及协。

移动长途汇接网中的软交换技术

为您写管理系统毕业论文和职称论文提供关于管理系统方面毕业论文格式范文,与移动长途汇接网中的软交换技术相关论文范例,包括关于管理系统及。

基于Petri网的物流配送综述

本文是一篇物流配送论文范文,关于物流配送类毕业论文开题报告范文,关于基于Petri网的物流配送综述相关在职毕业论文范文。适合物流配送及大。

1000元网,打造彩票投资第一技术平台

此文是一篇原版论文范文,原版有关论文范文例文,与1000元网,打造彩票投资第一技术平台相关本科毕业论文。适合不知如何写原版及技术及彩票方。

1000元网打造最权威的技术投彩平台

本文是一篇彩票论文范文,关于彩票相关函授毕业论文,关于1000元网打造最权威的技术投彩平台相关学士学位论文范文。适合彩票及技术及总裁班方。

巧用百度网盘离线下载网络资源

本文是一篇链接论文范文,关于链接专升本毕业论文开题报告,关于巧用百度网盘离线下载网络资源相关学年毕业论文范文。适合链接及按钮及记者方。