本发明专利技术提供了一种基于IROS系统参数设置的方法,包括参数值类型的划分、修改参数值、修改参数值类型、修改命名空间、批量修改参数。通过规范化参数值的类型,创建参数值的类型对应的界面,创建参数值的修改界面以及交互界面,然后通过界面操作更改参数的值和类型,最后通过RPC远程调用(含token)实现与参数服务器的同步。本方案使得参数的更改更加安全,可靠;参数服务器提供注册参数更新的接口,可以实现节点之间参数的同步。同时,将参数值的类型与名称进行绑定,还可以校验参数的值是否有误,进一步提高了对参数服务器修改的可靠性和安全性。性。性。
【技术实现步骤摘要】
一种基于IROS系统参数设置的方法
[0001]本专利技术涉及一种基于IROS系统参数设置的方法,属于IROS系统参数
技术介绍
[0002]ROS是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数。ROS的主要目标是为机器人研究和开发提供代码复用的支持。IROS(Intelligent Robot Operating System,下文简称“IROS”),具备ROS类似的功能,替代了开源ROS的内核,提供了兼容ROS的接口,解决了ROS可靠性、性能、安全等相关的问题,并增加了新的功能,支持云化机器人开发、支持云边端通信、支持多机器人协作等。
[0003]ROS有一个参数服务器,可以提供全局的参数存储和查询服务,并且提供了一个设置参数的命令行工具。该工具对参数的修改尤其是类型的修改和参数的删除没有进行权限的校验,这样修改参数是非常危险的。同时,ROS允许多个节点对同一个参数进行修改,但并没有提供通知节点的回调接口。这将导致节点运行不正确,而且这种错误很难察觉。ROS中通过命令行工具进行参数设置时,如果参数类型比较复杂,输入过程不友好,并且容易出错。
技术实现思路
[0004]本专利技术目的是提供了一种基于IROS系统参数设置的方法,提高了对参数服务器修改的可靠性和安全性。
[0005]本专利技术为实现上述目的,通过以下技术方案实现:
[0006]步骤1:获取参数值类型,所述参数类型包括基本数据类型、基本数据数组类型、复杂数据类型,所述基本数据类型包括整型、浮点型、布尔型、字符串类型;所述基本数据数组类型包括整形数组、浮点型数组、布尔型数组、字符串类型数组;所述复杂数据类型由基本数据类型和基本数组类型组合而成,并通过xmlrpcvavle保存;
[0007]步骤2:修改参数值,通过RPC获取参数名称对应的参数值,修改参数值后,根据对应的类型进行校验类型是否匹配,如果匹配则修改成功,如果不匹配则修改失败,修改参数类型;
[0008]步骤3:修改参数值类型,判断通过RPC获取参数名称对应的参数值的参数类型,对于基本数据类型和基本数组类型,直接将保存为对应的类型,如果不是基本数据类型和基本数组类型,则单独进行创建参数类型,参数类型修改完成后重复步骤2进行参数修改;
[0009]步骤4:修改命名空间,将该命名空间下所有参数的名称和对应的值组合成一个yaml格式的数据进行显示,通过修改yaml格式数据,对该命名空间下所有参数的值和类型进行修改。
[0010]优选的,所述修改参数值具体步骤如下:
[0011]步骤1:获取需要修改的参数名称,通过RPC调用获取需要修改参数的值;
[0012]步骤2:判断参数值的类型;若是简单的数据类型,那么执行步骤3创建参数值;如果不是则创建一个名为对应参数名的group,重复执行步骤2;
[0013]步骤3:创建基本数据类型或者基本类型数组界面,
[0014]若是布尔型则创建一个布尔型界面,并设置参数的值;
[0015]若是整型则创建一个整型界面,并设置参数的值;
[0016]若是浮点型则创建一个浮点型界面,并设置参数的值;
[0017]若是字符串类型则创建一个字符串类型界面,并设置参数的值;
[0018]优选的,所述修改参数值的类型修改:
[0019]通过RPC远程调用获取参数值的类型,通过label显示参数名,combobox显示原来的参数值类型,通过下拉菜单选择参数值类型,创建出对应的界面,然后根据权利要求2所述,即可对参数值进行修改。
[0020]优选的,所述修改参数值类型中单独进行创建的步骤如下:
[0021]步骤1:输入yaml格式的值或者输入结构体类型,如果输入的是struct格式结构;
[0022]步骤2:根据struct结构创建出yaml格式数据并填写默认值;
[0023]步骤3:校验yaml格式数据是否合法,若合法那么根据结构体创建出对应的界面。
[0024]步骤4:根据权利要求2所述,对参数值进行修改
[0025]优选的,所述命名空间修改步骤如下:
[0026]步骤1:获取命名空间下所有的参数,以及参数的权限;
[0027]步骤2:判断用户是否存在一个节点具有写权限,若不存在,则用户只能查看不能修改;若存在,则继续执行步骤3;
[0028]步骤3:通过RPC调用获取每一个参数的值;
[0029]步骤4:根据命名空间的嵌套关系将该命名空间下的所有参数和值保存为一个YAML::NODE节点;
[0030]步骤5:用户修改时,校验文本框的内容是否满足yaml语法格式,若不满那么设置为原始值,若满足那么将文本转换为YAML::NODE节点;
[0031]步骤6:将YAML::NODE节点转化为xmlrpcvalue类型,调用RPC接口更新参数值,若更新成功,那么刷新节点列表,若不成功,用户确认后,恢复原始值。
[0032]优选的,所述方法还包括批量修改参数,具体步骤如下:根据需要修改的参数选择对应的yaml文件,加载yaml文件的内容,作为YAML::NODE节点;然后使用YAML::NODE节点创建出参数列表树,并根据YAML::NODE节点值得类型创建出对应的参数值界面。
[0033]一种基于IROS系统参数设置的设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:获取参数类型修改参数值、修改参数值类型、修改命名空间。
[0034]一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:获取参数类型修改参数值、修改参数值类型、修改命名空间。
[0035]本专利技术的优点在于:本专利技术以智能机器人操作系统IROS为依托,通过规范化参数值的类型,创建参数值的类型对应的界面,创建参数值的修改界面以及交互界面,然后通过
界面操作更改参数的值,最后通过RPC远程调用(含token)实现与参数服务器的同步。本方案使得参数的更改更加安全,可靠;参数服务器提供注册参数更新的接口,可以实现节点之间参数的同步。同时,将参数值的类型与名称进行绑定,还可以校验参数的值是否有误,进一步提高了对参数服务器修改的可靠性和安全性。
附图说明
[0036]附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术,并不构成对本专利技术的限制。
[0037]图1为本专利技术实施例1的主视结构示意图。
具体实施方式
[0038]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于IROS系统参数设置的方法,其特征在于,包括以下步骤;步骤1:获取参数值类型,所述参数类型包括基本数据类型、基本数据数组类型、复杂数据类型,所述基本数据类型包括整型、浮点型、布尔型、字符串类型;所述基本数据数组类型包括整形数组、浮点型数组、布尔型数组、字符串类型数组;所述复杂数据类型由基本数据类型组合而成,通过xmlrpcvavle保存;步骤2:修改参数值,通过RPC获取参数名称对应的参数值,修改参数值后,根据对应的类型进行校验类型是否匹配,如果匹配则修改成功,如果不匹配则修改失败,修改参数类型;步骤3:修改参数值类型,判断通过RPC获取参数名称对应的参数值的参数类型,对于基本数据类型和基本数组类型,直接将保存为对应的类型,如果不是基本数据类型和基本数组类型,则单独进行创建参数类型,参数类型修改完成后重复步骤2进行参数修改;步骤4:修改命名空间,将该命名空间下所有参数的名称和对应的值组合成一个yaml格式的数据进行显示,通过修改yaml格式数据,对该命名空间下所有参数的值和类型进行修改。2.根据权利要求1所述的基于IROS系统参数设置的方法,其特征在于,所述修改参数值具体步骤如下:步骤1:获取需要修改的参数名称,通过RPC调用获取需要修改参数的值;步骤2:判断参数值的类型;若是简单的数据类型,那么执行步骤3创建参数对应的界面;如果不是则创建一个名为对应参数名的group,重复执行步骤2;步骤3:创建基本数据类型或者基本类型数组界面,若是布尔型则创建一个布尔型界面,并设置参数的值;若是整型则创建一个整型界面,并设置参数的值;若是浮点型则创建一个浮点型界面,并设置参数的值;若是字符串类型则创建一个字符串类型界面,并设置参数的值。3.根据权利要求1所述的基于IROS系统参数设置的方法,其特征在于,所述修改参数值的类型:通过RPC远程调用获取参数值的类型,通过label显示参数名,combobox显示原来的参数值类型,通过下拉菜单选择参数值类型,创建出对应的界面,然后根据权利要求2所述,即可对参数值进行修改。4.根据权利要求1所述的基于IROS系统参数设置...
【专利技术属性】
技术研发人员:蔡萌萌,李朝铭,刘鹏,王召东,赵洪宇,程瑶,王怀震,刘来波,马辰,黄毅,南国,
申请(专利权)人:山东新一代信息产业技术研究院有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。