一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于ROS的智能驾驶数据分析与同步方法与流程

2022-06-01 10:38:30 来源:中国专利 TAG:

一种基于ros的智能驾驶数据分析与同步方法
技术领域
1.本发明属于智能驾驶技术领域,具体涉及一种基于ros的智能驾驶数据分析与同步方法。


背景技术:

2.基于ros环境开发的智能驾驶系统的数据提取分析是集成测试的最重要一环,目前行业普遍做法是将感知、规控等模块的算法产物输出到can协议栈,然后在硬件上提供can接口进行采集后用can分析工具分析,没有直接将rosbag(ros数据包)数据提取出来,通过可视化工具进行分析的方法。
3.对于智能驾驶系统的算法输出数据和车辆状态数据的同步对比,行业里都是基于一个采集设备、同时间源、同频率采集后分析的。其他领域时间同步方法也都是在采集前就做好了硬件同步方法,至少保持两个系统输出的数据是同时间源的;没有一种后处理方法,对已有的两种不同时间源不同频率的数据进行同步。


技术实现要素:

4.本发明的目的就是为了解决上述背景技术存在的不足,提供一种基于ros的智能驾驶数据分析与同步方法。
5.本发明采用的技术方案是:一种基于ros的智能驾驶数据分析与同步方法,从车载can网络中获取车载can数据;
6.从智能驾驶控制器中获取rosbag数据并转化为csv文件;
7.对每一个csv文件进行筛选获取自动驾驶模式激活时对应的所有数据存储为xls文件;
8.从车载can网络中获取车载can数据;
9.对车载can数据和形成xls文件的rosbag数据进行时间同步处理;
10.对时间同步后的数据进行筛选获取测试需要的数据形成合并xls文件;
11.从合并xls文件中选取需求数据制成对比图并显示,实现智能驾驶数据的同步与分析。
12.进一步地,对每一个csv文件进行筛选获取自动驾驶模式激活时对应的所有数据存储为xls文件的过程为:每个csv文件包含一个指标,每个指标包含自动驾驶模式的状态值;每次对一个或者多个csv文件进行筛选处理,找状态值为有效值时对应的初始时间点和结束时间点,将初始时间点与结束时间点之间的数据存储为xls文件。
13.进一步地,所述指标为定位信号、决策与规划输出、制动控制信号、转向控制信号中的任意一种。
14.进一步地,进行时间同步处理的过程为:
15.分别从rosbag数据和车载can数据中选取同一个特征信号的初始时刻对应的时间点,将该时间点及其后的时间点对应的数据整理形成两列时间轴数据;
16.对比两列时间轴数据的长度,在长度较长的时间轴数据中寻找与长度较短的时间轴数据中每一个时间点最接近的时间点并标记;
17.将长度较长的时间轴数据中的时间点替换为标记的时间点,保留标记时间点对应的数据,达到rosbag数据和车载can数据的时间同步。
18.进一步地,所述特征信号为制动踏板开度信号、方向盘转角信号、油门开度信号中的任意一种。
19.进一步地,在标记时间点之前,需将两列时间轴数据的时间单位转换为同一单位。
20.进一步地,在标记时间点之前,需将两列时间轴数据的时间量级转换为同一量级。
21.进一步地,将两列时间轴数据的时间量级转换为同一量级的过程为:将长度较短的时间轴数据中的第一个时间点覆盖到长度较长的时间轴数据中的第一个时间点,然后将长度较长的时间轴数据中的其余每一个时间点都加上两列时间轴的差值,使两列时间轴数据同量级。
22.进一步地,对时间同步后的数据进行筛选的过程为:在xls文件中对不同的指标分别选取测试需要的一个或多个数据,将选取的多个指标对应数据合并到同一个表格中形成合并xls文件。
23.更进一步地,通过linux上位机上的rosbag包从智能驾驶控制器中获取rosbag数据,所述rosbag包包括采集插件和转换插件。
24.本发明的有益效果是:
25.1)本发明rosbag(ros数据包)包的提取插件,集成了访问与启动mdc(智能驾驶控制器)、录制、批量转化的功能,快速实现了linux采集电脑与mdc的联通、高效完成了采集到原始数据生成的一系列动作,两个插件,充当了一个完整的采集工具的角色,操作简单,高效准确,为后续数据分析提供了强有力的保证。
26.2)本发明的数据分析与同步过程完成了对rosbag里面所有信息的整合、有效长度筛选、上下游过程变量对比出图,且支持各种出图对比方式,能帮助开发人员定位不同算法模块问题、且支持上下游数据分析,能迅速优化算法,支持迭代;可以选择不同的出图模式,适配不同的分析需求;可扩展性强,代码提供了丰富的开放接口,可以根据需求快速自定义开发。
27.3)本发明数据同步方式打破了固有的基于硬件协议的同步方式,通过共同信号不同时间点建立时间关系,利用后处理方式同步时间轴,即可完成数据同步,不限制采集工具类型及协议,适用面广、成本低。
附图说明
28.图1为本发明测试采集环境设备的原理图。
29.图2为本发明csv转xls并筛选的流程图。
30.图3为本发明对车载can数据与rosbag数据进行后时间频率同步的流程图。
31.图4为本发明rosbag数据合并的流程图。
32.图5为本发明对合并后的xls文件进行出图的流程图。
33.图6为本发明的出图实例图。
具体实施方式
34.下面结合附图对本发明的具体实施方式作进一步说明。在此需要说明的是,对于这些实施方式的说明用于帮助理解本发明,但并不构成对本发明的限定。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以互相结合。
35.本发明提供一种基于ros的智能驾驶数据分析与同步方法,从车载can网络中获取车载can数据;
36.从智能驾驶控制器中获取rosbag数据并转化为csv文件;
37.对每一个csv文件进行筛选获取自动驾驶模式激活时对应的所有数据存储为xls文件;
38.对车载can数据和形成xls文件的rosbag数据进行时间同步处理;对时间同步后的数据进行筛选获取测试需要的数据形成合并rosbag数据;
39.从合并rosbag数据中选取需求数据制成对比图并显示,实现智能驾驶数据的同步与分析。
40.上述方案中,对每一个csv文件进行筛选获取自动驾驶模式激活时对应的所有数据存储为xls文件的过程为:每个csv文件包含一个指标,每个指标包含自动驾驶模式的状态值;每次对一个或者多个csv文件进行筛选处理,找状态值为有效值时对应的初始时间点和结束时间点,将初始时间点与结束时间点之间的数据存储为xls文件。所述指标为定位信号、决策与规划输出、制动控制信号、转向控制信号中的任意一种。
41.上述方案中,进行时间同步处理的过程为:
42.分别从rosbag数据和车载can数据中选取同一个特征信号的初始时刻对应的时间点,将该时间点及其后的时间点对应的数据整理形成两列时间轴数据;所述特征信号为制动踏板开度信号、方向盘转角信号、油门开度信号中的任意一种。
43.将两列时间轴数据的时间单位转换为同一单位,将两列时间轴数据的时间量级转换为同一量级;
44.对比两列时间轴数据的长度,在长度较长的时间轴数据中寻找与长度较短的时间轴数据中每一个时间点最接近的时间点并标记;
45.将长度较长的时间轴数据中的时间点替换为标记的时间点,保留标记时间点对应的数据,达到rosbag数据和车载can数据的时间同步。
46.上述方案中,将两列时间轴数据的时间量级转换为同一量级的过程为:将长度较短的时间轴数据中的第一个时间点覆盖到长度较长的时间轴数据中的第一个时间点,并计算这两个第一时间点之间的差值(即长度较长的时间轴数据中的第一个时间点与长度较短的时间轴数据中的第一个时间点的差值,可以为正值,也可以为负值),然后将长度较长的时间轴数据中的其余每一个时间点都减去所述差值,得到新的长度较长的时间轴数据,使两列时间轴数据同量级。
47.上述方案中,对时间同步后的数据进行筛选的过程为:在xls文件中对不同的指标分别选取测试需要的一个或多个数据,将选取的多个指标对应数据合并到同一个表格中形成合并rosbag数据。
48.实施例1
49.数据分析开始前准备好采集环境设备,如图1、图2所示,具体采集步骤为:
50.1、智能驾驶控制器通过以太网连接linux(操作系统)上位机;
51.2、运行linux上位机内置插件1,连接mdc(智能驾驶控制器)、启动mdc;
52.3、启动mdc后延迟10s,内置插件1开始记录rosbag包;待采集结束后,停止运行插件;
53.4、在启动ros采集后,利用canoe工具,在window上位机通过车载obd开始车载can网络数据采集,采集结束后,停止canoe采集;
54.4、linux上位机内置插件2,将录制的rosbag包批量转csv文件;
55.5、转换完成后,插件2将远端拷贝到linux(操作系统)本地端。
56.6、本地端转好的csv文件拷贝到window上位机;
57.7、分析上位机获取了ros数据和车载数据,准备开始分析,采集完成。
58.数据分析过程包含csv转xls并筛选、同步、数据(rosbag与车载can数据)合并、出图四个大项,四个功能的配置如表1所示:
59.表1四个功能的配置表
[0060][0061]
以上四个功能是逐步递进的关系,从拿到原始数据后开始进行转xls并筛选数据、同步rosbag数据和车载数据、然后将这些数据合并到一张sheet、最后对着一张sheet里面的数据自动出图。
[0062]
处理数据与分析出图过程:
[0063]
1、csv转xls并筛选:如图2所示,从mdc远端拷贝到本地的文件是rosbag包转化的csv文件,每个csv文件一个topic(指标),具体topics包含location_topic(定位信号)、dp_topic(决策与规划输出)、ebs_topic(制动控制信号)、steer_topic(转向控制信号)等;每个topic下有多个属于这一类别的多个信号值,且一定包含自动驾驶模式的状态(aducstate,0未激活、1准备中、2已准备、3激活)。可以对单个或者多个对csv处理,先打开csv,筛选处理,找状态位由ready-active的报文,以及active(有效)到inactive(无效)的报文,找到两个active时间点,其他报文删掉,留下两个active之间的报文;然后将剩下数据报文为xls文件,全部都是有效数据。
[0064]
2、对车载can网络数据与rosbag数据进行后时间频率同步:如图3所示,同步流程如下,
[0065]
a、采集系统开始采集录制。
[0066]
b、系统在开启自动驾驶模式,控制模块会受到系统指令“发送100%制动踏板请求”,同时会有语音提醒“发送制动请求”,然后控制模块向总线发送指令控制制动系统。
[0067]
c、此时采集系统会把rosbag发出的控制指令和总线上收到的制动踏板位置反馈请求同时录制下来,但前者是mdc系统时间,后者是工控机系统时间(相对时间)。
[0068]
d、windows上位机将两者转为excel格式文件,然后利用python(一种编程语言)处理xls文件,寻找vehda_rbrkpedl_mp(ros定义的制动踏板信号)与brake_padel_position(车载网络定义的制动踏板信号)信号初始时刻制动踏板为100的具体时间点,从这个点开始同步,具体原理流程如表2所示:
[0069]
表2时间轴同步数据记录表
[0070][0071]
a、整理两类数据的时间轴;
[0072]
b、由于rosbag包数据较长,将其进行小数点处理,变成秒 毫秒的形式,canoe本身就是以秒为单位,两列数据的单位保持一致。
[0073]
c、第一个点是制动踏板为100的具体时间点,将其直接覆盖到canoe时间轴,而后canoe每个时间点都减去踏板为100的时刻两列时间轴的差值,使两列数据同量级,这一步时间轴覆盖就保证了两列数据处在同一个时间轴上。
[0074]
d、数据长度处理,会先计算两列数据的长度,将数据长度较短的每一个值对应的时间点在另一组数据上找时间最接近的点,标记这个点。
[0075]
e、时间轴替换,直接将上一步标注的最接近的时间点替换为rosbag的时间,时间对应的相应数值留下;删除其他的时间点和值,这样就保证了完全一样的时间点,为后续画图做好铺垫。
[0076]
制动踏板作为同步起始时刻的信号并不是唯一的,也可以选用方向盘转角、油门开度这些具有代表特征的信号,只需要这个信号能同时被记录在rosbag和车载网络上。
[0077]
rosbag包含的信号较多,所以为了减少计算量,以rosbag包时间轴为基准,对车载can报文时间做更改
[0078]
3、rosbag合并:对于每个topic,包含的信号是这个指标的全集,很多数据对开发人员监测有用而不是测试需要、有些只是作为预留,所以需要选择出测试需要的信号;比如对于location—topic,对于某次分析只需要x/y坐标的定位信息,则只筛选保留这两列信
息,如表3所示
[0079]
表3x/y坐标的定位信息记录表
[0080]
field.header.seqfield.header.stampfield.header.frame_idfield.xfield.yfield.yaw7371.56e 18df—truck507877.24743369768.96-165.68237381.56e 18df—truck507878.24743369769.96-165.68237391.56e 18df—truck507879.24743369770.96-165.68237401.56e 18df—truck507880.24743369771.96-165.68237411.56e 18df—truck507881.24743369772.96-165.68237421.56e 18df—truck507882.24743369773.96-165.68237431.56e 18df—truck507883.24743369774.96-165.68237441.56e 18df—truck507884.24743369775.96-165.68237451.56e 18df—truck507885.24743369776.96-165.68237461.56e 18df—truck507886.24743369777.96-165.68237471.56e 18df—truck507887.24743369778.96-165.68237481.56e 18df—truck507888.24743369779.96-165.6823
[0081]
其次,对于不同topic之前的对比分析,首先需要将不同topic的信息合并到一个表格里面,为后续作图提供基础。上述两个功能的实现逻辑如图4所示,通过以上过程,可以把单次采集后的所有测试需要分析的数据合并到一个xls文件里面,这给下一步分析对比出图做好了铺垫。
[0082]
4、最后便是对合并后的rosbag包进行出图与分析,提供几种出图方式;用户可以观测从感知-决策-控制总线信号3个维度单独分析每个部分(对应相应的算法)的输出,这3个维度分别对应参数选择detection_outputs(感知输出)、planning_outputs(决策输出)、control_outputs(控制输出),每个部分可以把相应的信号单独出图、合并出图;也可以观测上下游之间的关系,快速定位寻找失效点,从而定位是哪段算法失效导致了数据的不正常,帮助快速定位快速回归测试,不管是对单独算法产物分析还是对上下游分析,其处理的逻辑都是相同的,如图5所示。
[0083]
比如针对某次测试想要监控控制输出的油门踏板和车辆实际反馈的车速的关系,选择参数“control_canfeedback”(控制和车辆实际反馈can报文),图片数量选择方式3,设置好其他相关界面选择部分,得到的实际效果如图6所示
[0084]
图6中上面一排是纵向控制的输出量,即控制算法的输出,下面一排是车辆反馈的实际状态。date5/date6是纵向控制算法输出的预留数据,accpedl是输出的油门开度信息,can_vegospd是车辆的实际车速,两列数据对比可以检测控制和车辆响应,帮助开发人员迅速根据车辆实际响应过程调整相应条件下的油门开度输出。还可以监控定位模块输出的当前定位点和规划模块计算的横向偏移量、火证规划模块计算的横向偏移量和控制的转角输出关系等等上下游数据,帮助迅速定位问题。
[0085]
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
[0086]
为了使本揭示内容的叙述更加详尽与完备,上文针对本发明的实施方式与具体实施例提出了说明性的描述;但这并非实施或运用本发明具体实施例的唯一形式。实施方式
中涵盖了多个具体实施例的特征以及用以建构与操作这些具体实施例的方法步骤与其顺序。然而,亦可利用其它具体实施例来达成相同或均等的功能与步骤顺序。
[0087]
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
[0088]
为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本技术公开的原理和新颖性特征的最广范围相一致。
[0089]
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
[0090]
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
[0091]
本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(asic),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
[0092]
上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整、相互结合和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献