本发明涉及一种车辆系统,并且更具体的涉及一种车辆里程表系统。
背景技术:
自主和半自主车辆包括与确定各种自主操作的计算机(有时称为虚拟驾驶员)通信的许多传感器和子系统。这些传感器和子系统可以具有不同的更新周期,即,用于制定或重新制定子系统致动策略的不同时间。例如,制动子系统可以重新制定针对在每次虚拟驾驶员更新车辆的预期路线之间是否多次施加制动以及多次施加制动的困难程度的策略。
不同的更新周期可能降低虚拟驾驶员可以控制车辆的运动的速度、平顺性和精度。例如,如果在小于虚拟驾驶员的更新周期中到达停止标志,则虚拟驾驶员可能由于缺乏标志而停止车辆或以颠簸的方式停止车辆。对于另一示例,紧跟车辆的制动系统和发动机控制系统可以以交替方式对自适应巡航控制的命令作出反应,试图保持紧跟车辆和在前车辆之间的恒定距离,使紧跟车辆从在前车辆交替地前行和后退。
技术实现要素:
根据本发明的一方面,提供一种控制车辆的方法,包含:
从第一控制器接收标识符和运动状态的当前值;
确定要被子系统实现的运动状态的目标值的子集;并且
传送标识符和用于使子系统实现运动状态的目标值的子集的命令。
根据本发明的一个实施例,进一步包含:
接收与标识符相关联的偏移值;并且
存储标识符和偏移值。
根据本发明的一个实施例,其中子系统是制动系统。
根据本发明的一个实施例,其中子系统是转向系统。
根据本发明另一方面,提供一种控制车辆的方法,车辆包括第一控制器、第二控制器和第三控制器,第三控制器与子系统通信,方法包含:
通过第一控制器从第二控制器接收运动状态的当前值和标识符;
通过第一控制器确定要被子系统实现的运动状态的目标值的子集;
通过第一控制器向第三控制器传送标识符和用于使子系统实现运动状态的目标值的子集的命令;
通过第三控制器从第一控制器接收标识符和用于使子系统实现运动状态的目标值的子集的命令;并且
通过第三控制器命令子系统接近运动状态的目标值的子集。
根据本发明的一个实施例,进一步包含:
通过第二控制器确定运动状态的当前值是否已超过边界条件;并且
通过第二控制器创建替换标识符和与替换标识符相关联的偏移值。
根据本发明的一个实施例,进一步包含:
通过第二控制器向第一控制器传送替换标识符和与替换标识符相关联的偏移值;
通过第一控制器存储替换标识符和偏移值;并且
通过第一控制器向所述第三控制器传送替换标识符和用于使子系统实现运动状态的目标值的子集的命令。
根据本发明的一个实施例,进一步包含通过第一控制器存储替换标识符和与替换标识符相关联的偏移值。
根据本发明的一个实施例,进一步包含通过第二控制器存储替换标识符和与替换标识符相关联偏移值。
根据本发明的一个实施例,进一步包含通过第三控制器从原始标识符和从第一控制器接收到的运动状态的目标值的子集中获得运动状态的更新目标值的子集。
根据本发明的一个实施例,其中子系统是制动系统。
根据本发明的一个实施例,其中子系统是转向系统。
根据本发明的又一方面,提供一种车辆控制系统,包含:
第一控制器,第一控制器包含处理器和存储器;
第二控制器,第二控制器包含处理器和存储器,第二控制器与第一控制器通信;
第三控制器,第三控制器包含处理器和存储器,第三控制器与第一控制器通信;以及
子系统,子系统与第三控制器通信;其中
第一控制器被编程为从第二控制器接收标识符和运动状态的当前值、确定要被子系统实现的运动状态的目标值的子集、并且将标识符和用于使子系统实现运动状态的目标值的子集的命令传送给第三控制器;
第二控制器被编程为将标识符和运动状态的当前值发送给第一控制器;并且
第三控制器被编程为从第一控制器接收标识符和用于使子系统实现运动状态的目标值的子集的命令,并且命令子系统接近运动状态的目标值的子集。
根据本发明的一个实施例,其中第二控制器被进一步编程为将与运动状态相关联的原始标识符传送给第一控制器、确定运动状态的当前值是否已超过边界条件、并且创建替换标识符和与替换标识符相关联的偏移值。
根据本发明的一个实施例,其中:
第二控制器被进一步被编程为将替换标识符和与替换标识符相关联的偏移值传送给第一控制器;并且
第一控制器被进一步编程为存储替换标识符和偏移值,并且向第三控制器传送替换标识符和实现运动状态的目标值的所述子集的命令。
根据本发明的一个实施例,其中第一控制器被进一步编程为存储替换标识符和与替换标识符相关联的偏移值。
根据本发明的一个实施例,其中第二控制器被进一步编程为存储替换标识符和与替换标识符相关联的偏移值。
根据本发明的一个实施例,其中第三控制器被进一步编程为从原始标识符和从第一控制器接收到的运动状态的目标值的子集获得运动状态的更新目标值的子集。
根据本发明的一个实施例,其中子系统是制动系统。
根据本发明的一个实施例,其中子系统是转向系统。
附图说明
图1是车辆控制系统的框图;
图2是用于更新由车辆子系统使用的运动状态的标识符的示例性过程的过程流程图;
图3是用于命令车辆子系统实现运动状态的目标值的子集的示例性过程的过程流程图。
具体实施方式
参照图1,在车辆90中实施的车辆控制系统100包括第一控制器110,该第一控制器110可以从第二控制器120接收运动状态的当前值。第一控制器110可以进一步确定将要被子系统130实现的运动状态的目标值的子集,并且将命令传送给与子系统130通信的第三控制器124,以供子系统130实现运动状态的目标值的子集。
系统100允许第一控制器110以用于该子系统130的适当的精度水平将命令发出到子系统130,通过第一控制器110导致子系统130的更平顺、更敏感的控制。
图1是包括车辆控制系统100的车辆90的框图。车辆控制系统100通常在车辆90中实施,并且车辆控制系统100的各种元件是车辆90的元件或部件。
车辆控制系统100包括第一控制器110、第二控制器120、第三控制器124和子系统130。形容词“第一”、“第二”和“第三”在整个文档中用作标识符,并且不旨在表示重要性或顺序。第一控制器110与第二控制器120和第三控制器124通信,并且第三控制器124与子系统130通信。第一控制器110可以连接到附加控制器和子系统。
第一、第二和第三控制器110、120、124被包括在车辆控制系统100中,用于实施各种操作,包括如本文所述的操作。控制器110、120、124是通常包括处理器和存储器的计算装置,该存储器包括一种或多种形式的计算机可读介质,并且存储由处理器可执行的指令,该指令用于执行各种操作,包括如本文所公开的操作。控制器110、120、124的存储器还通常存储通过各种通信机制接收的远程数据;例如,控制器110、120、124通常被配置用于控制器局域网(can)总线等等上的通信,和/或用于使用其它有线或无线协议,例如蓝牙等的通信。控制器110、120、124还可以具有到车载诊断连接器(obd-ii)的连接。通过使用以太网、wifi、can总线、obd-ii和/或其他有线或无线机制的车辆网络,控制器110、120、124可以将消息传送给彼此或传送给车辆90中的各种装置和/或接收来自各种装置的消息,各种装置例如是,控制器、致动器、传感器等,例如本文所讨论的控制器和传感器。例如,第一控制器110可以从第一传感器140接收数据。尽管被描绘为三个单独的控制器,但是控制器110、120、124中的两个或更多个可以在功能上部分或完全重叠,例如,第二控制器120和第三控制器124可以是相同的控制器。
通过比如上面所讨论的通信机制,控制器110、120、124可以接收和/或生成、计算等各种数据。例如,速度传感器142可以用来提供速度数据给第一控制器110。速度传感器142通常是已知的,而且,如已知的,速度数据通常通过比如上面所讨论的通信机制(例如通过can通信)可用。
一个或多个雷达传感器或传感器144可以用来提供雷达数据给第一控制器110。例如,一个或多个雷达传感器144可以被安装在车辆90的前部,并且用来测量车辆90和第二车辆之间的距离或随时间的距离变化,例如,如已知的使用在所谓的自适应巡航控制系统中。此外,除了雷达传感器之外或作为雷达传感器的替代方案,可以使用前视摄像机、激光雷达、车-对-车通信、车-对-云通信、车-对-基础设施通信等。
控制器110、120、124可以各自具有更新周期。更新周期是控制器(比如第一控制器110、第二控制器120或第三控制器124)评估当前可用数据并且制定控制器110、120、124将指示部件(例如,致动器150或子系统130)执行的动作策略的一段时间。第二和第三控制器120、124的更新周期可以短于第一控制器110的更新周期,这意味着第二和第三控制器120、124可以具有在第一控制器110的一个周期内执行动作的许多可能次数。
与第三控制器124相关联的子系统130可以是影响车辆90的操作的任何一组部件。例如,子系统130可以是制动子系统,在这种情况下,第三控制器124是制动控制器。对于另一示例,子系统130可以是由转向控制器124控制的转向子系统。对于第三示例,子系统130可以是由发动机控制模块(ecm)控制器124控制的节气门或其他推进控制器(例如,用于电动马达)。
控制器110、120、124可以在它们的存储器中存储,并且可以如本文所述修改子系统130运动状态的值。子系统130的运动状态是子系统130影响的一个或多个运动描述变量。包括在运动状态中的运动描述变量包括例如纵向位置、横向位置、纵向速度、横摆率、横摆角、滑移角等。运动描述变量可以例如通过第三传感器122测量或者从子系统130的状态(例如,车辆90的车轮的转数)推断。如果运动状态包括一个运动相关变量,则运动状态的值可以是标量值,或者如果运动状态包括多个运动相关变量,则运动状态的值可以是矢量值。
控制器110、120、124可以作用于或接收运动状态的子集,即,可以作用于或接收运动状态的全部或少于全部的运动描述变量。运动状态的“子集”不限于严格的子集,并且可以包括运动状态的全部运动描述变量。供选择地,例如,控制器110、120、124可以仅作用于或接收描述横向运动的运动描述变量,或仅作用于描述纵向运动的运动描述变量。
运动状态相对于参照系进行描述。参照系可以是绝对的、相对的、或绝对的和相对的的混合。例如,如果运动状态包括纵向位置、横向位置、纵向速度和横摆角,则绝对的参照系可以包括地球上的给定位置(相对于该给定位置,测量纵向和横向位置)、车辆90的停止状态(相对于该停止状态,测量纵向速度)和正北(相对于正北,测量横摆角)。供选择地,参照系可以是相对的,即,当运动状态被重置时的运动状态的先前测量值。所有运动描述变量可以被集合在一个参照系中,或者运动相关变量可以被集合成部分参照系,例如,用于横向运动的参照系和用于纵向运动的参照系。
标识符识别参照系。标识符可以存储在任何合适的数据结构中;例如,标识符可以被存储为单独的变量或计数器,或者标识符可以与运动相关变量中的一个一起存储,例如,标识符占据最高有效位,并且运动相关变量占据最低有效位。
如果运动状态切换参照系,则替换标识符。例如,如果运动状态是一维的并且参照系是相对的,则运动状态可以每1000个值重置,即,运动状态可以以0开始并且具有999的最大值。在这种情况下,运动状态的值可以从在原始标识符“a”下的999增加到在替换标识符“b”下的0。在标识符切换的情况下,术语“原始标识符”用于指代先前的标识符,并且“替换标识符”是后来的标识符。“原始”标识符被称为仅用来将原始标识符与任何替换标识符进行区分。任何标识符可以是相对于替换标识符的原始标识符。如果运动状态是多维的,即包括两个或更多个运动描述值,并且参照系是相对的,则可以根据预定条件(例如,如果任何运动相关变量超过最大值或最小值)来重置运动状态的值。也可以重置绝对的参照系;例如,如果车辆90超过距包括在参照系中的地球上的位置的给定距离,则运动状态可以切换到不同的参照系,包括来自一组可能的参照系中的地球上的不同位置。除了最大值或最小值之外,运动状态的重置可以由车辆90事件、外部通信等触发。
偏移值是将原始标识符与直接替换标识符相关的值。每个偏移值与一个替换标识符相关联。偏移值提供基于在原始标识符下的运动状态的值来确定在替换标识符下的运动状态的值的方式。例如,给定在原始标识符“a”下的一维运动状态值1325,具有偏移值1000的在替换标识符“b”下的运动状态值为325。如果运动状态是多维的,则偏移值是多维的。
控制器110、120、124的存储器可以存储标识符和偏移值。具体地,当第二控制器120发出替换标识符时,控制器110、120、124可以各自存储替换标识符和与替换标识符相关联的偏移值的表160、162、164。
图2是示出了用于更新计数器的标识符的示例性过程200的过程流程图。如图2所示,过程200的各种过程框可以在第一控制器110和一个或多个第二控制器120中的一个中执行。该过程在框205开始,在框205,第二控制器120将运动状态的值、与子系统运动状态相关联的原始标识符的值和与该标识符相关联的偏移值传送给第一控制器110。
接下来,在框210,第一控制器110从第二控制器120接收子系统运动状态的当前值、标识符和与标识符相关联的偏移值。然后,第一控制器110在框215存储标识符和偏移值。
在决策框220,第二控制器120确定运动状态的当前值是否已超过边界条件,这可以在第一控制器110存储标识符和偏移值之前、期间或之后发生。边界条件可以是被包括在运动状态中的运动相关变量的一个或多个最大值或最小值,或者可以与第二控制器120外部的事件相关联。如果运动状态的值没有超过边界条件,则第二控制器120重复该决定。当运动状态的值确实超过边界条件时,则在框225,第二控制器120创建替换标识符和与替换标识符相关联的偏移值。
接下来,在框230,第二控制器120将替换标识符和与替换标识符相关联的偏移值传送给第一控制器110。最后,对于第二控制器120,在框235,第二控制器120例如在表或其他合适的数据结构中存储一组替换标识符和与替换标识符相关联的偏移值。
同时,在框240,第一控制器110从第二控制器120接收替换标识符和与替换标识符相关联的偏移值。最后,对于第一控制器110,在框245,第一控制器110例如在表等中存储一组替换标识符和与替换标识符相关联的偏移值。
图3是用于命令车辆子系统130实现运动状态的目标值的子集的示例性过程300的过程流程图。过程300在框305开始,在框305,第一控制器110确定将运动状态的目标值的子集将被子系统130实现。例如,如果第一控制器110希望车辆90在即将到来的停车标志处停止,则运动状态的目标值可以包括对应于停车标志的位置的纵向位置、一个车道到当前车道的右侧的横向位置、和零的纵向速度。在该示例中,运动状态的目标值的子集可以仅包括纵向位置和纵向速度,而不包括横向位置。
接下来,在框310,第一控制器110传送标识符和实现运动状态的目标值的子集的命令。标识符可以是从第二控制器120接收的并且可能已从表160读取的最近的替换标识符。第一控制器110可以基于所记录的时间(在所记录的时间,第一控制器110最后一次接收运动状态的值)、到第三控制器124以及从第三控制器124到子系统130的已知的传输或处理延迟、和/或任何其它相关信息来确定运动状态的目标值的子集。
接下来,在框315,第三控制器124接收标识符和实现运动状态的目标值的子集的命令。
接下来,在框320,第三控制器124从标识符和从第一控制器110接收到的运动状态的目标值的子集中获得运动状态的更新的目标值的子集。如果由第一控制器110发送的标识符是第三控制器124当前使用的标识符,如通过在表164中查找原始标识符所确定的,则第三控制器124获得运动状态的更新的目标值的子集,该运动状态的更新的目标值的子集与从第一控制器110接收到的运动状态的目标值的子集相同。如果由第一控制器110发送的原始标识符已被替换,如通过在表164中查找原始标识符所确定的,则第三控制器124通过使用与所有中间替换标识符相关联的偏移值来获得更新的目标值的子集,如从表164所读取的。
最后,在框325,第三控制器124命令子系统130接近运动状态的目标值的子集。如果子系统130是制动系统并且运动状态的目标值的子集包括例如给定纵向位置和零的纵向速度,则第三控制器124命令制动系统130施加制动以使车辆90在给定的纵向位置减速到停止。
为了实施上述过程,第一控制器110可以被编程为执行以下操作:从第二控制器120接收运动状态的当前值、存储替换标识符和偏移值、存储替换标识符和与替换标识符相关联的偏移值的表160、确定运动状态的目标值的子集将被子系统130实现、并且向第三控制器124传送替换标识符和用于系统130实现运动状态的目标值的子集的命令。
同样地,为了实施上述过程,第二控制器120可以被编程为执行以下操作:将运动状态的当前值发送给第一控制器110、将与运动状态相关联的原始标识符发送给第一控制器110、确定运动状态的当前值是否已超过边界条件、创建替换标识符和与替换标识符相关联的偏移值、将替换标识符和与替换标识符相关联的偏移值传送给第一控制器110、并且存储替换标识符和与替换标识符相关联的偏移值的表162。
最后,为了实施上述过程,第三控制器124可以被编程为执行以下操作:从第一控制器110接收用于子系统130实现运动状态的目标值的子集的命令、命令子系统130接近运动状态的目标值的子集、从标识符和从第一控制器110接收到的运动状态的目标值的子集中获得运动状态的更新的目标值的子集、并且存储替换标识符和与替换标识符相关联的偏移值的表。
本发明已经以说明性的方式进行了描述,并且应当理解的是,已经使用的术语旨在是描述性的而不是限制性的词语的性质。根据上述教导,本发明的许多修改和变化是可能的,并且本发明可以以不同于具体描述的方式来实践。