CN109213144A - 人机接口(hmi)架构 - Google Patents
人机接口(hmi)架构 Download PDFInfo
- Publication number
- CN109213144A CN109213144A CN201810687340.4A CN201810687340A CN109213144A CN 109213144 A CN109213144 A CN 109213144A CN 201810687340 A CN201810687340 A CN 201810687340A CN 109213144 A CN109213144 A CN 109213144A
- Authority
- CN
- China
- Prior art keywords
- automatic driving
- driving vehicle
- adv
- command response
- network server
- 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.)
- Granted
Links
- 230000004044 response Effects 0.000 claims abstract description 128
- 230000015654 memory Effects 0.000 claims abstract description 71
- 230000008447 perception Effects 0.000 claims abstract description 63
- 238000000034 method Methods 0.000 claims abstract description 55
- 238000004891 communication Methods 0.000 claims abstract description 47
- 230000008859 change Effects 0.000 claims description 14
- 238000012546 transfer Methods 0.000 claims description 8
- 238000012795 verification Methods 0.000 claims description 5
- 238000003860 storage Methods 0.000 description 38
- 238000012545 processing Methods 0.000 description 32
- 230000006870 function Effects 0.000 description 16
- 238000012360 testing method Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 238000012544 monitoring process Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000007689 inspection Methods 0.000 description 5
- 230000004888 barrier function Effects 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 241000630329 Scomberesox saurus saurus Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012517 data analytics Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 229910052738 indium Inorganic materials 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005036 potential barrier Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0011—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
- G05D1/0022—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement characterised by the communication link
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0234—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons
- G05D1/0236—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons in combination with a laser
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W30/00—Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0088—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0214—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0221—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0223—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving speed control of the vehicle
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0238—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
- G05D1/024—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors in combination with a laser
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0242—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using non-visible light signals, e.g. IR or UV signals
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0246—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
- G05D1/0248—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means in combination with a laser
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0255—Control of position or course in two dimensions specially adapted to land vehicles using acoustic signals, e.g. ultra-sonic singals
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0257—Control of position or course in two dimensions specially adapted to land vehicles using a radar
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0259—Control of position or course in two dimensions specially adapted to land vehicles using magnetic or electromagnetic means
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0276—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
- G05D1/0278—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using satellite positioning signals, e.g. GPS
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0276—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
- G05D1/028—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using a RF signal
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0276—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
- G05D1/0285—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using signals transmitted via a public communication network, e.g. GSM network
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C5/00—Registering or indicating the working of vehicles
- G07C5/008—Registering or indicating the working of vehicles communicating information to a remotely located station
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C5/00—Registering or indicating the working of vehicles
- G07C5/08—Registering or indicating performance data other than driving, working, idle, or waiting time, with or without registering driving, working, idle or waiting time
- G07C5/0841—Registering performance data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
- H04W4/48—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for in-vehicle communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Automation & Control Theory (AREA)
- Aviation & Aerospace Engineering (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Electromagnetism (AREA)
- Optics & Photonics (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Game Theory and Decision Science (AREA)
- Artificial Intelligence (AREA)
- Business, Economics & Management (AREA)
- General Health & Medical Sciences (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Acoustics & Sound (AREA)
- Traffic Control Systems (AREA)
Abstract
使用人机接口(HMI)进行操作的自动驾驶车辆(ADV)。响应于从计算装置接收到的输入,网络服务器向计算装置提供HMI。ADV命令被输入到HMI中并且传递至网络服务器的接口。响应于接收到ADV命令,网络服务器针对后端服务器中的代理服务器调用远程过程调用,以由ADV的感知与控制模块进行处理。ADV命令的结果由网络服务器接口接收并且与唯一标识符一起存储在唯一标识符中。网络服务器接口打开接入结果存储器的套接字。如果结果存储器改变,则套接字读取结果存储器并且向HMI提供ADV命令结果。多个HMI可同时与网络服务器接口和套接字通信。
Description
技术领域
本发明的实施方式大体涉及操作自动驾驶车辆。更具体地,本发明的实施方式涉及支持用于自动驾驶车辆(ADV)的人机接口的架构。
背景技术
以自主模式运行(例如,无人驾驶)的车辆可以将乘员、尤其是驾驶员从一些驾驶相关的职责中解放出来。当以自主模式运行时,车辆可以使用车载传感器导航到各个位置,从而允许车辆在最少人机交互的情况下或在一些情况下在没有任何乘客的情况下行驶。
自动驾驶车辆(ADV)可具有作为ADV中的整个计算系统的一部分的固定用户接口。在用户接口与人机接口(HMI)之间存在差异。术语“用户接口”常在(个人)计算系统和电子装置的情况(其中,设备或计算机的网络互连)下使用,并且用户接口用于向计算系统发送询问或其它数据以接收作为响应的一个或多个结果。人机接口(HMI)通常局部到一个机器或设备的零件,并且提供人与机器或设备的零件之间的接口。人机接口还可监视机器并且提供对HMI的状态更新而不需要针对每个这种更新的用户输入。现有技术的ADV目前不提供可向ADV的计算设备和/或用户的计算设备提供人机接口(HMI)的网络服务器。现有技术的ADV也不提供同时控制和/或监视ADV及其子系统的多个HMI。进一步地,目前的ADV不提供能够记录人类驾驶员的驾驶会话并且在自动驾驶模式下回放驾驶会话的HMI。
发明内容
根据本发明的一方面,提供了一种操作自动驾驶车辆自动驾驶车辆的计算机实现方法,所述方法包括:在网络服务器的网络接口处从第一客户端应用接收自动驾驶车辆命令,自动驾驶车辆命令使用网络通信协议来接收,其中,第一客户端应用是由网络服务器托管的多个客户端应用中的一个;响应于自动驾驶车辆命令,通过远程过程调用将自动驾驶车辆命令传输至自动驾驶车辆的机器人操作系统的代理服务器,代理服务器配置成通过消息总线将自动驾驶车辆命令路由到自动驾驶车辆感知与控制系统;以及响应于从自动驾驶车辆感知与控制系统接收到自动驾驶车辆命令响应,通过第一套接字连接向第一客户端应用多路广播自动驾驶车辆命令响应,并且通过第二套接字连接向多个客户端应用中的第二客户端应用多路广播自动驾驶车辆命令响应。
根据本发明的另一方面,提供了一种非暂时性机器可读介质,所述非暂时性机器可读介质中存储有可执行的指令,所述指令在由处理器执行时致使处理器执行用于操作自动驾驶车辆(自动驾驶车辆)的操作,所述操作包括:在网络服务器的网络接口处从第一客户端应用接收自动驾驶车辆命令,自动驾驶车辆命令使用网络通信协议来接收,其中,第一客户端应用是由网络服务器托管的多个客户端应用中的一个;响应于自动驾驶车辆命令,通过远程过程调用将自动驾驶车辆命令传输至自动驾驶车辆的机器人操作系统的代理服务器,代理服务器配置成通过消息总线将自动驾驶车辆命令路由到自动驾驶车辆感知与控制系统;以及响应于从自动驾驶车辆感知与控制系统接收到自动驾驶车辆命令响应,通过第一套接字连接向第一客户端应用多路广播自动驾驶车辆命令响应,并且通过第二套接字连接向多个客户端应用中的第二客户端应用多路广播自动驾驶车辆命令响应。
根据本发明的又一方面,提供了一种网络服务器,包括处理器和存储器,存储器联接至处理器以存储指令,所述指令在由处理器执行时,致使处理器执行用于操作自动驾驶车辆(自动驾驶车辆)的操作,所述操作包括:在网络服务器的网络接口处从第一客户端应用接收自动驾驶车辆命令,自动驾驶车辆命令使用网络通信协议来接收,其中,第一客户端应用是由网络服务器托管的多个客户端应用中的一个;响应于自动驾驶车辆命令,通过远程过程调用将自动驾驶车辆命令传输至自动驾驶车辆的机器人操作系统的代理服务器,代理服务器配置成通过消息总线将自动驾驶车辆命令路由到自动驾驶车辆感知与控制系统;以及响应于从自动驾驶车辆感知与控制系统接收到自动驾驶车辆命令响应,通过第一套接字连接向第一客户端应用多路广播自动驾驶车辆命令响应,并且通过第二套接字连接向多个客户端应用中的第二客户端应用多路广播自动驾驶车辆命令响应。
附图的简要说明
本发明的实施方式在附图的各图中以举例而非限制的方式示出,附图中的相同参考数字指示相似元件。
图1是示出根据一些实施方式的网络化的自动驾驶车辆(ADV)系统的概况的框图。
图2是示出根据一些实施方式的ADV传感器与控制模块的示例的框图。
图3是示出根据一些实施方式的ADV感知、规划与HMI系统的示例的框图。
图4示出了根据一些实施方式的使用人机接口、网络服务器前端和机器人操作系统(ROS)后端来控制ADV。
图5A示出了根据一些实施方式用于操作ADV的示例性人机接口。
图5B示出了根据一些实施方式用于操作ADV的示例性人机接口。
图6示出了根据一些实施方式的使用人机接口操作ADV的方法。
图7示出了根据一些实施方式的使用人机接口操作ADV的方法。
图8示出了根据一些实施方式的使用具有机器人操作系统的后端服务器来操作ADV的方法。
图9是示出根据一个实施方式的数据处理系统的框图。
具体实施方式
以下将参考所讨论的细节来描述本发明的各种实施方式和方面,附图将示出所述各种实施方式。下列描述和附图是对本发明的说明,而不应当解释为限制本发明。描述了许多特定细节以提供对本发明各种实施方式的全面理解。然而,在某些情况下,并未描述众所周知的或常规的细节以提供对本发明的实施方式的简洁讨论。
本说明书中对“一个实施方式”或“实施方式”的提及意味着结合该实施方式所描述的特定特征、结构或特性可以包括在本发明的至少一个实施方式中。短语“在一个实施方式中”在本说明书中各个地方的出现不必全部指同一实施方式。
在实施方式中,使用计算装置的人机接口(HMI)来操作自动驾驶车辆(ADV)的计算机实现方法,该计算机实现方法在网络服务器上实施,网络服务器包括联接至存储器的至少一个硬件处理器,存储器编程有可执行的指令,该可执行的指令在由至少一个硬件处理器执行时执行所述方法的操作,所述操作包括通过网络服务器的接口从计算装置的HMI接收ADV命令。响应于由网络服务器接口接收到ADV命令,所述方法调用网络服务器的远程过程调用(RPC)以通过RPC向ADV的具有机器人操作系统的后端服务器的代理服务器发送ADV命令。代理服务器配置成通过消息总线向ADV感知与控制系统路由ADV命令。所述方法还包括通过网络服务器接口从ADV感知与控制系统接收对ADV命令的响应,并且通过网络服务器接口将ADV命令响应与ADV命令响应的唯一标识符相关联地存储在网络服务器的结果存储器中。响应于结果存储器的改变,通过网络服务器打开套接字,套接字从结果存储器读取ADV命令响应的包括唯一标识符的至少一部分。响应于套接字检测到结果存储器的改变,通过套接字向计算装置的至少HMI提供ADV命令响应。来自一个或多个计算装置的多个HMI可接入网络服务器和套接字,以控制ADV并且通过套接字从结果存储器接收ADV命令响应数据。在实施方式中,响应于从计算装置接收到输入,网络服务器可向计算装置提供用于ADV的HMI。HMI可包括网页和应用程序中的至少之一。计算装置可包括ADV计算系统的一部分,或者计算装置可包括与ADV计算系统分开的远程计算装置。ADV命令包括以下之一:开始或停止记录ADV驾驶会话、回放所记录的ADV驾驶会话、打开或关闭ADV的模块以及检查并返回ADV的模块的状态。ADV的模块包括全球定位系统(GPS)、ADV的控制系统、ADV的控制局域网(CAN)通信总线、ADV的定位模块和ADV的数据记录系统中的一个或多个。在实施方式中,网络服务器接口可包括具象状态传输(REST)接口。在实施方式中,ADV命令响应可由网络服务器通过网络服务器的由机器人操作系统(ROS)的ADV感知与控制系统调用的应用程序接口(API)来接收。在实施方式中,ADV响应的唯一标识符包括ADV命令响应的散表、ADV命令响应的校验和以及与由ADV感知与控制模块生成的ADV命令响应相关联的唯一标识符中的一个或多个。在实施方式中,所述方法还可包括:通过套接字读取ADV命令响应的唯一标识符;以及确定与ADV命令响应相关联的唯一标识符是否改变。
在另一实施方式中,ADV驾驶系统的前端可包括具有超文本标记语言(HTML)前端的网络服务器,超文本标记语言(HTML)前端可向请求计算装置提供人机接口(HMI)。HTML接口可存取多个所存储的网页并且向请求计算装置提供多个网页。网页中的一个或多个可包括HMI。网络服务器还可包括可从与一个或多个计算装置相关联的一个或多个HMI接收命令的具象状态传输(RESTful)接口。HMI可用于控制ADV的操作。网络服务器可支持对后端服务器的遥远过程调用,后端服务器实现ADV命令,并且可向网络服务器返回ADV的状态、对ADV命令的响应以及ADV的具有对ADV命令的响应的状态。由RESTful接口(网络服务器接口)从HMI接收到的ADV命令可通过远程过程调用(RPC)从网络服务器传递至ADV的后端服务器。对ADV命令的响应可从后端服务器的ADV感知与控制系统返回到前端网络服务器。在实施方式中,ADV感知与控制系统可调用网络服务器的应用程序接口(API)以向网络服务器传递ADV命令响应。网络服务器可将ADV命令响应存储在网络服务器的结果存储器中,其中,结果存储器可由网络服务器上的套接字存取。套接字可读取结果存储器并且向接入套接字的一个或多个HMI发布ADV命令响应的结果。
上述的方法功能可在处理装置上实现,处理装置包括至少一个硬件处理器和编程有可执行的指令的存储器,可执行的指令在被执行时执行方法功能的操作。可执行的指令可存储在一个或多个非暂时性计算机可读介质上。处理系统可将可执行的指令从一个或多个非暂时性计算机可读介质读取到联接至处理系统的存储器中,以执行指令并且实现所要求保护的方法功能。
在另一实施方式中,ADV的后端处理系统可包括代理服务器,代理服务器通过远程过程调用(RPC)从网络服务器接收ADV命令。代理服务器可通过消息总线将接收到的ADV命令传递至ADV感知与控制系统以通过ADV感知与控制系统进行处理。在实施方式中,消息总线可以是控制器区域网络(CAN)总线。ADV的后端处理系统可包括机器人操作系统(ROS),机器人操作系统(ROS)实现并管理ADV内的各种控制系统和硬件。
图1是示出根据本发明的一个实施方式的网络化的自动驾驶车辆(ADV)系统100的概况的框图。参考图1,网络化的ADV系统100包括可以通过网络102通信地联接到一个或多个服务器103至104的自动驾驶车辆101。尽管示出一个自动驾驶车辆101,但多个自动驾驶车辆可以通过网络102彼此联接和/或联接到服务器103至104。网络102可以是任何类型的网络,例如,有线或无线的局域网(LAN)、诸如互联网的广域网(WAN)、蜂窝网络、卫星网络或其组合。服务器103至104可以是任何类型的服务器或服务器群集,诸如,网络或云服务器、应用服务器、后端服务器或其组合。服务器103至104可以是数据分析服务器、内容服务器、交通信息服务器、地图和兴趣点(MPOI)服务器或者位置服务器等。以下参考图9描述示例的服务器系统。
自动驾驶车辆101是指可以被配置成处于自动驾驶模式下的车辆,在所述自动驾驶模式下车辆在极少或没有来自驾驶员的控制输入的情况下导航通过环境。这种自动驾驶车辆101可以包括传感器系统115,所述传感器系统115具有被配置成检测与车辆运行环境有关的信息的一个或多个传感器。所述车辆和其相关联的控制器使用所检测的信息来导航通过所述环境。自动驾驶车辆101可以在手动模式下、在全自动驾驶模式下或者在部分自动驾驶模式下运行。在实施方式中,自动驾驶车辆101记录与由人类驾驶员驾驶的自动驾驶车辆101的驾驶会话,并且可以在全自动驾驶模式或部分自动驾驶模式下回放驾驶会话。无论是全自动驾驶、部分自动驾驶还是由人类驾驶员驾驶,驾驶会话的记录都可上传到ADV记录分析模块103C。
服务器103可包括数据分析系统,数据分析系统包括机器学习引擎103A、人机接口(HMI)更新模块103B和ADV记录分析模块103C。每个这种模块可实现为软件、硬件或它们的组合。在实施方式中,模块103A、103B和103C包括至少一个硬件处理器。
HMI更新模块103B可通过网络102更新一个或多个ADV 101上的一个或多个人机接口(HMI)。更新HMI可包括将用作由人机接口(HMI)系统113使用的HMI的一个或多个网页下载到ADV 101。更新HMI可包括将实现HMI且在ADV计算硬件上实施的一个或多个应用程序下载到ADV 101。在实施方式中,HMI系统113使HMI应用(多个应用)可被一个或多个用户计算装置获得。
在实施方式中,ADV记录分析模块103C可使用机器学习引擎103A来将人类驾驶会话与对应的自动驾驶会话进行比较。机器学习引擎103A可针对人类驾驶会话与对应的自动驾驶会话之间的差异进行训练,以改善自动驾驶逻辑。
在一个实施方式中,自动驾驶车辆101包括,但不限于,感知与规划系统110、车辆控制系统111、无线通信系统112、HMI系统113、信息娱乐系统114和传感器系统115。自动驾驶车辆101还可以包括普通车辆中包括的某些常用部件,诸如:发动机、车轮、方向盘、变速器等,所述部件可以由车辆控制系统111和/或感知与规划系统110使用多种通信信号和/或命令进行控制,该多种通信信号和/或命令例如,加速信号或命令、减速信号或命令、转向信号或命令、制动信号或命令等。
部件110至115可以经由互连件、总线、网络或其组合通信地联接到彼此。例如,部件110至115可以经由控制器局域网(CAN)总线通信地联接到彼此。CAN总线是被设计成允许微控制器和装置在没有主机的应用中与彼此通信的车辆总线标准。它是最初是为汽车内的复用电气布线设计的基于消息的协议,但也用于许多其它环境。
无线通信系统112允许自动驾驶车辆101与诸如装置、传感器、其它车辆等外部系统之间的通信。例如,无线通信系统112可以与一个或多个装置直接无线通信,或者经由通信网络进行无线通信,诸如,通过网络102与服务器103至104通信,或者与可实施能够操作自动驾驶车辆101的人机接口的用户装置进行无线通信。无线通信系统112可以使用任何蜂窝通信网络或无线局域网(WLAN),例如,使用WiFi,以与另一部件或系统通信。无线通信系统112可以例如使用红外链路、蓝牙等与装置(例如,乘客的移动装置、显示装置、车辆101内的扬声器)直接通信。
用户接口系统113可以是在自动驾驶车辆101中实施的外围装置的一部分,其中,外围装置包括例如键盘、触摸屏显示装置、麦克风和扬声器等。在实施方式中,用户接口系统113能包括网络服务器和人机接口(HMI),人机接口充当ADV的计算系统的前端。ADV的计算系统的后端可包括实现驾驶命令、监视和控制功能的子系统,例如,感知与规划系统110、控制系统111、无线通信系统112和传感器系统115。在实施方式中,HMI系统113的网络服务器可实现为ADV的车载计算系统的一部分。在实施方式中,HMI系统113可独立于ADV计算系统而实现为用户计算装置上的网页或应用。
自动驾驶车辆101的功能中的一些或全部可以由感知与规划系统110控制或管理,尤其当在自主驾驶模式下操作时。感知与规划系统110包括必要的硬件(例如,处理器、存储器、存储设备)和软件(例如,操作系统、规划和路线安排程序),以从传感器系统115、控制系统111、无线通信系统112和/或用户接口系统113接收信息,处理所接收的信息,规划从起始点到目的地点的路线或路径,随后基于规划和控制信息来驾驶车辆101。替代地,感知与规划系统110可以与车辆控制系统111集成在一起。在实施方式中,感知与规划模块110的规划部分可关闭。在实施方式中,控制系统111可关闭。然后,自动驾驶车辆101可由人类驾驶员驾驶,同时规划与控制模块关闭。
在运行中,作为乘客的用户可以例如经由HMI系统113来指定行程的起始位置和目的地。感知与规划系统110获得行程相关数据。例如,感知与规划系统110可以从MPOI服务器中获得位置和路线信息,所述MPOI服务器可以是服务器103至104的一部分。位置服务器提供位置服务,并且MPOI服务器提供地图服务和某些位置的POI。替代地,此类本地和MPOI信息可以本地高速缓存在感知与规划系统110的永久性存储装置中。
当自动驾驶车辆101沿着路线移动时,感知与规划系统110也可以从交通信息系统或服务器(TIS)获得实时交通信息。应注意,服务器103至104可以由第三方实体进行操作。替代地,服务器103至104的功能可以与感知与规划系统110集成在一起。基于实时交通信息、MPOI信息和位置信息以及由传感器系统115检测或感测的实时本地环境数据(例如,障碍物、对象、附近车辆),感知与规划系统110可以规划最佳路线并且根据所规划的路线例如经由控制系统111来驾驶车辆101,以安全有效地到达指定目的地。
在自动驾驶车辆101中,可不存在真实或物理上的窗。确切地说,“窗”(本文中称为虚拟窗)可由显示装置表示或替代,显示装置即模制成车窗形状的平坦或弯曲的画面显示装置,优选地具有触摸屏。在实施方式中,显示装置可包括HMI系统113的一部分。显示装置会显示由适当的相机或多个相机实时动态地拍摄的图像或图像流(例如,视频),就好像用户在通过透明窗观看或观察实际物理内容一样。对于“窗”(例如,显示装置)中的每个,可存在流传输要实时显示的对应内容的相应显示通道,这可由增强现实系统(例如,数据处理系统)集中地处理。在这种情况下,经增强的图像经由信息娱乐系统114以虚拟现实方式(也称为增强现实方式)显示。
在本文描述的实施方式中,来自传感器系统115中的每个传感器的输出可在自动驾驶车辆101以手动驾驶(由人类驾驶员驾驶)模式、部分自动驾驶模式或自动驾驶模式进行驾驶时被记录。向控制系统111的部件的输入可由感知与规划模块110提供。
图2是示出根据本发明的一个实施方式的ADV传感器与控制模块200的示例的框图。
参照图2,在一个实施方式中,传感器系统115可包括但不限于一个或多个相机211、全球定位系统(GPS)单元212、惯性测量单元(IMU)213、雷达单元214以及光探测与测距(LIDAR)单元215。传感器系统115中的一个或多个部件可通过用户接口系统113进行初始化、测试和/或打开/关闭。GPS系统212可包括收发器,所述收发器可操作以提供关于自动驾驶车辆的位置的信息。IMU单元213可以基于惯性加速度来感测自动驾驶车辆的位置和定向变化。雷达单元214可以表示利用无线电信号来感测自动驾驶车辆的本地环境内的对象的系统。在一些实施方式中,除感测对象之外,雷达单元214还可以附加地感测对象的速度和/或前进方向。LIDAR单元215可以使用激光器来感测自动驾驶车辆所处环境中的对象。除其它系统部件之外,LIDAR单元215还可以包括一个或多个激光源、激光扫描器以及一个或多个检测器。相机211可以包括用来捕获自动驾驶车辆周围环境的图像的一个或多个装置。相机211可以是静物相机和/或视频相机。相机可以是可机械地移动的,例如,通过将相机安装在旋转和/或倾斜平台上。
传感器系统115还可以包括其它传感器,诸如:声纳传感器、红外传感器、转向传感器、油门传感器、制动传感器以及音频传感器(例如,麦克风)。音频传感器可以配置成从自动驾驶车辆101周围的环境中捕获声音。转向传感器可配置成感测方向盘、车辆的车轮或其组合的转向角度。油门传感器和制动传感器分别感测车辆的油门位置和制动位置。在一些情形下,油门传感器和制动传感器可以集成为集成式油门/制动传感器。传感器系统115还可包括一个或多个水平测量传感器。例如,第一水平测量传感器可指示ADV是面向下坡还是面向上坡,且如果是这样,则向前/向后的测量例如倾斜某些度数或其它角测度。第二水平测量传感器可测量横向倾斜,例如,ADV向左倾斜还是向右倾斜。
在一个实施方式中,车辆控制系统111包括但不限于转向单元201、油门单元202(也被称为加速单元)和制动单元203。转向单元201用来调整车辆的方向或前进方向。油门单元202用来控制电动机或发动机的速度,电动机或发动机的速度转而控制车辆的速度和加速度。制动单元203通过提供摩擦使车辆的车轮或轮胎减慢而使车辆减速。应注意,如图2所示的部件可以以硬件、软件或其组合实施。车辆控制系统111还可包括永久性存储设备252。永久性存储设备252可以是ROM、RAM、电池支持的RAM、固态存储装置、硬盘、CD-ROM、DVD-ROM或其它永久性存储设备。永久性存储设备252可包括存储在永久性存储设备252中的驾驶日志数据库204、错误日志数据库205和可执行程序指令,所述永久性存储设备252在由例如硬件处理器执行时可执行程序指令以实现状态分析模块205。驾驶日志204可包括驾驶会话的记录,其中,驾驶会话包括与人类驾驶员的驾驶会话、与人类驾驶员的部分自动驾驶会话以及全自动驾驶会话。错误日志205可包括超出容忍条件的错误、人类对机器决策的忽视、子系统错误以及与ADV操作有关的其它信息。
图3是示出根据本发明的一个实施方式的ADV感知、规划与HMI系统300的示例的框图。系统300可实现为图1的自动驾驶车辆101的一部分。参照图3,系统300可包括具有用户接口网络服务器模块308(“前端”)的前端和后端处理310。后端处理310可包括但不限于定位模块301、感知模块302、决策模块303、规划模块304、控制模块305、代理模块306和控制局域网(CAN)307。系统300可通信地联接至传感器系统115和控制系统111。系统300可包括均通过通信系统307互连的一个或多个硬件处理器(未示出)、一个或多个通信模块(未示出)、存储器351和永久性存储设备352。通信系统307可包括控制器局域网(CAN)消息总线、网络、进程间通信系统或其它通信系统。模块301-308以及模块310可由存储在永久性存储设备中的指令实施、可被读取到存储器351中,并且可由感知与规划模块110的至少一个硬件处理器执行。
模块301-308中的一部分或全部可以以软件、硬件或软件和硬件的组合实施。例如,这些模块可安装在永久性存储装置352中、装载到存储器351中,并且可由一个或多个处理器(未示出)执行。注意,这些模块中的一部分或全部可通信地联接至图2的车辆控制系统111的一部分或全部模块或者与图2的车辆控制系统111的一部分或全部模块成一体。模块301至模块306中的一部分可一起整合为一体的模块。
HMI网络服务器模块308可包括HTML服务器308A、网络服务器接口308B和进程间通信模块308C。HMI网络服务器模块308可包括实现人机接口(HMI)功能的“前端”,而“后端”310包括具有实现ADV驾驶功能的模块的机器人操作系统(ROS)。HTML服务器308A可从计算装置接收输入,并且响应于用户输入向计算装置提供人机接口(HMI)。在实施方式中,HMI可包括一个或多个网页。在实施方式中,HMI可包括一个或多个应用程序或模块。在实施方式中,计算装置可形成ADV 101的计算系统的一部分。在实施方式中,计算装置可以是诸如膝上型计算机、平板计算机、智能电话或其它用户装置的用户计算装置。接下来参照图9描述典型的计算系统的硬件。
网络服务器接口308B可从HMI接收一个或多个ADV命令。在实施方式中,ADV命令可以是开始或停止记录ADV驾驶会话、回放所记录的ADV驾驶会话、打开或关闭ADV的模块以及检查并返回ADV的模块的状态中的一个或多个。ADV的模块可包括全球定位系统(GPS)、ADV的控制系统、ADV的控制局域网(CAN)通信总线、ADV的定位模块或ADV的数据记录系统中的一个或多个。网络服务器接口308B可调用远程过程调用(RPC)以将从HMI接收到的ADV命令传递至ADV 101的后端计算系统310的代理模块306。网络服务器接口308B还可接收对ADV命令的响应并且将对ADV命令的响应存储在结果存储器中。在实施方式中,网络服务器接口308B可包括应用程序接口(API),应用程序接口(API)由ADV后端计算系统310的感知与控制系统调用以返回对ADV命令的响应。网络服务器接口308B可致使IPC模块308C打开套接字(socket),从而通过套接字来针对结果存储器的改变监视结果存储器,结果存储器的改变指示更新的ADV命令响应和/或ADV状态信息已经存储在结果存储器中。结果存储器的改变可发布至与套接字连接的一个或多个HMI。结果存储器可形成存储器351的一部分。
进程间通信(IPC)模块308C可实现网络服务器接口310B的远程过程调用服务以将从HMI接收到的ADV命令传递至后端代理模块306。IPC模块308C还可实现API,API可由后端310调用以将对ADV命令的响应传递至网络服务器接口308B。IPC模块308C还可实现套接字服务以监视结果存储器,并且响应于结果存储器改变(接收并且存储了新的ADV命令响应)而向HMI发布对ADV命令的响应。
后端计算系统310可包括定位模块301、感知模块302、决策模块303、规划模块304、控制模块305、代理模块306和CAN总线307。
定位模块301的目的是以高精度确定ADV的位置。ADV位置可使用例如GPS近似地确定。GPS坐标可用于获得高清晰度(HD)地图,其中,HD地图具有位于GPS位置处的中心且具有约100米×100米的单元格的HD地图特征空间。ADV车载传感器115可被感知模块302读取且可由感知模块302进行处理。感知模块302还可生成在ADV周围的约100米×100米的单元格的ADV特征空间。为了确定ADV关于HD地图网格312的实际位置,定位模块301可找出ADV特征空间的备选部分中的备选单元格与HD地图的最佳匹配。匹配决定ADV与以GPS为中心的HD地图特征空间的偏移。该偏移可与HD地图特征空间结合以用于确定ADV的实际高精度位置。
定位模块301可从感知模块302中的传感器获得传感器数据的3D点云。3D点云表示ADV 101周围的传感器数据。定位模块301可分析3D点云并且生成数据的单元格的ADV特征空间,并且确定ADV周围的10cm×10cm中的单元格中的哪个单元格与高分辨率地图网格312的坐标最接近地对应,其中,每个ADV特征空间表示ADV周围的约10cm×10cm的区域。基于由传感器系统115提供的传感器数据和由定位模块301获得的定位信息,通过感知模块302来确定对周围环境的感知。感知信息可以表示普通驾驶员在驾驶员正驾驶的车辆周围将感知到的东西。感知可包括车道配置(例如,直线车道或弯曲车道)、交通灯信号、另一车辆的相对位置、行人、建筑物、人行横道或例如采用对象形式的其它交通相关标志(例如,停车标志、让路标志)等。
感知模块302可以包括计算机视觉系统或计算机视觉系统的功能,以处理并分析由一个或多个相机捕获的图像,以便识别自动驾驶车辆环境中的对象和/或特征。所述对象可以包括交通信号、道路边界、其它车辆、行人和/或障碍物等。计算机视觉系统可以使用对象识别算法、视频跟踪以及其它计算机视觉技术。在一些实施方式中,计算机视觉系统可以绘制环境地图,跟踪对象,以及估算对象的速度等。感知模块302也可以基于由诸如雷达和/或LIDAR的其它传感器提供的其它传感器数据来检测对象。
针对由感知模块302检测到的每个对象,决策模块303可作出关于如何处置对象的决定。例如,针对特定对象(例如,交叉路线中的另一车辆)以及描述对象的元数据(例如,速度、方向、转弯角度),决策模块303决定如何面对所述对象(例如,超车、让路、停车、超过)。决策模块303可以根据诸如交通规则的一套规则来作出此类决定,所述规则可以存储在永久性存储装置352(未示出)中。
基于针对所感知到的对象中的每个的决定,规划模块304为自动驾驶车辆规划路径或路线以及驾驶参数(例如,距离、速度和/或转弯角度)。换言之,针对给定的对象,决策模块303决定对该对象做什么,而规划模块304确定如何去做。例如,针对给定的对象,决策模块303可以决定超过所述对象,而规划模块304可以确定在所述对象的左侧还是右侧超过。规划和控制数据由规划模块304生成,包括描述车辆300在下一移动循环(例如,下一路线/路径段)中将如何移动的信息。例如,规划和控制数据可以指示车辆300以30英里每小时(mph)的速度移动10米,随后以25mph的速度变到右侧车道。
基于规划和控制数据,控制模块305根据由规划和控制数据限定的路线或路径通过将适当的命令或信号发送到车辆控制系统111来控制并驾驶自动驾驶车辆。所述规划和控制数据包括足够的信息,以沿着路径或路线在不同的时间点使用适当的车辆设置或驾驶参数(例如,油门、制动和转向命令)将车辆从路线或路径的第一点驾驶到第二点。
应注意,决策模块303和规划模块304可以实施为集成模块。决策模块303/规划模块304可以包括导航系统或导航系统的功能,以确定自动驾驶车辆的驾驶路径。例如,导航系统可以确定用于实现自动驾驶车辆沿着以下路径移动的一系列速度和定向前进方向:所述路径在使自动驾驶车辆沿着通往最终目的地的基于车行道的路径前进的同时,基本上避免感知到的障碍物。目的地可以根据经由用户接口系统113进行的用户输入来设定。导航系统可以在自动驾驶车辆正在运行的同时动态地更新驾驶路径。导航系统可以将来自GPS系统和一个或多个地图的数据合并,以确定用于自动驾驶车辆的驾驶路径。
决策模块303/规划模块304还可以包括防撞系统或防撞系统的功能,以识别、评估和避免或以其它方式越过自动驾驶车辆的环境中的潜在障碍物。例如,防撞系统可以通过以下方式实现自动驾驶车辆的导航中的变化:操作控制系统111中的一个或多个子系统来采取转向操纵、转弯操纵、制动操纵等。防撞系统可以基于周围的交通模式、道路状况等自动确定可行的障碍物回避操纵。防撞系统可以被配置成使得当其它传感器系统检测到位于自动驾驶车辆将转向进入的相邻区域中的车辆、建筑障碍物等时不采取转向操纵。防撞系统可以自动选择既可使用又使得自动驾驶车辆乘员的安全性最大化的操纵。防撞系统可以选择预测的避开操纵以致使自动驾驶车辆的乘客舱中出现最小量的加速度。
永久性存储装置352可包括地图与路由信息311、地图网格312、网页313和HMI网络服务器资源314。地图与路由信息311可用于确定到达目的地的一系列导航操作。导航操作可表现为图形中的弧,所述弧具有描绘路线的特征(例如,速度、交通、信号、道路类型等)的权重和属性。地图网格312可以是某一驾驶位置内(例如“在美国内”或“在加利福尼亚内”或者“在旧金山内”)的所有已知的HD地图网格特征空间的完整地图网格。在实施方式中,可按照需要从ADV周围的半径(例如,100英里半径)内的服务器(例如,服务器103或104)下载地图网格312。网页313可形成人机接口(HMI)的实施方式的一部分,用户可通过人机接口(HMI)来操作ADV。在实施方式中,HMI网络服务器资源314可包括形成HMI的一部分的一个或多个应用程序模块。响应于来自计算装置的请求,网页313和/或HMI网络服务器资源314中的一个或多个可返回到请求计算装置,并且形成用于使用计算装置来操作ADV 101的HMI。HMI可用于生成操作ADV 101的命令。
应注意,如上文示出和描述的部件中的一些或全部可以以软件、硬件或其组合实施。例如,此类部件可以实施为安装并存储在永久性存储装置中的软件,所述软件可以通过处理器(未示出)加载在存储器中并在存储器中执行以实施贯穿本申请所述的过程或操作。替代地,此类部件可以实施为编程或嵌入到专用硬件(诸如,集成电路(例如,专用集成电路或ASIC)、数字信号处理器(DSP)或现场可编程门阵列(FPGA))中的可执行代码,所述可执行代码可以经由来自应用的相应驱动程序和/或操作系统来存取。此外,此类部件可以实施为处理器或处理器内核中的特定硬件逻辑,作为可由软件部件通过一个或多个特定指令存取的指令集的一部分。
图4示出了根据一些实施方式的用于使用一个或多个人机接口(HMI)410、网络服务器前端405和具有机器人操作系统(ROS)的后端服务器480来控制ADV的计算系统400。计算系统400可包括ADV车载计算系统。HMI 410可在ADV车载计算系统中实现。HMI410还可在用户计算系统(诸如,膝上型计算机、平板计算机或智能电话)中实现。因此,计算系统400可包括一个或多个计算装置,所述一个或多个计算装置可包括车载ADV计算系统和一个或多个用户计算装置。
网络服务器405可包括可各自与HMI客户端(例如,客户端应用410A和410B)通信的HTML接口415、具象状态传输(RESTful)接口420以及一个或多个套接字接口425。这些接口可以在可实现为软件、硬件或它们的组合的各种模块中实现。这些模块中的一部分可整合为更少的整合模块。计算装置可向HTML接口415发送输入(1)。响应于输入,HTML接口415可返回(1)一个或多个网页430,一个或多个网页430可被计算装置用于实现HMI 410。
在实施方式中,HTML接口415可另外或可选地返回(1)包括HMI的至少一部分的一个或多个应用程序模块。在实施方式中,HTML接口415可响应于来自计算装置的第一输入(1)而返回(1)一个或多个第一网页和/或第一应用程序模块。响应于随后的用户输入(1),HTML接口415可返回(1)一个或多个另外的网页和/或应用程序模块。在实施方式中,随后的输入(1)可以是输入到第一网页或之前的网页或应用程序模块的命令。
在请求计算装置接收到并且实现至少第一HMI显示画面时,HMI 410的用户可向HMI 410输入一个或多个ADV命令(2)。RESTful接口420可从HMI客户端410(例如,HMI 410A或HMI 410B)接收(2)ADV命令。在实施方式中,RESTful接口420可确收(2)从HMI 410接收到(2)ADV命令。ADV命令可以是例如开始或停止记录ADV驾驶会话、回放所记录的ADV驾驶会话、打开或关闭ADV的模块或者检查并返回ADV的模块的状态。ADV的模块可以是例如全球定位系统(GPS)、ADV的控制系统、ADV的控制局域网(CAN)通信总线、ADV的定位模块、ADV的数据记录系统或者这些系统的组合中的一个或多个。响应于接收到ADV命令,RESTful接口420可进行一个或多个远程过程调用(3)(RPC)435以将ADV命令(4)传递至ADV计算系统后端480中的代理服务器485。
ADV后端服务器480可包括机器人操作系统(OS)、代理服务器485、消息总线490和感知与控制系统495。在实施方式中,后端480服务器可在与前端网络服务器405相同或不同的计算系统上实现。在实施方式中,消息总线490可以是控制器局域网(CAN)消息总线。感知与控制模块495可包括上文参照图3描述的后端310的部件中的一个或多个。感知与控制模块495可实施ADV驾驶命令,返回ADV子系统的状态以及ADV驾驶命令的状态。代理服务器485可向消息总线490传递(5)ADV命令。在实施方式中,消息总线490可以是CAN消息总线。消息总线490可向感知与控制系统495传递(6)ADV命令以进行处理和执行。
感知与控制系统495可向网络服务器405返回(7)一个或多个ADV子系统的状态和ADV命令的完成状态。在实施方式中,感知与控制系统495可调用应用程序接口(API)450以将这些状态返回(8)至RESTful接口420。RESTful接口420可将从感知与控制系统495返回的状态信息与唯一标识符(UID)445一起存储(9)在结果存储器440中,其中,所述唯一标识符(UID)445与所存储的状态信息相关联。在实施方式中,UID可由感知与控制系统495生成。在实施方式中,UID 445可以是所存储的状态信息的散表(hash)和所存储的状态信息的校验和之一。RESTful接口420可使得生成套接字425,套接字425监视结果存储器440。可选地,套接字接口425在系统最初被启动时执行。
在实施方式中,结果存储器440可以与特定的驾驶会话相关联。HMI 410A和/或HMI410B可连接至套接字425以用于驾驶会话。例如,在驾驶会话的开始,当客户端410A至客户端410B启动时,套接字接口425与客户端410A至客户端410B中的每个建立套接字连接,并且在整个驾驶会话过程中保持所述套接字连接。套接字425可监视结果440以确定例如由RESTful接口420存储(9)新的状态信息时结果存储器440是否改变。可选地,套接字接口425可从网络服务器405直接接收数据或者经由API从感知与控制系统接收数据。
响应于结果存储器440的改变,套接字425可读取(10)结果存储器440。在实施方式中,套接字425可监视UID 445以确定UID 445是否改变,UID 445的改变指示结果存储器440已经改变。套接字425可将从结果存储器440读取(10)的存储的状态信息传递(11)至HMI410A和/或HMI 410B,以更新人机接口410A和/或410B。在一个实施方式中,套接字接口425基本上同时地向客户端410A至客户端410B传输结果。在一个实施方式中,套接字接口425可通过它们各自的套接字连接将所述结果多路广播至客户端410A至客户端410B。
图5A示出根据一些实施方式的用于操作ADV 101的人机接口(HMI)500。HMI 500可用于操作ADV 101。HMI 500可包括快速启动接口510、调试接口520和状态接口550。
快速启动接口510可包括记录部分511和回放部分516。记录部分511可用于在手动模式(人类驾驶员)、半自动驾驶模式或自动驾驶模式下开始驾驶会话的记录。HMI 500可以在记录会话期间以规律的间隔记录传感器信息和控制信息。例如,记录会话可在时间的增量处记录ADV状态信息的油门输入、制动输入、转向输入、速度、方向、向前倾斜/向后倾斜、侧向倾斜、加速度和位置。记录会话可在时间t0处开始,可针对某一时间增量Δ记录每下一个车辆状态t+Δt时的ADV状态。首先可使用重置512按钮来重设记录会话日志。在开始驾驶会话和记录之前,可按压检查按钮513以检查是否所有的ADV子系统联机且正常工作。驾驶员(或乘客,统称为“驾驶员”)可按压开始514以开始记录会话。驾驶员可按压结束515以结束驾驶会话的记录。
快速播放接口516可使用来自之前的驾驶会话的会话日志以根据会话日志自动地驾驶ADV 101。在ADV驾驶会话开始之前,驾驶员可按压检查517以检查是否所有的ADV子系统均联机且正常工作。驾驶员可按压开始518以根据之前的驾驶会话日志以自驾驶模式来驾驶ADV。在实施方式中,驾驶员可在会话结束时或会话结束之前按压结束按钮519以停止ADV自驾驶操作。
调试接口520可包括对ADV感知与控制系统495的控制和硬件控制540。调试接口530可具有对例如GPS驾驶模块531、控制模块532、CAN消息总线533、定位模块534、理想视图535和用户接口记录日志536的控制。理想视图是HMI的3D版本。每个模块可具有关闭控制537/打开控制538。每个模块还可具有子菜单控制,接下来在图5B中描述“^”的操作。使用关闭控制537/打开控制538,HMI 500的用户可生成ADV命令,例如开启打开538、CAN总线533的ADV命令。如上文参照图4描述的那样,ADV命令可被RESTful接口420接收,由RPC传递至代理485,然后传递至CAN总线490。如果CAN总线490不工作,则代理服务器485可通过进程间通信向感知与控制系统495通知CAN总线490未被成功启动。启动CAN总线的ADV命令的结果可返回到RESTful接口420、存储在结果存储器440中、由套接字425读取并且传递至HMI 410A和/或HMI 410B(此处是HMI 500),以更新HMI 500,进而指示CAN总线490未被启动。在实施方式中,在HMI 500中,响应于用户将CAN总线533控制设置成关闭537而可将CAN总线533模块设置成关闭537位置,并且CAN总线490不打开。
调试接口520还可包括用于硬件540的人类接口元件以检查例如GPS 541和CAN543。GPS 541可具有检查542按钮。CAN总线硬件543可具有检查544按钮。例如,点击检查542向RESTful接口420发送ADV命令,以对GPS硬件541执行初始化和测试程序。如果GPS 541未通过一个或多个测试和特定测试,则相关的成功和失败会写入硬件测试日志。如果测试均是成功的,则GPS 541可具有紧挨着其的表示通过所有的GPS 541测试。如果一个或多个GPS 541测试失败,则GPS 541可具有靠近其的表示一个或多个测试失败。可查询测试日志以确定精确的测试、成功和失败。类似地,CAN消息总线硬件543可具有对CAN消息总线543执行初始化和测试程序的检查544。
状态接口550可向ADV 101的用户显示ADV状态信息。在实施方式中,状态接口550可响应于ADV命令被感知与控制系统495处理而更新。在实施方式中,状态接口550可随着驾驶会话进行而连续地更新。在实施方式中,状态接口550更新可在用户选择来自快速开始510的结束515或结束519时停止。状态信息可包括ADV的速度551、ADV的前进方向552、制动输入553、转向输入554、油门输入555、位置556、发动机温度557和驾驶模式558。在实施方式中,驾驶模式558可以是手动(人类驾驶员)、半自动驾驶或自动驾驶。驾驶模式558可根据对快速开始510 HMI输入中的快速记录511或快速播放516的选择确定。
图5B示出了以上的图5A所示的且GPS 541和CAN消息总线543硬件显示的状态的HMI 500,其中,GPS 541和CAN消息总线543硬件显示的状态表示GPS 541和CAN消息总线543在硬件初始化和测试期间均经历一次或多次失败。
调试520接口还示出了全部重置按钮521的,全部重置按钮521可将ADV命令发送至RESTful接口420以重置全部的模块530和硬件540。调试520的模块530示出控制532的日志信息。通过点击紧挨着控制532的“^”控制可出现下拉文本框,下拉文本框指示响应于开始(例如开始514或开始518)和停止(例如,结束515或结束519)的“开始”和“停止”的日志文件名称。在所示出的示例中,响应于开始命令,控制532向日志文件输出“stdout”、“stderr”、“control.INFO”和“control.ERROR”。响应于停止命令,控制532将日志文件写入“stdout”和“stderr”。用于模块530的调试520用户接口允许用户编辑日志文件的文件名。
图6示出了根据一些实施方式的使用人机接口500操作ADV 101的方法600。参照图6,在操作605中,使用网络通信协议在网络服务器的网络接口处从多个客户端应用中的第一客户端应用接收ADV命令。在实施方式中,第一客户端应用包括人机接口(HMI)。在实施方式中,第一客户端应用包括一个或多个网页。在实施方式中,第一客户端应用包括一个或多个应用程序模块。在另一实施方式中,第一客户端应用可包括一个或多个网页和一个或多个应用程序模块。在实施方式中,网络通信协议可包括超文本传送协议(HTTP)、安全HTTP(HTTPS)、传输控制协议(TCP)或其它网络通信协议。
在操作610中,响应于网络服务器从第一客户端应用接收到ADV命令,网络服务器可使用远程过程调用(RPC)将ADV命令传输至作为ADV的后端服务器的一部分的代理服务器。后端服务器可包括消息总线(例如,控制器局域网(CAN)消息总线)和感知与控制模块。代理服务器可通过消息总线向感知与控制模块传递ADV命令。然后,感知与控制模块可执行ADC命令并且向网络服务器返回ADV的一个或多个模块和子系统的状态。
在操作615中,响应于感知与控制模块从感知与控制系统接收到ADV命令响应,网络服务器可经由第一套接字连接向第一客户端应用多路广播ADV命令响应,并且通过第二套接字连接向多个客户端应用中的第二客户端应用多路广播ADV命令响应。
图7示出了根据一些实施方式的使用人机接口500操作ADV 101的方法700。参照图7,在操作705中,网络服务器405的HTML接口415可从请求用于ADV 101的HMI 500的计算装置接收输入。在实施方式中,可从计算装置的网页浏览器接收输入。
在操作710中,HTML接口415可向请求计算装置提供HMI 500。在实施方式中,HMI500可包括一个或多个网页430,所述一个或多个网页430返回到计算装置。在实施方式中,HMI 500可另外或可选地包括一个或多个应用程序模块。HTML接口415可向请求计算装置返回网页430和/或应用程序模块。在实施方式中,请求计算装置可包括ADV的车载计算装置的一部分。在实施方式中,请求计算装置可以是诸如膝上型计算机、平板计算机或智能电话的用户计算装置。请求计算装置根据由HTML接口415发送的网页和/或应用程序模块来运行HMI。
在操作715中,RESTful接口420可从HMI 500接收ADV命令。命令可以是开始或停止记录ADV驾驶会话、回放所记录的ADV驾驶会话、打开或关闭ADV的模块以及检查并返回ADV的模块的状态中的一个或多个。ADV的模块可以是全球定位系统(GPS)、ADV的控制系统、ADV的控制局域网(CAN)通信总线、ADV的定位模块或ADV的数据记录系统中的一个或多个。在实施方式中,ADV命令可以是以上在图5A和图5B中示出和描述的任何命令按钮。
在操作720中,RESTful接口420可进行远程过程调用(RPC),以向后端480的代理服务器485发送ADV命令。
在操作725中,RESTful接口420可接收对在以上的操作720中发送至代理服务器485的ADV命令的响应。对ADV命令的响应可包括对命令的成功或失败的指示、ADV的一个或多个模块或子系统的状态、ADV的一个或多个硬件系统的状态、控制输入(例如,转向输入、制动输入或油门输入)等。
在操作730中,RESTful接口420可将对ADV命令的响应存储在结果存储器440中。在实施方式中,后端服务器480的感知与控制系统495可确定ADV命令响应的唯一标识符(UID)445并且存储与ADV命令响应相关联的UID。
在操作735中,RESTful接口420可致使套接字425打开。套接字425可监视包括UID445的结果存储器440的改变,并且可读取结果存储器。
在操作740中,套接字425监视结果存储器以确定UID 445是否改变。
在操作745中,如果UID 445改变,则在结果存储器中能够获得新的ADV命令响应和/或ADV状态。响应于确定出UID 445已经改变,套接字425读取结果存储器。
在操作750中,套接字425可向HMI 500(例如,HMI 410A和/或HMI 410B)中的一个或多个提供ADV命令响应。
图8示出了根据一些实施方式的使用具有机器人操作系统的后端服务器480来操作ADV的方法800。后端服务器480通过远程过程调用从RESTful接口420接收ADV命令。响应于从HMI 410A和/或HMI 410B接收到的一个或多个输入,由RESTful接口420接收ADV命令。
在操作805中,后端服务器480的代理服务器485通过远程过程调用435从前端服务器405的RESTful接口420接收ADV命令。
在操作810中,代理服务器485通过CAN消息总线490向感知与控制系统495传递ADV命令。在操作815中,ADV感知与控制系统495执行ADV命令。
在操作820中,ADV感知与控制系统495向RESTful接口420传递ADV命令响应。在实施方式中,感知与控制系统495调用网络服务器405的API 450以向网络服务器405的RESTful接口420传递ADV命令响应。如上所述,ADV命令响应可包括对命令的成功或失败的指示、ADV的一个或多个模块或子系统的状态、ADV的一个或多个硬件系统的状态、控制输入(例如,转向输入、制动输入或油门输入)等。
图9是示出可以与本发明的一个实施方式一起使用的数据处理系统900的示例的框图。例如,系统900可以表示以上所述的执行上述过程或方法中的任一个的任何数据处理系统,例如,图1的自动驾驶车辆101系统(例如,感知与规划110、控制系统111、信息娱乐系统114等)或者服务器103至104中的任一个。系统900可以包括许多不同的部件。这些部件可以实施为集成电路(IC)、集成电路的部分、分立电子装置或适用于电路板的其它模块(诸如,计算机系统的主板或插入卡)或者实施为以其它方式并入计算机系统的底盘内的部件。
还应注意,系统900旨在示出计算机系统的许多部件的高级视图。然而,应当理解的是,某些实施例中可以具有附加的部件,此外,其它实施例中可以具有所示部件的不同配置。系统900可以表示台式计算机、膝上型计算机、平板计算机、服务器、移动电话、媒体播放器、个人数字助理(PDA)、嵌入式处理控制器、智能手表、个人通信器、游戏装置、网络路由器或集线器、无线接入点(AP)或中继器、机顶盒或其组合。此外,虽然仅示出了单个机器或系统,但是术语“机器”或“系统”还应当被理解为包括单独地或共同地执行一个(或多个)指令集以执行本文所讨论的任何一种或多种方法的机器或系统的任何集合。
在一个实施方式中,系统900包括通过总线或互连件910连接的处理器901、存储器903以及装置905至908。处理器901可以表示其中包括单个处理器内核或多个处理器内核的单个处理器或多个处理器。处理器901可以表示一个或多个通用处理器,诸如,微处理器、中央处理单元(CPU)等。更具体地,处理器901可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实施其它指令集的处理器、或实施指令集组合的处理器。处理器901还可以是一个或多个专用处理器,诸如,专用集成电路(ASIC)、蜂窝或基带处理器、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器、图形处理器、网络处理器、通信处理器、加密处理器、协同处理器、嵌入式处理器,或者能够处理指令的任何其它类型的逻辑。在实施方式中,处理器901包括至少一个硬件处理器。
处理器901(其可以是低功率多核处理器插座,诸如超低电压处理器)可以充当用于与所述系统的各种部件通信的主处理单元和中央集线器。这种处理器可以实施为片上系统(SoC)。处理器901被配置成执行用于执行本文所讨论的操作和步骤的指令。系统900还可以包括与可选的图形子系统904通信的图形接口,图形子系统904可以包括显示控制器、图形处理器和/或显示装置。
处理器901可以与存储器903通信,存储器903在一个实施方式中可以经由多个存储器装置实施以提供给定量的系统存储器。存储器903可以包括一个或多个易失性存储(或存储器)装置,诸如,随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)或者其它类型的存储装置。存储器903可以存储包括由处理器901或任何其它装置执行的指令序列的信息。例如,各种操作系统、装置驱动程序、固件(例如,输入输出基本系统或BIOS)和/或应用的可执行代码和/或数据可以加载到存储器903中并由处理器901执行。操作系统可以是任何类型的操作系统,例如,机器人操作系统(ROS)、来自公司的操作系统、来自苹果公司的Mac来自公司的LINUX、UNIX,或者其它实时或嵌入式操作系统。
系统900还可以包括IO装置,诸如装置905至908,包括网络接口装置905、可选的输入装置906,以及其它可选的IO装置907。网络接口装置905可以包括无线收发器和/或网络接口卡(NIC)。所述无线收发器可以是WiFi收发器、红外收发器、蓝牙收发器、WiMax收发器、无线蜂窝电话收发器、卫星收发器(例如,全球定位系统(GPS)收发器)或其它射频(RF)收发器或者它们的组合。NIC可以是以太网卡。
输入装置906可以包括鼠标、触摸板、触敏屏幕(其可以与显示装置904集成在一起)、指针装置(诸如,指示笔)和/或键盘(例如,物理键盘或作为触敏屏幕的一部分显示的虚拟键盘)。例如,输入装置906可以包括联接到触摸屏的触摸屏控制器。触摸屏和触摸屏控制器例如可以使用多种触敏技术(包括但不限于电容、电阻、红外和表面声波技术)中的任一种,以及用于确定与触摸屏接触的一个或多个接触点的其它接近传感器阵列或其它元件来检测其接触和移动或间断。
输入/输出(I/O)装置907可以包括音频装置。音频装置可以包括扬声器和/或麦克风,以促进支持语音的功能,诸如语音识别、语音复制、数字记录和/或电话功能。其它I/O装置907还可以包括通用串行总线(USB)端口、并行端口、串行端口、打印机、网络接口、总线桥(例如,PCI-PCI桥)、传感器(例如,运动传感器,诸如加速度计、陀螺仪、磁强计、光传感器、罗盘、接近传感器等)或者它们的组合。装置907还可以包括成像处理子系统(例如,相机),所述成像处理子系统可以包括用于促进相机功能(诸如,记录照片和视频片段)的光学传感器,诸如电荷耦合装置(CCD)或互补金属氧化物半导体(CMOS)光学传感器。某些传感器可以经由传感器集线器(未示出)联接到互连件910,而诸如键盘或热传感器的其它装置可以由嵌入式控制器(未示出)控制,这取决于系统900的具体配置或设计。I/O装置907还可包括RADAR系统(无线探测和测距)、LIDAR系统(光探测与测距)、GPS系统(全球定位系统)、可使用手机通信塔进行检测和三角形测量的手机子系统、麦克风以及其它的音频/视频记录相机、位置检测器、距离检测器、时间检测器、速度检测器、加速度检测器、水平与竖直程度检测器、定向传感器和方向传感器。
为了提供诸如数据、应用、一个或多个操作系统等信息的永久性存储,大容量存储设备(未示出)也可以联接到处理器901。在各种实施方式中,为了实现更薄且更轻的系统设计并且改进系统响应性,这种大容量存储设备可以经由固态装置(SSD)来实施。然而,在其它实施方式中,大容量存储设备可以主要使用硬盘驱动器(HDD)来实施,其中较小量的SSD存储设备充当SSD高速缓存以在断电事件期间实现上下文状态以及其它此类信息的非易失性存储,从而使得在系统活动重新启动时能够实现快速通电。另外,闪存装置可以例如经由串行外围接口(SPI)联接到处理器901。这种闪存装置可以提供系统软件的非易失性存储,所述系统软件包括所述系统的BIOS以及其它固件。
存储装置908可以包括计算机可访问的存储介质909(也被称为机器可读存储介质或计算机可读介质),其上存储有体现本文所述的任何一种或多种方法或功能的一个或多个指令集或软件(例如,模块、单元和/或逻辑928)。处理模块/单元/逻辑928可例如表示上述部件中的任一个,诸如自动驾驶车辆101(AV)定位模块301、感知模块302、驾驶决策模块303、规划模块304、控制模块305、代理模块306和控制器局域网消息总线307以及处理用于驾驶AV的传感器数据的一个或多个模块。处理模块928可进一步实现上述的HTML服务器308A、网络服务器接口308B和进程间通信(IPC)模块308C。处理模块/单元/逻辑928还可在其由数据处理系统900执行期间完全或至少部分地存在于存储器903和/或处理器901内,存储器903和处理器901也构成机器可存取存储介质。处理模块/单元/逻辑928还可经由网络接口装置905在网络上传输或接收。
计算机可读存储介质909也可以用来永久性地存储以上描述的一些软件功能。虽然计算机可读存储介质909在示例性实施方式中被示为单个介质,但是术语“计算机可读存储介质”应当被认为包括存储所述一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。术语“计算机可读存储介质”还应当被认为包括能够存储或编码指令集的任何介质,所述指令集用于由机器执行并且使得所述机器执行本发明的任何一种或多种方法。因此,术语“计算机可读存储介质”应当被认为包括但不限于固态存储器以及光学介质和磁性介质,或者任何其它非暂时性机器可读介质。
本文所述的处理模块/单元/逻辑928、部件以及其它特征可以实施为分立硬件部件或集成在硬件部件(诸如,ASICS、FPGA、DSP或类似装置)的功能中。此外,处理模块/单元/逻辑928可以实施为硬件装置内的固件或功能电路。而且,处理模块/单元/逻辑928可在装置和软件部件的任一组合中实现。处理逻辑可包括例如记录驾驶会话、更新HMI、使用如以上参照图7描述的一个或多个HMI来操作ADV并且实现以上参照图8描述的ADV后端的逻辑。处理逻辑还可包括例如确定ADV相对于HD地图特征空间的位置的逻辑、通过HMI更新模块103B将一个或多个网页和/或程序应用模块下载到ADV来更新ADV上的HMI的逻辑以及使用机器学习引擎103A来分析ADV记录分析模块103C的ADV驾驶会话记录的逻辑。.
应注意,虽然系统900被示出为具有数据处理系统的各种部件,但是并不旨在表示使部件互连的任何特定架构或方式;因为此类细节和本发明的实施方式没有密切关系。还应当认识到,具有更少部件或可能具有更多部件的网络计算机、手持计算机、移动电话、服务器和/或其它数据处理系统也可以与本发明的实施方式一起使用。
前述详细描述中的一些部分已经根据在计算机存储器内对数据位的运算的算法和符号表示而呈现。这些算法描述和表示是数据处理领域中的技术人员所使用的方式,以将他们的工作实质最有效地传达给本领域中的其它技术人员。本文中,算法通常被认为是导致所期望结果的自洽操作序列。这些操作是指需要对物理量进行物理操控的操作。
然而,应当牢记,所有这些和类似的术语均旨在与适当的物理量关联,并且仅仅是应用于这些量的方便标记。除非在以上讨论中以其它方式明确地指出,否则应当了解,在整个说明书中,利用术语(诸如所附权利要求书中所阐述的术语)进行的讨论是指计算机系统或类似电子计算装置的动作和处理,所述计算机系统或电子计算装置操控计算机系统的寄存器和存储器内的表示为物理(电子)量的数据,并将所述数据变换成计算机系统存储器或寄存器或者其它此类信息存储设备、传输或显示装置内类似地表示为物理量的其它数据。
本发明的实施方式还涉及用于执行本文中的操作的设备。这种计算机程序被存储在非暂时性计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机构。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存存储器装置)。
前述附图中所描绘的过程或方法可以由处理逻辑来执行,所述处理逻辑包括硬件(例如,电路、专用逻辑等)、软件(例如,实施在非暂时性计算机可读介质上)或两者的组合。尽管所述过程或方法在上文是依据一些顺序操作来描述的,但是应当了解,所述操作中的一些可以按不同的顺序执行。此外,一些操作可以并行地执行而不是顺序地执行。
本发明的实施方式并未参考任何特定的编程语言进行描述。应认识到,可以使用多种编程语言来实施如本文描述的本发明的实施方式的教导。
在以上的说明书中,已经参考本发明的具体示例性实施方式对本发明的实施方式进行了描述。将显而易见的是,在不脱离所附权利要求书中阐述的本发明的更宽泛精神和范围的情况下,可以对本发明做出各种修改。因此,应当在说明性意义而不是限制性意义上来理解本说明书和附图。
Claims (21)
1.一种操作自动驾驶车辆自动驾驶车辆的计算机实现方法,所述方法包括:
在网络服务器的网络接口处从第一客户端应用接收自动驾驶车辆命令,所述自动驾驶车辆命令使用网络通信协议来接收,其中,所述第一客户端应用是由所述网络服务器托管的多个客户端应用中的一个;
响应于所述自动驾驶车辆命令,通过远程过程调用将所述自动驾驶车辆命令传输至所述自动驾驶车辆的机器人操作系统的代理服务器,所述代理服务器配置成通过消息总线将所述自动驾驶车辆命令路由到自动驾驶车辆感知与控制系统;以及
响应于从所述自动驾驶车辆感知与控制系统接收到自动驾驶车辆命令响应,通过第一套接字连接向所述第一客户端应用多路广播所述自动驾驶车辆命令响应,并且通过第二套接字连接向所述多个客户端应用中的第二客户端应用多路广播所述自动驾驶车辆命令响应。
2.如权利要求1所述的方法,还包括:
将所述自动驾驶车辆命令响应与所述自动驾驶车辆命令响应的唯一标识符相关联地存储在所述网络服务器的结果存储器中;以及
响应于所述结果存储器的改变,打开套接字以从所述结果存储器读取所述自动驾驶车辆命令响应的包括所述唯一标识符的至少一部分,其中,所述套接字从所述结果存储器检索所述自动驾驶车辆命令响应,并且分别通过所述第一套接字连接和所述第二套接字连接向所述第一客户端应用和所述第二客户端应用传输所述自动驾驶车辆命令响应。
3.如权利要求1所述的方法,其中,所述自动驾驶车辆命令包括以下之一:
开始或停止记录自动驾驶车辆驾驶会话;
回放所记录的自动驾驶车辆驾驶会话;
打开或关闭所述自动驾驶车辆的模块;以及
检查并返回所述自动驾驶车辆的模块的状态,其中,所述自动驾驶车辆的模块包括全球定位系统、所述自动驾驶车辆的控制系统、所述自动驾驶车辆的控制局域网通信总线、所述自动驾驶车辆的定位模块和所述自动驾驶车辆的数据记录系统中的一个或多个。
4.如权利要求1所述的方法,其中,所述网络通信协议包括具象状态传输协议。
5.如权利要求1所述的方法,其中,所述自动驾驶车辆命令响应由所述网络服务器通过所述网络服务器的由所述机器人操作系统的所述自动驾驶车辆感知与控制系统调用的应用程序接口来接收。
6.如权利要求2所述的方法,其中,所述自动驾驶车辆命令响应的唯一标识符包括所述自动驾驶车辆命令响应的散表、所述自动驾驶车辆命令响应的校验和以及与由所述自动驾驶车辆感知与控制系统生成的所述自动驾驶车辆命令响应相关联的唯一标识符中的一个或多个。
7.如权利要求1所述的方法,还包括:
通过套接字读取所述自动驾驶车辆命令响应的唯一标识符;以及
确定与所述自动驾驶车辆命令响应相关联的唯一标识符是否改变。
8.一种非暂时性机器可读介质,所述非暂时性机器可读介质中存储有可执行的指令,所述指令在由处理器执行时致使所述处理器执行用于操作自动驾驶车辆(自动驾驶车辆)的操作,所述操作包括:
在网络服务器的网络接口处从第一客户端应用接收自动驾驶车辆命令,所述自动驾驶车辆命令使用网络通信协议来接收,其中,所述第一客户端应用是由所述网络服务器托管的多个客户端应用中的一个;
响应于所述自动驾驶车辆命令,通过远程过程调用将所述自动驾驶车辆命令传输至所述自动驾驶车辆的机器人操作系统的代理服务器,所述代理服务器配置成通过消息总线将所述自动驾驶车辆命令路由到自动驾驶车辆感知与控制系统;以及
响应于从所述自动驾驶车辆感知与控制系统接收到自动驾驶车辆命令响应,通过第一套接字连接向所述第一客户端应用多路广播所述自动驾驶车辆命令响应,并且通过第二套接字连接向所述多个客户端应用中的第二客户端应用多路广播所述自动驾驶车辆命令响应。
9.如权利要求8所述的介质,其中,所述操作还包括:
将所述自动驾驶车辆命令响应与所述自动驾驶车辆命令响应的唯一标识符相关联地存储在所述网络服务器的结果存储器中;以及
响应于所述结果存储器的改变,打开套接字以从所述结果存储器读取所述自动驾驶车辆命令响应的包括所述唯一标识符的至少一部分,其中,所述套接字从所述结果存储器检索所述自动驾驶车辆命令响应,并且分别通过所述第一套接字连接和所述第二套接字连接向所述第一客户端应用和所述第二客户端应用传输所述自动驾驶车辆命令响应。
10.如权利要求8所述的介质,其中,所述自动驾驶车辆命令包括以下之一:
开始或停止记录自动驾驶车辆驾驶会话;
回放所记录的自动驾驶车辆驾驶会话;
打开或关闭所述自动驾驶车辆的模块;以及
检查并返回所述自动驾驶车辆的模块的状态,其中,所述自动驾驶车辆的模块包括全球定位系统、所述自动驾驶车辆的控制系统、所述自动驾驶车辆的控制局域网通信总线、所述自动驾驶车辆的定位模块和所述自动驾驶车辆的数据记录系统中的一个或多个。
11.如权利要求8所述的介质,其中,所述网络通信协议包括具象状态传输协议。
12.如权利要求8所述的介质,其中,所述自动驾驶车辆命令响应由所述网络服务器通过所述网络服务器的由所述机器人操作系统的所述自动驾驶车辆感知与控制系统调用的应用程序接口来接收。
13.如权利要求9所述的介质,其中,所述自动驾驶车辆命令响应的唯一标识符包括所述自动驾驶车辆命令响应的散表、所述自动驾驶车辆命令响应的校验和以及与由所述自动驾驶车辆感知与控制系统生成的所述自动驾驶车辆命令响应相关联的唯一标识符中的一个或多个。
14.如权利要求8所述的介质,其中,所述操作还包括:
通过套接字读取所述自动驾驶车辆命令响应的唯一标识符;以及
确定与所述自动驾驶车辆命令响应相关联的唯一标识符是否改变。
15.一种网络服务器,包括:
处理器;以及
存储器,联接至所述处理器以存储指令,所述指令在由所述处理器执行时,致使所述处理器执行用于操作自动驾驶车辆(自动驾驶车辆)的操作,所述操作包括:
在网络服务器的网络接口处从第一客户端应用接收自动驾驶车辆命令,所述自动驾驶车辆命令使用网络通信协议来接收,其中,所述第一客户端应用是由所述网络服务器托管的多个客户端应用中的一个;
响应于所述自动驾驶车辆命令,通过远程过程调用将所述自动驾驶车辆命令传输至所述自动驾驶车辆的机器人操作系统的代理服务器,所述代理服务器配置成通过消息总线将所述自动驾驶车辆命令路由到自动驾驶车辆感知与控制系统;以及
响应于从所述自动驾驶车辆感知与控制系统接收到自动驾驶车辆命令响应,通过第一套接字连接向所述第一客户端应用多路广播所述自动驾驶车辆命令响应,并且通过第二套接字连接向所述多个客户端应用中的第二客户端应用多路广播所述自动驾驶车辆命令响应。
16.如权利要求15所述的网络服务器,其中,所述操作还包括:
将所述自动驾驶车辆命令响应与所述自动驾驶车辆命令响应的唯一标识符相关联地存储在所述网络服务器的结果存储器中;以及
响应于所述结果存储器的改变,打开套接字以从所述结果存储器读取所述自动驾驶车辆命令响应的包括所述唯一标识符的至少一部分,其中,所述套接字从所述结果存储器检索所述自动驾驶车辆命令响应,并且分别通过所述第一套接字连接和所述第二套接字连接向所述第一客户端应用和所述第二客户端应用传输所述自动驾驶车辆命令响应。
17.如权利要求15所述的网络服务器,其中,所述自动驾驶车辆命令包括以下之一:
开始或停止记录自动驾驶车辆驾驶会话;
回放所记录的自动驾驶车辆驾驶会话;
打开或关闭所述自动驾驶车辆的模块;以及
检查并返回所述自动驾驶车辆的模块的状态,其中,所述自动驾驶车辆的模块包括全球定位系统、所述自动驾驶车辆的控制系统、所述自动驾驶车辆的控制局域网通信总线、所述自动驾驶车辆的定位模块和所述自动驾驶车辆的数据记录系统中的一个或多个。
18.如权利要求15所述的网络服务器,其中,所述网络通信协议包括具象状态传输协议。
19.如权利要求15所述的网络服务器,其中,所述自动驾驶车辆命令响应由所述网络服务器通过所述网络服务器的由所述机器人操作系统的所述自动驾驶车辆感知与控制系统调用的应用程序接口来接收。
20.如权利要求16所述的网络服务器,其中,所述自动驾驶车辆命令响应的唯一标识符包括所述自动驾驶车辆命令响应的散表、所述自动驾驶车辆命令响应的校验和以及与由所述自动驾驶车辆感知与控制系统生成的所述自动驾驶车辆命令响应相关联的唯一标识符中的一个或多个。
21.如权利要求15所述的网络服务器,其中,套接字读取所述自动驾驶车辆命令响应的唯一标识符,并且确定与所述自动驾驶车辆命令响应相关联的唯一标识符是否改变。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/640,867 US10452065B2 (en) | 2017-07-03 | 2017-07-03 | Human-machine interface (HMI) architecture |
US15/640,867 | 2017-07-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109213144A true CN109213144A (zh) | 2019-01-15 |
CN109213144B CN109213144B (zh) | 2021-10-26 |
Family
ID=64738001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810687340.4A Active CN109213144B (zh) | 2017-07-03 | 2018-06-28 | 人机接口(hmi)架构 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10452065B2 (zh) |
CN (1) | CN109213144B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12035209B2 (en) | 2020-07-07 | 2024-07-09 | Metrolla Inc. | Method for wireless event-driven everything-to-everything (X2X) payload delivery |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107589745B (zh) * | 2017-09-22 | 2021-04-16 | 京东方科技集团股份有限公司 | 驾驶方法、车载驾驶端、远程驾驶端、设备和存储介质 |
US11005759B2 (en) * | 2018-08-08 | 2021-05-11 | Google Llc | Delegated communication methods and systems for a wearable device |
CN109672730B (zh) * | 2018-12-17 | 2021-07-06 | 北京百度网讯科技有限公司 | 远程控制方法、装置、设备及计算机可读存储介质 |
US11076022B2 (en) * | 2018-12-31 | 2021-07-27 | Lyft, Inc. | Systems and methods for implementing robotics frameworks |
CN110220517A (zh) * | 2019-07-08 | 2019-09-10 | 紫光云技术有限公司 | 一种结合环境语意的室内机器人鲁棒slam方法 |
CN112579370B (zh) * | 2019-09-30 | 2023-07-28 | 北京车和家信息技术有限公司 | 一种车载hmi设备的检测方法及装置 |
CN114044000B (zh) * | 2021-11-05 | 2023-06-23 | 东风汽车集团股份有限公司 | 一种自动驾驶车辆hmi人机交互的安全冗余系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080040005A1 (en) * | 1995-06-07 | 2008-02-14 | Automotive Technologies International, Inc. | Vehicle Component Control Methods and Systems Based on Vehicle Stability |
CN102196037A (zh) * | 2010-03-17 | 2011-09-21 | 三星电子株式会社 | 访问装置的服务的方法和设备 |
US20120047214A1 (en) * | 2010-08-23 | 2012-02-23 | Daly Kevin C | Private mobile messaging and data communications apparatus and method of managing organizational messaging |
CN102932516A (zh) * | 2011-07-25 | 2013-02-13 | 福特全球技术公司 | 在基于车辆的计算系统和远程应用之间通信的设备 |
CN103502984A (zh) * | 2011-04-29 | 2014-01-08 | 摩托罗拉移动有限责任公司 | 用于信息的替代下载或上载的方法和系统 |
EP2800948A1 (en) * | 2012-01-05 | 2014-11-12 | Samsung Electronics Co., Ltd. | Navigation system for vehicle and navigation method thereof |
CN105094767A (zh) * | 2014-05-06 | 2015-11-25 | 华为技术有限公司 | 自动驾驶车辆调度方法、车辆调度服务器及自动驾驶车辆 |
CN106681250A (zh) * | 2017-01-24 | 2017-05-17 | 浙江大学 | 一种基于云的智能汽车控制与管理系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6370475B1 (en) * | 1997-10-22 | 2002-04-09 | Intelligent Technologies International Inc. | Accident avoidance system |
US6420975B1 (en) * | 1999-08-25 | 2002-07-16 | Donnelly Corporation | Interior rearview mirror sound processing system |
-
2017
- 2017-07-03 US US15/640,867 patent/US10452065B2/en active Active
-
2018
- 2018-06-28 CN CN201810687340.4A patent/CN109213144B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080040005A1 (en) * | 1995-06-07 | 2008-02-14 | Automotive Technologies International, Inc. | Vehicle Component Control Methods and Systems Based on Vehicle Stability |
CN102196037A (zh) * | 2010-03-17 | 2011-09-21 | 三星电子株式会社 | 访问装置的服务的方法和设备 |
US20120047214A1 (en) * | 2010-08-23 | 2012-02-23 | Daly Kevin C | Private mobile messaging and data communications apparatus and method of managing organizational messaging |
CN103502984A (zh) * | 2011-04-29 | 2014-01-08 | 摩托罗拉移动有限责任公司 | 用于信息的替代下载或上载的方法和系统 |
CN102932516A (zh) * | 2011-07-25 | 2013-02-13 | 福特全球技术公司 | 在基于车辆的计算系统和远程应用之间通信的设备 |
EP2800948A1 (en) * | 2012-01-05 | 2014-11-12 | Samsung Electronics Co., Ltd. | Navigation system for vehicle and navigation method thereof |
CN105094767A (zh) * | 2014-05-06 | 2015-11-25 | 华为技术有限公司 | 自动驾驶车辆调度方法、车辆调度服务器及自动驾驶车辆 |
CN106681250A (zh) * | 2017-01-24 | 2017-05-17 | 浙江大学 | 一种基于云的智能汽车控制与管理系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12035209B2 (en) | 2020-07-07 | 2024-07-09 | Metrolla Inc. | Method for wireless event-driven everything-to-everything (X2X) payload delivery |
Also Published As
Publication number | Publication date |
---|---|
US10452065B2 (en) | 2019-10-22 |
CN109213144B (zh) | 2021-10-26 |
US20190004510A1 (en) | 2019-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109213144A (zh) | 人机接口(hmi)架构 | |
JP6644742B2 (ja) | 頑健で効率的な車両測位用のアルゴリズム及びインフラ | |
KR102096726B1 (ko) | 자율 주행 차량의 운행을 위한 제어 오류 보정 계획 방법 | |
EP3315388B1 (en) | Spring system-based change lane approach for autonomous vehicles | |
US9707961B1 (en) | Tracking objects within a dynamic environment for improved localization | |
US20190318267A1 (en) | System and method for training a machine learning model deployed on a simulation platform | |
CN110377025A (zh) | 用于自动驾驶车辆的传感器聚合框架 | |
CN109489673A (zh) | 用于自动驾驶车辆的数据驱动地图更新系统 | |
CN110377024A (zh) | 用于自动驾驶车辆的自动数据标注 | |
CN110239562A (zh) | 自动驾驶车辆的基于周围车辆行为的实时感知调整与驾驶调适 | |
CN110345955A (zh) | 用于自动驾驶的感知与规划协作框架 | |
US20210373161A1 (en) | Lidar localization using 3d cnn network for solution inference in autonomous driving vehicles | |
US20210354718A1 (en) | Lidar localization using rnn and lstm for temporal smoothness in autonomous driving vehicles | |
CN109937343A (zh) | 用于自动驾驶车辆交通预测中的预测轨迹的评估框架 | |
CN109429518A (zh) | 基于地图图像的自动驾驶交通预测 | |
CN108537326A (zh) | 用于自动驾驶车辆的方法、介质和系统 | |
CN108604095A (zh) | 动态调整自动驾驶车辆的转向率的方法 | |
JP2021514885A (ja) | 自動運転車のlidar測位に用いられるディープラーニングに基づく特徴抽出方法 | |
CN108399218A (zh) | 基于Walsh内核投影技术的自动驾驶车辆定位 | |
CN108268033A (zh) | 使用基于图的车道变换指导来操作无人驾驶车辆的方法和系统 | |
CN109196432A (zh) | 用于自动驾驶车辆的速度控制参数估计方法 | |
CN108089571A (zh) | 用于预测无人驾驶车辆的车辆交通行为以做出驾驶决策的方法和系统 | |
CN110096053A (zh) | 用于自动驾驶车辆的驾驶轨迹生成方法、系统和机器可读介质 | |
CN108025742A (zh) | 使用电极的自动驾驶车辆人类驾驶员接管机制 | |
CN108139756A (zh) | 为自动驾驶车辆构建周围环境以制定驾驶决策的方法和系统 |
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 |