【技术实现步骤摘要】
一种基于插件框架调用IROS服务的方法
[0001]本专利技术涉及智能机器人开发
,具体涉及一种基于插件框架调用IROS服务的方法。
技术介绍
[0002]IROS(Intelligent Robot Operating System,简称“IROS”),具备ROS类似的功能,替代了开源ROS的内核,提供了兼容ROS的接口,解决了ROS可靠性、性能、安全等相关的问题,并增加了新的功能,支持云化机器人开发、支持云边端通信、支持多机器人协作等。
[0003]服务通信也是ROS中一种极其常用的通信模式,服务通信是基于请求响应模式的,是一种应答机制。在服务通信中,数据分成两部分,请求与响应,在 srv 文件中请求和响应使用
‑‑‑
分割。在开发调试阶段,节点服务的调用者往往不知道具体需要传入哪些参数,以及参数的类型,尤其是当参数发生了变化,或者其他程序提供了相同的服务,造成节点的调用程序有时正确有时错误,亦或者异常退出。此外,多人团队协作开发,程序服务的提供者与调用者开发进度不一致,这也就是无法进行联调。
技术实现思路
[0004]本专利技术为了克服以上技术的不足,提供了一种使得开发过程更加高效,便捷的基于插件框架调用IROS服务的方法。
[0005]本专利技术克服其技术问题所采用的技术方案是:一种基于插件框架调用IROS服务的方法,包括如下步骤:a)定义插件的接口信息;b)定义插件接口类;c)定义插件管理框架;d)获取默认参数;e)计算MD5值;f)生成初始化接口函数, ...
【技术保护点】
【技术特征摘要】
1.一种基于插件框架调用IROS服务的方法,其特征在于,包括如下步骤:a)定义插件的接口信息;b)定义插件接口类;c)定义插件管理框架;d)获取默认参数;e)计算MD5值;f)生成初始化接口函数,默认为空;g)生成发送消息接口函数;h)生成插件请求处理函数,请求处理函数校验参数类型及名称是否匹配及是否缺少参数,如果参数名或类型错误则抛出异常,终止程序运行,如果缺少参数,则使用默认值处理;i)生成接收消息接口函数,解析并返回结果;j)生成插件响应处理函数,将返回结果打印出来。2.根据权利要求1所述的基于插件框架调用IROS服务的方法,其特征在于,步骤a)中定义的插件的接口信息为:a
‑
1)初始化接口;a
‑
2)插件的注册接口;a
‑
3)插件的卸载接口;a
‑
4)获取默认参数接口;a
‑
5)获取插件的MD5值;a
‑
6)定义插件间的消息发送接口;a
‑
7)定义插件间的消息接收接口;a
‑
8)定义插件功能执行接口。3.根据权利要求1所述的基于插件框架调用IROS服务的方法,其特征在于:步骤b)中插件的接口类为定义了步骤a)中接口全部为纯虚函数,有子类继承并实现。4.根据权利要求1所述的基于插件框架调用IROS服务的方法,其特征在于,步骤c)包括如下步骤:c
‑
1)解析参数,获取服务使用的srv文件;c
‑
2)判断该srv文件的插件是否已注册,如果已注册则执行步骤c
‑
6),如有没有注册,则获取srv文件所在的包的位置,找到对应的srv文件和库;c
‑
3)使用dlopen()函数加载srv文件所对应的库;c
‑
4)使用dlsym()函数解析库的接口,并创建srv文件对应的插件类;c
‑
5)使用插件类注册服务;c
‑
6)获取插件类的默认参数,进行参数比较;c
‑
7)如果参数比较后不兼容,则抛出异常,关闭所有打开的动态库,如果参数比较后兼容,则缺少的参数使用默认值补全;c
‑
8)获取服务提供者使用的srv文件的MD5码;c
‑
9)比对MD5码是否相同,如果不相同,则提示错误并退出执行,如果相同,则执行步骤c
‑
10);c
‑
10)调用插件的服务接口,将...
【专利技术属性】
技术研发人员:蔡萌萌,李朝铭,刘鹏,王召东,赵洪宇,
申请(专利权)人:山东新一代信息产业技术研究院有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。