[发明专利]一种基于形式化模型的ROS代码生成器及代码生成方法有效
申请号: | 201910307270.X | 申请日: | 2019-04-17 |
公开(公告)号: | CN110109658B | 公开(公告)日: | 2022-08-23 |
发明(设计)人: | 王瑞;张芮;关永;李晓娟;施智平;李欣欣 | 申请(专利权)人: | 首都师范大学 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/35 |
代理公司: | 北京慧泉知识产权代理有限公司 11232 | 代理人: | 李娜 |
地址: | 100048 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 形式化 模型 ros 代码 生成器 生成 方法 | ||
1.一种基于形式化模型的ROS代码生成器,其特征在于:其由四部分构成:输入模块,Java解析器,逻辑控制器以及输出模块;
所述的输入模块用于指定模型文件的类型,系统的时间自动机模型被映射成一个XML文件,该文件采用了抽象语法树结构来存储和定义模型中的状态、转换的数据元素以及元素之间的依赖关系;
Java解析器:用于实现从模型到代码的低层抽象,所述的解析器读取XML文档并且提取文件中的数据元素;然后,根据所提取的数据元素构建一系列的数据表,其中包含三张静态查找表和一张动态查找表;
逻辑控制器:用于实现从模型到代码的高层抽象,所述的逻辑控制器读取表格中的数据元素,然后根据模型内部的状态转换机制定义时序控制规则,最后逻辑控制器将与时间自动机模型的控制转换相一致的时序规则抽象成逻辑规约的形式,并且将该规约用C++代码的形式呈现出来;
输出模块:用于将以C++代码形式所表示的抽象时序规约写入到C++文件中,其中包含三个.cpp源文件和四个.h头文件;
三个.cpp源文件是:*.cpp,ros_kernel.cpp,*_init.cpp;四个.h头文件是:*_init.h,*.h,ros_interface.h,ros_system.h;其中文件*.cpp是程序执行的入口,它存储了一系列数据表和相关函数的定义,ros_kernel.cpp中包含了时间自动机模型的核心算法设计,该算法描述了模型的转换控制逻辑,*_init.cpp文件初始化了ROS工作空间以及定义的数据变量;其它四个.h文件定义了结构体变量和ROS封装模块来支持.cpp文件的运行。
2.一种基于形式化模型的ROS代码生成方法,其特征在于:该方法包括如下步骤:
S1、建立模型
对系统进行可视化建模,系统组件间的交互能够被建模成一个时间自动机网络,系统在不同时刻的状态被映射成模型中的节点,状态之间的迁移对应于模型里的转换;一旦标记在边上或节点中的条件满足指定要求,则转换发生;
其中,文本编辑器定义了模型转换中涉及到的变量、函数,以此来支持转换的执行;
S2、解析模型数据并且构建数据表
时间自动机的存储和转换依赖于一系列由Java解析器构建的数据表;其中,静态表存储了模型中可视化的数据元素,表中数据元素之间的依赖关系由该元素在模型中的排列方式决定;动态表是用来描述时间自动机模型分支转换逻辑的主要设计手段,状态之间的转换被映射成动态表的查找和更新;通过迭代地读取和修改数据表中的数据能够实现与时间自动机模型相同的转换输出;
S3、定义模型到代码的映射规则
具体包含三个设计模块:Committed模块,主控逻辑框架以及时钟处理单元;其中,主控逻辑框架用来评估模型的输出转换,使得生成的代码能够与模型保持一致的状态输出;Committed模块用来改变模型当前的输出转换,它在保证整个时间自动机模型时序逻辑正确性的前提下,优先执行了Committed状态输出的转换;时钟处理单元实现了系统时钟的同步增长功能,从而解决时钟模块与不同目标平台之间的缺口;
S4、进行代码生成
通过代码生成器能够自动地将模型转换成C++代码写入到三个源文件和四个头文件中;
三个.cpp源文件是:*.cpp,ros_kernel.cpp,*_init.cpp;四个.h头文件是:*_init.h,*.h,ros_interface.h,ros_system.h;其中文件*.cpp是程序执行的入口,它存储了一系列数据表和相关函数的定义,ros_kernel.cpp中包含了时间自动机模型的核心算法设计,该算法描述了模型的转换控制逻辑,*_init.cpp文件初始化了ROS工作空间以及定义的数据变量;其它四个.h文件定义了结构体变量和ROS封装模块来支持.cpp文件的运行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于首都师范大学,未经首都师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910307270.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种GPU微指令探测方法
- 下一篇:一种实现前端应用脚手架的系统和服务器