[发明专利]一种港口自动驾驶单车端通信消息解耦处理方法在审
| 申请号: | 202111255127.4 | 申请日: | 2021-10-27 |
| 公开(公告)号: | CN113961373A | 公开(公告)日: | 2022-01-21 |
| 发明(设计)人: | 杨高升;阳钧;刘鹤云 | 申请(专利权)人: | 北京斯年智驾科技有限公司 |
| 主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/448 |
| 代理公司: | 杭州裕阳联合专利代理有限公司 33289 | 代理人: | 葛婷婕 |
| 地址: | 102600 北京市大兴区北京经济*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 港口 自动 驾驶 单车 通信 消息 处理 方法 | ||
1.一种港口自动驾驶单车端通信消息解耦处理方法,其特征在于,
对Publish侧的中间件消息与子系统消息分离,即:
定义子系统消息转换成ROS2消息函数ToMsg();
定义用于pubilsh的类PubProxyCore,实现PubProxycore::pub()函数;
定义PubProxy类,封装PubProxyCore,用于对子系统提供统一调用接口;
对Subscribe侧的中间件消息与子系统消息分离,即:
定义ROS2消息类型到子系统消息类型的转换函数ToInnerData()及映射关系;
定义用于subscribe的类SubProxyCore,实现SubProxyCore::create_sub()函数;
控制SubProxyCore::create_sub()的生命周期,对子系统提供统一订阅子系统消息接口SubProxy::create_sub()。
2.根据权利要求1所述的一种港口自动驾驶单车端通信消息解耦处理方法,其特征在于,定义子系统消息转换成ROS2消息函数ToMsg()时,以子系统消息类型为形参,不同的子系统消息类型构成ToMsg()的函数重载。
3.根据权利要求2所述的一种港口自动驾驶单车端通信消息解耦处理方法,其特征在于,定义用于publish的类PubProxyCore,实现PubProxyCore::pub(T inner_msg)函数时,类型T根据传入的实参,具象化为具体的子系统消息类型;由传入的子系统消息类型和ToMsg(),可得到对应的ROS2消息类型,从而创建出此ROS2消息类型的publisher对象,最后,调用publisher对象的publish()方法,将转换成ROS2消息的子系统消息发送出去。
4.根据权利要求3所述的一种港口自动驾驶单车端通信消息解耦处理方法,其特征在于,定义PubProxy类,封装了PubProxyCore,用于对子系统提供统一调用接口,PubProxy将需publish的每个topic对应的PubProxyCore存入unordered_map,作为成员变量;当子系统需要publish某topic时,直接调用PubProxy对象pub()成员函数;同时,将PubProxy定义成单例类,其对外调用接口为:
PubProxy::Instance().pub(topic,inner_msg)。
5.根据权利要求4所述的一种港口自动驾驶单车端通信消息解耦处理方法,其特征在于,定义用于subscribe的类SubProxyCore,实现SubProxyCore::create_sub()函数时,obj::fp()为用户须实现的回调函数,入参为子系统消息类型,create_sub()实现中,调用了ros2的subscribe()方法,并转换成调用使用子系统消息类型的obj::fp()方法。
6.根据权利要求5所述的一种港口自动驾驶单车端通信消息解耦处理方法,其特征在于,控制SubProxyCore::create_sub()的生命周期时,为SubProxyCore再封装一层,定义一个SubProxy类,根据其vector成员变量,vector的元素为SubProxyCore::create_sub()的返回值,子系统类通过包括一个SubProxy的成员变量对象,来使用SubProxy::create_sub()来订阅topic,当SubProxy成员对象被销毁时,创建的subscriber对象也会被销毁。
7.根据权利要求1或6所述的一种港口自动驾驶单车端通信消息解耦处理方法,其特征在于,若消息中间件变更成除ros2之外的其他中间件时,再扩展一个对应的PubProxy/PubProxyCore/SubProxy/SubProxyCore/中间件消息与子系统消息转换函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京斯年智驾科技有限公司,未经北京斯年智驾科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111255127.4/1.html,转载请声明来源钻瓜专利网。





