CN112866304B - 一种can报文与ros消息的互转设备及其互转方法 - Google Patents
一种can报文与ros消息的互转设备及其互转方法 Download PDFInfo
- Publication number
- CN112866304B CN112866304B CN202110450963.1A CN202110450963A CN112866304B CN 112866304 B CN112866304 B CN 112866304B CN 202110450963 A CN202110450963 A CN 202110450963A CN 112866304 B CN112866304 B CN 112866304B
- Authority
- CN
- China
- Prior art keywords
- module
- ros
- message
- mutual conversion
- messages
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
Abstract
本发明涉及汽车控制技术领域,具体涉及一种CAN报文与ROS消息相互转换的设备及其互转方法,包括CAN总线模块、CAN模块、核心模块、以太网模块以及上位机模块;所述CAN总线模块通过所述CAN模块电性连接于所述核心模块,所述核心模块通过所述以太网模块电性连接于所述上位机模块;其中,所述核心模块包括CAN与ROS互转程序模块和管理程序模块,所述CAN与ROS互转程序模块负责CAN报文与ROS消息的相互转换,所述管理程序模块负责CAN与ROS互转程序的更新,且与上位机模块的相互交互。本发明能将ROS的强大生态运用与CAN通讯上,不仅对CAN通讯的调试监控能力,更重要的是本发明的成本低,可以极大降低汽车相关企业的成本。
Description
技术领域
本发明涉及汽车控制技术领域,具体涉及一种CAN报文与ROS消息相互转换的设备及其互转方法。
背景技术
CAN(Controller Area Network),是一种用于实时应用的串形通讯协议总线,它可以用双绞线来传输信号,是世界上应用最广泛的现场总线之一。CAN作为汽车控制领域的事实标准,尽管存在一些问题(例如速度慢,报文短),但仍然是所有车辆的核心网络。而ROS(Robot Operating System)作为机器人领域的事实标准,相对CAN优点很多(速度快,灵活,工具丰富),但也有其限制,目前在量产车辆上没有得到运用。
在车辆开发过程中我们需要从CAN网络上获取数据,记录数据和可视化数据,能够做到这部分工作我们所需要的设备往往价格高昂(例如Vector相关工具),而且与其他工具链整合麻烦(例如需要设置一个虚拟节点)。实际上如果仅将CAN数据转换记录,其硬件价格很低,但软件价格很高(如CANoe)。而ROS作为开源软件其工具链成熟,容易整合,并且软件无需额外费用。如果能使用开源的ROS可以极大的降低企业成本,且工具链成熟,还不断有新的开源工具出现。
发明内容
本申请中为了解决上述技术问题,本发明提供了种CAN报文与ROS消息相互转换的设备及其互转方法。
本发明提供了如下的技术方案:
一种CAN报文与ROS消息的互转设备,包括CAN总线模块、CAN模块、核心模块、以太网模块以及上位机模块;所述CAN总线模块通过所述CAN模块电性连接于所述核心模块,所述核心模块通过所述以太网模块电性连接于所述上位机模块;其中,所述核心模块包括CAN与ROS互转程序模块和管理程序模块,所述CAN与ROS互转程序模块负责CAN报文与ROS消息的相互转换,所述管理程序模块负责CAN与ROS互转程序的更新,且与上位机模块的相互交互。
一种CAN报文与ROS消息的互转设备的互转设备的互转方法,包括如下步骤:
S1.用户提供dbc文件;
S2.上位机模块识别dbc文件,生成相应的msg文件,且生成相应的互转程序;
S3.通过管理程序模块将CAN与ROS互转程序更新到互转程序模块中,将CAN报文和ROS消息相互转换;
S4.调用ROS工具链编译msg文件;
优选的,使用PlotJunggler对CAN报文中的信号绘制,使用Rosbag记录CAN上面的通讯,使用c++或者python对CAN报文转换所得的ROS消息进一步处理。
优选的,CAN报文和ROS消息相互转换的流程为:
a1.收到CAN报文;
a2.根据对应的报文ID建立可对应的ROS消息;
a3.按照dbc文件中各信号定义填充ROS消息中的各成员;
a4.发送ROS消息。
优选的,CAN报文和ROS消息相互转换的流程为:
b1.收到ROS消息;
b2.进入对应ROS消息的回调函数;
b3.按照dbc文件中各信号定义填充CAN报文中的各成员;
b4.以对应的报文ID发送CAN报文。
本发明涉及一种CAN报文与ROS消息相互转换的设备及其互转方法,其有益效果在于:本发明能将ROS的强大生态运用与CAN通讯上,不仅对CAN通讯的调试监控能力,更重要的是本发明的成本低,可以极大降低汽车相关企业的成本。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是CAN报文与ROS消息的互转设备的结构示意图;
图2是CAN报文和ROS消息相互转换的流程图;
图3是本发明装置中CAN报文与ROS消息互转方法准备阶段的序列图;
图4是本发明装置中CAN报文与ROS消息互转方法的序列图;
具体实施方式
以下结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整地描述,以充分理解本发明的目的、方案和效果。需要说明的是,在不冲突的情况下本申请中的实施例及实施例中的特征可以相互组合。需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本发明中所使用的上、下、左、右等描述仅仅是相对于附图中本发明各组成部分的相互位置关系来说的。
如图1所示,一种CAN报文与ROS消息的互转设备,包括CAN总线模块、CAN模块、核心模块、以太网模块以及上位机模块;所述CAN总线模块通过所述CAN模块电性连接于所述核心模块,所述核心模块通过所述以太网模块电性连接于所述上位机模块;其中,所述核心模块包括CAN与ROS互转程序模块和管理程序模块,所述CAN与ROS互转程序模块负责CAN报文与ROS消息的相互转换,所述管理程序模块负责CAN与ROS互转程序的更新,且与上位机模块的相互交互。
一种CAN报文与ROS消息的互转设备的互转设备的互转方法,包括如下步骤:
S1.用户提供dbc文件;
S2.上位机模块识别dbc文件,生成相应的msg文件,且生成相应的互转程序;
S3.通过管理程序模块将CAN与ROS互转程序更新到互转程序模块中,将CAN报文和ROS消息相互转换;
S4.调用ROS工具链编译msg文件;
优选的,使用PlotJunggler对CAN报文中的信号绘制,使用Rosbag记录CAN上面的通讯,使用c++或者python对CAN报文转换所得的ROS消息进一步处理。
互转模块中相关的转换流程如图2所示,在互转模块中没有进行物理值到传输值的转换,相关转换在上位机中完成,这样可以尽量保证数据在转换过程中不产生损失。
CAN报文转化为ROS消息相的流程图:
a1.收到CAN报文;
a2.根据报文ID建立可对应的ROS消息;
a3.按照dbc文件中各信号定义填充ROS消息中的各成员;
a4.发送ROS消息。
ROS消息转换为CAN报文的流程图为:
b1.收到ROS消息;
b2.进入对应ROS消息的回调函数;
b3.按照dbc文件中各信号定义填充CAN报文中的各成员;
b4.以对应ID发送CAN报文。
如图3所示,用户提供dbc文件,PC端软件根据dbc文件自动生成msg文件,同时,生成CAN与ROS互转程序通过管理程序模块更新到互转程序模块中,从而实现CAN报文和ROS消息的互转,通过调用ROS工具链可以编译msg文件。准备工作完成后就可以正常使用,简单来说本发明主要工作就是在CAN网络和ROS网络之间架设一个桥梁,让它们之间可以相互通讯,这样,就可以使用ROS的工具链来进行CAN网络分析调试。
如图4所示,从图中可以看出,通过收到的ROS报文解析对应的CAN报文,也可以发送ROS报文到互转设备让其转发的CAN网络上。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.一种CAN报文与ROS消息的互转方法,所述互转方法基于CAN报文与ROS消息的互转设备,其特征在于,所述CAN报文与ROS消息的互转设备包括CAN总线模块、CAN模块、核心模块、以太网模块以及上位机模块;所述CAN总线模块通过所述CAN模块电性连接于所述核心模块,所述核心模块通过所述以太网模块电性连接于所述上位机模块;其中,所述核心模块包括CAN与ROS互转程序模块和管理程序模块,所述CAN与ROS互转程序模块负责CAN报文与ROS消息的相互转换,所述管理程序模块负责CAN与ROS互转程序的更新,且与上位机模块相互交互;互转方法,包括如下步骤:
S1.用户提供dbc文件;
S2.上位机模块识别dbc文件,生成相应的msg文件, 且生成相应的互转程序;
S3.调用ROS工具链编译msg文件;
S4.通过管理程序模块将CAN与ROS互转程序更新到互转程序模块中,将CAN报文和ROS消息相互转换;
使用PlotJunggler对CAN报文中的信号绘制, 使用Rosbag记录CAN上面的通讯, 使用c++或者python对CAN报文转换所得的ROS消息进一步处理;
CAN报文和ROS消息相互转换的流程包括:
a1.收到CAN报文;
a2.根据对应的报文ID建立对应的ROS消息;
a3.按照dbc文件中各信号定义填充ROS消息中的各成员;
a4.发送ROS消息;
CAN报文和ROS消息相互转换的流程包括:
b1.收到ROS消息;
b2.进入对应ROS消息的回调函数;
b3.按照dbc文件中各信号定义填充CAN报文中的各成员;
b4.以对应的报文ID发送CAN报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110450963.1A CN112866304B (zh) | 2021-04-26 | 2021-04-26 | 一种can报文与ros消息的互转设备及其互转方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110450963.1A CN112866304B (zh) | 2021-04-26 | 2021-04-26 | 一种can报文与ros消息的互转设备及其互转方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112866304A CN112866304A (zh) | 2021-05-28 |
CN112866304B true CN112866304B (zh) | 2021-08-17 |
Family
ID=75992852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110450963.1A Active CN112866304B (zh) | 2021-04-26 | 2021-04-26 | 一种can报文与ros消息的互转设备及其互转方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112866304B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113259233B (zh) * | 2021-07-02 | 2021-09-28 | 奥特酷智能科技(南京)有限公司 | 基于dds的异种通信协议的自动化网关 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546821A (zh) * | 2012-02-16 | 2012-07-04 | 北京优科利尔能源设备有限公司 | 一种远程升级can协议转换器 |
CN109639548A (zh) * | 2019-02-22 | 2019-04-16 | 南京邮电大学 | 一种桥接ROS系统和CANopen网络实时通信方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103108043B (zh) * | 2013-01-31 | 2018-01-23 | 厦门雅迅网络股份有限公司 | 一种应用数据库文件自适应采集ecu报文的方法 |
WO2016004587A1 (zh) * | 2014-07-08 | 2016-01-14 | 北京航空航天大学 | 一种基于多核处理器架构的机器人混合系统应用框架 |
CN108333974A (zh) * | 2018-03-15 | 2018-07-27 | 珠海金萝卜智动科技有限公司 | 一种基于ros的通用机器人控制系统及方法 |
CN110082122B (zh) * | 2019-04-29 | 2020-05-05 | 清华大学 | 一种智能网联车测试平台 |
CN111464422B (zh) * | 2020-03-27 | 2022-01-07 | 京东科技信息技术有限公司 | 交互方法、装置、电子设备及存储介质 |
CN112613279A (zh) * | 2020-12-24 | 2021-04-06 | 北京乐学帮网络技术有限公司 | 一种文件的转换方法、装置、计算机装置及可读存储介质 |
-
2021
- 2021-04-26 CN CN202110450963.1A patent/CN112866304B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546821A (zh) * | 2012-02-16 | 2012-07-04 | 北京优科利尔能源设备有限公司 | 一种远程升级can协议转换器 |
CN109639548A (zh) * | 2019-02-22 | 2019-04-16 | 南京邮电大学 | 一种桥接ROS系统和CANopen网络实时通信方法 |
Non-Patent Citations (2)
Title |
---|
Linux SocketCAN在机车走形部监测装置中的应用;谭海鹏;《单片机与嵌入式系统应用》;20130701(第07期);全文 * |
TX2(RTSO-9002)上的Can和 Ros通信;A210菜鸡一哥的Blog;《百度 https://blog.csdn.net/weixin_40358083/article/details/86229776》;20190110;正文第1-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112866304A (zh) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109347884B (zh) | 一种实时以太网到现场总线的转换方法及装置、存储介质 | |
CN102346477A (zh) | 一种基于autosar故障诊断通信协议的解析方法和设备 | |
CN112866304B (zh) | 一种can报文与ros消息的互转设备及其互转方法 | |
CN111427335A (zh) | 一种车辆远程诊断方法、设备连接器及车辆连接器 | |
CN114839959A (zh) | 一种基于soa服务的车辆远程诊断方法及系统 | |
CN114089713A (zh) | 一种基于uds的通信方法、ecu及上位机 | |
CN201813394U (zh) | 基于FlexRay总线的车载网关设备 | |
CN110502799B (zh) | 一种芯片引脚自动化配置方法与装置 | |
CN112379660B (zh) | 一种汽车自动驾驶域控制器用uart及调试系统和方法 | |
CN113347273B (zh) | 一种车载以太网数据转换方法、装置、设备及介质 | |
CN111443688B (zh) | 基于can总线的汽车诊断服务网络层测试系统及方法 | |
CN110928275B (zh) | 多控制器联合hil台架报文丢帧故障注入测试系统及方法 | |
CN112009400A (zh) | 一种自动变速箱控制单元应用接口扩展匹配方法 | |
CN216391061U (zh) | 一种千兆车载以太网测试装置和系统 | |
CN115134427B (zh) | 通信协议协调方法、装置、计算机设备和存储介质 | |
CN111147510A (zh) | 一种基于soa反射工厂架构的数据采集系统及方法 | |
CN110687854B (zh) | 一种pa总线控制器以及一种pa总线控制系统 | |
CN111031514A (zh) | 基于无线通信的数据转发处理器、数据转发处理方法 | |
CN209787473U (zh) | 无缝切换多种无线传输方式的系统 | |
CN109814871B (zh) | 基于dds总线的节点管理方法及系统 | |
CN103888330B (zh) | 汽车零部件can总线数据传输的监控方法 | |
CN110794731A (zh) | 一种支持以太网的嵌入式软plc控制系统 | |
CN109981394B (zh) | 基于增强型can总线协议分析仪的通信方法和装置 | |
Qingmei et al. | The Design of Communication Nodes in the Tractor Control Network Based on ISO11783 Protocol | |
CN210109582U (zh) | 一种基于ttcan通信模块的总线仿真系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 215,124 G2-190,119,022,002, No. 88, Jinjihu Avenue, Suzhou Industrial Park, Suzhou, Jiangsu Province Patentee after: Zhixing Automotive Technology (Suzhou) Co.,Ltd. Address before: 215123 g2-1901 / 1902 / 2002, No.88, Jinjihu Avenue, Suzhou Industrial Park, Jiangsu Province Patentee before: IMOTION AUTOMOTIVE TECHNOLOGY (SUZHOU) Co.,Ltd. |
|
CP03 | Change of name, title or address |