论文部分内容阅读
随着机器人技术的快速发展和市场需求的增加,机器人应用从传统的工业领域向教育、娱乐、医疗服务等领域快速拓展。机器人软件除了提供传统实时软件的功能之外,还需要根据用户需求支持许多通用软件的功能。同时,由于不同机器人在硬件结构和软件环境上的不同,使机器人软件的复用与部署变得困难。为了解决上述问题,本文在华南理工大学自主研发的BAOS(roBot Advanced Operating System)基础上,研究适合目前机器人发展需求的软件框架。本文的主要工作包含以下几个方面:一、本文提出了一种双层构件模型,根据机器人实时任务与通用任务的特点,将机器人软件分两个层次。针对实时任务响应快速、代码精简的特点,引入了基于反应范式的行为模型对实时任务进行描述;针对通用任务代码丰富多变的特点,引入基于资源隔离与统计的软件容器模型对其进行描述。同时,设计了两个层次任务之间的通信模式。二、研究与实现内核层实时构件框架。为了使构件能够具备尽可能高的实时能力,选择了 Linux可加载内核模块作为实时构件的实现载体,通过构件内部函数实现软件行为,通过统一的事件管理机制来驱动实时任务的运行。将内核高精度定时器封装为构件框架内部的事件源,为机器人定时任务与周期任务提供高效的时间控制接口。通过字符设备的方式,向应用层提供了与内核层交互的接口。三、研究与实现应用层通用构件框架。为实现机器人软件的快速开发和已有软件的快速集成,加速机器人软件的部署验证,提高应用效率,选择了 Linux容器技术对通用构件进行设计,并基于Docker对通用软件构件进行实现。同时为了增强发布/订阅通信机制的通用性,实现了基于代理机制的通信中间件。四、对本文研究与实现的框架进行基本测试,并将其应用在工业机器人分拣系统、基于Web的机器人控制系统以及多机器人协作系中。测试与应用结果表明,本文提出的框架具有较好的实时性和通用性。