高速路自动驾驶功能HWP功能定义
一、功能定义
高速路自动驾驶功能HWP是指在一般畅通高速公路或城市快速路上驾驶员可以放开双手双脚,同时注意力可在较长时间内从驾驶环境中转移,做一些诸如看手机、接电话、看风景等活动,该系统最低工作速度为60kph。
如上两种不同环境和速度段下的自动驾驶功能均需要在超出其限定ODD范围外的场景、系统本身运行故障出现降级、其他车辆可能出现明显故障时对驾驶员进行报警,此时驾驶员在系统所能超控整车的最大时间内做出反应并接管车辆。故此过程中,驾驶员的所有车内表现都要求驾驶员能够在足够的时间内具备及时的接管能力。故对于有限自动驾驶而言,不能允许驾驶员做一些反应时间更长的举动,如中度、重度疲劳或离开驾驶位。
二、HWP相应的主要的功能状态包含如下:
1、待机Passive:
初始化过程,包括在TJP/HWP未激活时,检查TJP/HWP激活条件,确保在ODD范围外的任何条件均无法激活TJP/HWP系统。当检查到TJP/HWP系统激活条件都满足时,通过视觉或听觉的方式提醒驾驶员系统此时可激活。当检查到激活条件有不满足情况时,系统会根据其不满足条件的部分自动筛选并排序,通过仪表或声音提示驾驶员不可激活的原因。由于自动驾驶功能需要搭载高精地图具备导航功能,当系统接收到导航地图发出的前方环境信息及目的地信息,可通过主动推送的方式提醒驾驶员在某一段环境较好的路段打开TJP/HWP功能进行自动驾驶体验。当然,用户也可以手动通过车机通过个性化设置选择关闭TJP/HWP系统。TJP/HWP系统是凌驾于L2级系统待机策略之上的,故两者的待机条件应该以L2级为基础进行设置,区分横向和纵向进行可待机激活状态;
1)满足TJA/ICA激活条件:
- 所有传感器无故障;
- 执行器无故障且支持的ADAS附加功能可用(如ESP的VAF功能可用、EPS的转向状态可用);
- 车辆信息输入正常(如轮速、转角、横摆角等信息);
- 驾驶员驾驶状态正常(如安全带已系上、车门已关好、引擎盖已关好、档位已挂到D/S档);
2)满足TJP/HWP单独要求激活条件:
- 检测到高精度地图输入的车辆道路环境处于ODD范围内;
- 检测到驾驶员激活功能时状态不处于重度疲劳或注意力严重分散状态;
- 检测到主辅控制器均无故障,且状态正常;
说明:① 对于TJP/HWP单独要求的激活条件而言,其中,检测车辆处于ODD范围内,要求系统搭载较高精度和准确度的高精度地图,要求高精度地图可以实现车道级别的定位。
② 以上环境感知是功能激活的重点项目,对于高精度地图定位感知的环境信息需要融合激光雷达信息进行相应的点云数据重建,以便更为精准的对环境和车道信息均进行探测。
③ 对于自动驾驶控制而言,对于驾驶员接管能力需要提出相应要求,未激活前已经检测到驾驶员重度疲劳或长时间注意力不集中时,应禁止驾驶员激活自动驾驶,当然如果是激活之后才进入重度疲劳或分散时,可以适当缩短报接管的时间。④ 对于自动驾驶而言,要求当控制器故障时,如果已经激活,可以启用备用控制器降级后进行驾驶控制,但是如果在激活之前控制器故障则不能进行激活,以保证安全。
2、激活Active:
当满足如上提出的所有可激活待机条件后,驾驶员通过主动激活或推送的方式进入正常使用TJP/HWP功能时,系统便能实现正常的自动驾驶,执行整个动态驾驶任务,整个控制逻辑中包括如下环境感知、行为决策、横纵向运动控制、执行反馈调节、显示报警等。具体可包括如下功能对比:
功能状态系统 | TJP | HWP |
纵向功能 | 1)自动保持误差范围内与前车一定距离;2)自动保持误差范围内与前车一定速度;3)自动跟随前车停车及起步;4)当有新目标切入时,自动完成目标切换,同时进行适当减速;5)当本车前方目标切出时,自动完成目标切换,同时进行适当加速;6)识别到环境限速信息(包括地图信息或交通流信息)后自动进行车速限制;7)速度高于TJP作用速度范围后,自动进入HWP功能控制 | 1)自动保持误差范围内与前车一定距离;2)自动保持误差范围内与前车一定速度;3)当有新目标切入时,自动完成目标切换,同时进行适当减速;4)当本车前方目标切出时,自动完成目标切换,同时进行适当加速;5)识别到环境限速信息(包括地图信息或交通流信息)后自动进行车速限制;6)速度低于HWP作用速度后,自动进入TJP功能控制; |
横向功能 | 1)根据导航信息计算相应的横向控制轨迹,并以航向角或横向位移输出进行横向转角控制;2)自动保持一定偏差内的横向轨迹对中功能;3)自动根据弯道半径调整本车横向对中偏移量;4)自动根据本车道旁边车道车辆偏离该车道风险自动条件横向对中偏移量;5)自动根据横向执行反馈结果及环境变化调整横向轨迹偏差;6)速度高于TJP作用速度范围后,自动进入HWP功能控制 | 1)根据导航信息计算相应的横向控制轨迹,并以航向角或横向位移输出进行横向转角控制;2)自动保持一定偏差内的横向轨迹对中功能;3)自动根据弯道半径调整本车横向对中偏移量;4)自动根据本车道旁边车道车辆偏离该车道风险自动条件横向对中偏移量;5)自动根据横向执行反馈结果及环境变化调整横向轨迹偏差;6)速度低于HWP作用速度后,自动进入TJP功能控制; |
监控功能 | 自动监控驾驶员状态,并根据监控结果执行相应的应对措施。1)当TJP激活时,检测到驾驶员状态为疲劳为重度或注意力分散时间较长时,则缩短TJP操控时间,提前进入TJP系统自身报警;2)当检测到驾驶员状态为重度疲劳或注意力分散时间较长时,则无法进入TJP系统可用性待机状态;3)当驾驶员监控系统检测到TJP开启时,延迟一定时间进入DMS系统自身报警; | 自动监控驾驶员状态,并根据监控结果执行相应的应对措施。1)当HWP激活时,检测到驾驶员状态为疲劳为重度或注意力分散时间较长时,则缩短HWP操控时间,提前进入报警;2)当检测到驾驶员状态为重度疲劳或注意力分散时间较长时,则无法进入HWP系统可用性待机状态;3)当驾驶员监控系统检测到HWP开启时,延迟一定时间进入DMS系统自身报警; |
报警功能 | 当系统检测到有一定碰撞危险时,自动将风险进行分级,并通过不同的级数报警提示驾驶员; | 当系统检测到有一定碰撞危险时,自动将风险进行分级,并通过不同的级数报警提示驾驶员; |
安全避撞 | TJP系统须避免在ODD范围内产生任何碰撞事故,规避本车可能存在的责任事故,其中包含对前方车辆、行人、骑行者、一般障碍物等的避撞;避撞过程包含一定速度范围内的减速至停车,并提醒驾驶员。 | HWP系统须避免在ODD范围内产生任何碰撞事故,规避本车可能存在的安全事故,其中包含对前方车辆的前碰以及旁边车辆的侧碰;避撞过程包含一定速度范围内的减速(减速后可能退出至TJP功能控制),并提醒驾驶员。 |
说明:1)HWP主要用于高速自动驾驶,TJP主要用于中低速自动驾驶,两者在纵向控制上主要是通过速度进行区分;2)HWP主要用于高速情况下自动驾驶,当TJP控制的自动驾驶由于如下原因导致速度提升至其作用范围外时,TJP需要切换为HWP自动驾驶控制;
工况说明:
- 本车跟随前车进行TJP跟车控制,本车设置车速(该车速大于TJP运行车速)大于前车车速,前车加速离开后,本车加速到设置车速,此过程中会由TJP直接切换为HWP进行自动驾驶控制;
- 本车跟随前车进行TJP定速巡航控制,驾驶员通过按键或踩踏油门踏板设置本车车速增加到大于TJP运行车速,本车加速到设置车速,此过程中会由TJP直接切换为HWP进行自动驾驶控制;
工况说明:
- 本车跟随前车进行HWP定速巡航控制,驾驶员设置本车车速增加到大于前车车速,前车减速制动,本车跟随前车减速制动后其速度小于HWP运行速度范围,此过程中会由HWP直接切换为TJP进行自动驾驶控制;
- 本车跟随前车进行TJP定速巡航控制,驾驶员通过按键设置本车车速减速到小于HWP运行车速,本车减速到设置车速,此过程中会由HWP直接切换为TJP进行自动驾驶控制;
注意当驾驶员通过踩制动踏板引起的速度变化会直接退出TJP和HWP,整个自动驾驶将会退出;3)对于横向功能而言,由于执行转角或扭矩控制时,需要考虑到由功能安全因素引起的转角或转角速率限制是随速变化的,在某些低速情况下,转角或转角速度会比高速时范围更大。
4)对于安全避撞功能而言,TJP系统为了完成避撞后,如果其减速过程比较紧急使得减速度值超过AEB触发的阈值条件(一般AEB-P部分制动为-3.5m/s2,AEB-M全力制动为-6至-8m/s2),则跟车停止后TJP控制拉起手刹保持车辆不动后直接退出纵向控制,如果该减速度值小于AEB阈值触发条件,则TJP跟车停止后可以跟随前车起步。5)安全避撞功能包含正向避撞和侧向避撞功能两种,正向避撞触发应充分考虑AEB碰撞功能触发条件,侧向避撞应该充分考虑ELK紧急纠偏条件,当以上两种功能触发时,则TJP不再发送制动或转向指令给相关联执行器(此时可认为其处于临时退出状态),以上两种安全性功能执行完毕后,TJP重新介入并进行驾驶控制;
3、驾驶员超越:
这里的驾驶员超越包含了横向超越和纵向超越,其原理均和原来L2级以下超越逻辑保持一致。
纵向超越:当驾驶员踩踏油门踏板时,若该踏板开度达到某个阈值(一般为2%-5%)时,则认为本车满足纵向超越,此时纵向完全由驾驶员控制,本车将被加速到一定速度(该速度小于系统最大运行范围130kph)。当驾驶员松开踏板导致该踏板开度小于某阈值时,则退出纵向控制,TJP/HWP恢复纵向系统控制。
横向超越:当驾驶员转动方向盘时,若该方向盘扭矩大于某阈值(一般为1.5-2Nm)时,则认为本车满足横向超越,此时系统处于临时退出状态,当在一定时间内驾驶员松开方向盘后,系统重新实现对整车的控制,若驾驶员长时间控制方向盘进行转向时,整个横向控制就会不可逆的退出。
4、降级控制Functional Degradation Control:
系统降级是自动驾驶过程中经常会出现的一类可预期故障,在系统工程设计初期就应该对各类系统故障或失效可能引起的原因及后果进行分析,以便在出现类似问题后,启动相关逻辑进行驾驶风险最小化规避。如在激活后,如果TJP/HWP系统检测到本车超出ODD范围,或者系统出现相关故障时,该两系统需要在自
身最大能力范围内对车辆进行继续控制,以便为驾驶员腾出反应时间及接管时间。如果驾驶员无反应或接管意图不够明确,则系统需要进行控制升级,如通过座椅震动或方向盘震动提示驾驶员立即采取强有力的接管措施。对于TJP和HWP而言,其降级控制策略有所不同,对于TJP而言,该系统功能工作速度段是处于60kph以下的,故TJP系统降级时,可启动安全停车逻辑将本车进行靠边刹停,若此时系统处于高速段的自动驾驶控制HWP中,则在系统降级时,HWP控制本车进行减速,并且尽最大努力将车安全的换道后靠边行驶,此换道过程可以通过接受高精度地图进行车道级定位到的应急车道区域,控制本车换道至应急车道或专用停车道。
三、传感器架构定义
自动驾驶设计过程必须要求具备丰富的传感器和足够能力的控制器,其中传感器需要包含星车主系统所必需的毫米波雷达、激光雷达、角雷达、前视摄像头以及融合泊车辅助系统中的环视摄像头、超声波雷达等传感器,另外对于车机交互单元还需要有高精度定位系统(带有惯性导航)、驾驶员监控系统等。
传感器sensor | 数量 | 功能说明 | 探测范围 |
前雷达 Front radar | 1 | 负责进行前方障碍物距离与速度探测,其要求在两种不同波束下(即水平方向开角范围不同时)具备不同的探测距离; | 160-200m |
前摄像头 Front Camera | 1 | 对前方障碍物形状,类型进行探测,同时对障碍物距离速度等信息进行补充探测; | 130-160m |
角雷达 Conner radar | 4 | 对旁边邻车道车辆或障碍物信息(包括距离、速度等)进行探测; | 60-70m |
环视摄像头 Around View | 4-6 | 对本车两侧近距离的车道线及障碍物进行探测后输出相应的探测值; | 10-30m |
超声波雷达 Ultrasonic Sensors | 8-12 | 实现低速跟车时对横穿障碍物的探测,对于增加跟停自动起步时间是至关重要要的;超声波雷达也可作为行车过程中旁边车道障碍物的补充探测方式; | 5-8m |
驾驶员监控摄像头DMS 监控摄像头 | 1 | 监控驾驶员状态信息,对驾驶员接管能力进行实时判断; | 1-1.5m |
导航定位输入 GPS+IMU | 1 | 通过输入当前车辆的实际定位信息,同时与激光雷达进行融合后输出相应的车辆高精度地图定位信息,包含如本车处于何种道路类型、本车处于哪一条车道、本车前方限速信息等; | 实时更新,20cm精度 |
控制器 Controller | 数量 | 功能说明 | 性能指标 |
主控制器 Domain Controller | 1 | 负责自动驾驶算法控制的中央单元,将传感器输入的相关信息进行计算,并采用一定的决策控制算法进行决策,最后生成执行指令输出给执行器执行,其过程中要求根据执行器反馈的执行情况实时调整输出命令状态; | ASIL D |
安全冗余控制器 Redundancy Controller | 1 | 当主控制器出现各种不明原因造成的功能障碍时,需要冗余控制器接管整车控制,将车辆在安全可靠地范围内进行报警并刹停车辆; | ASIL C\D |
四、系统架构定义
由于自动驾驶系统已经实现了从人控车到系统控车的过度,也即转变了原来的人机共驾方案到机器驾驶代替人的方案,而这一方面的转变要求系统具备极高的功能安全等级,其稳定性、可靠性均有很高的要求。由于传感器性能始终受制于自身硬件的约束,无法真正完全保证传感器的精确探测性能,做到不漏报不误报,这就使得在系统控制中可能导致因传感器误输入所产生的误控制的结果。此外,控制器与执行器虽然功能安全较传感器高,但是也无法完全规避由于自身失效带来的系统失效问题,这就要求在自动驾驶系统要求架构设计上尽量设计出相应的冗余控制方案,当传感器或控制器出现失效或功能不可用时,启动相应的冗余控制方案来实现相应的控制逻辑,以便保证真正自动驾驶的稳定性能。
五、系统通信硬件设计
从自动驾驶系统架构中不难看出,其中主要包含了几大部分:感知、决策、执行及显示控制中。其数据连接交互形式表示为如下几种形式:Hardwire、LVDS、Lin、CAN、CANFD、FLEXRAY、Ehternet几种,主要体现在通信方式及通信效率有所不同。对于自动驾驶系统而言,需要针对一些功能安全等级较高的控制器之间实现及时、高效且稳定可靠地通信链路,比如传感器与自动驾驶控制器之间,自动驾驶控制器与制动执行控制器之间均要求极高的功能安全策略,故必须采用性能最优的CAN通信策略,这里可以采用CANFD。
通信类型 | 通信效率 | 连接控制器 | 备注 |
HardWire | 无 | 转化物理机械接触信号为电压或电流信号的部分:方向盘按键TJP/HWP Button;油门踏板Accel Pedal;制动踏板Brake Pedal;换挡器Gear Selection;震动座椅 Vibration seat(可选); | 自动驾驶功能设计中,诸如方向盘按键,座椅震动一类均采用的硬线连接技术,其原理是直接将与驾驶员接触的信号通过物理接触转化为电压或电流信息输入给系统控制器。 |
LVDS | 155M | 与视频接入有关的传感器控制器:影音娱乐系统HU;驾驶员监控系统DMS;抬头显示系统HUD;(可选)仪表显示系统IP; | 低电压差分信号LVDS,是一种低功耗、低误码率、低串扰和低辐射的差分信号技术,其技术的核心是采用极低的电压摆幅高速差动传输数据,可以实现点对点或一点对多点的连接,其传输介质可以是铜质的PCB连线,也可以是平衡电缆。 |
Lin | 20k | 用于传输效率要求不高的控制器:车灯、雨刮、空调、方向盘等; | LIN总线是基于UART/SCI(通用异步收发器/串行接口)的低成本串行通讯协议。其目标定位于车身网络模块节点间的低端通信,主要用于智能传感器和执行器的串行通信,而这正是CAN总线的带宽和功能所不要求的部分。 |
CAN | 5K-1M | 功能安全需求较低的传感控制器:发动机管理系统EMS;变速器管理单元TCU;转角传感器SAS;安全气囊控制器SRS;座舱域控制器ICCU;车身控制单元BCM;车载通信基础终端TBOX; | CAN是目前主要的汽车局部网络通信协议,他具有实时性好、稳定性高、采取非破坏仲裁技术、信号位区分优先级等功能。与传统CAN通信协议相比,CAN FD主要的优势在于:• 更高的总线效率:5Mbps的最大数据传输速率,支持高达64字 节的有效负荷;• 兼容经典CAN:无需新的连接器或电缆,但需要更新的处理器,新处理器需要包含CAN FD控制器和相关的CAN FD收发器;• 受可用解决方案限制的转型:当前的多芯片解决方案需要更高的成本和板载空间。 |
CANFD | 2M-5M | 功能安全要求等级较高的传感控制器:自动驾驶主控制器TJP/HWP ECU;自动驾驶辅助控制器RedundantECU;雷达传感器Radar/Lidar;前视摄像头Camera;制动控制系统EPBi;转向控制系统EPS; | |
Ethernet | 10M-100M | 高精度地图HDMap; | 车载以太网传输速率较高适用于诸如高精地图一类对传输实时性要求较高的场合。但其需要增加交换机,故成本也较高,在成本可接受的范s围内可以将以太网传输作为CAN线传输的备份 |
六、系统冗余设计
冗余设计包括如下几个部分:电源、定位、感知、控制器、执行器各个部分。
1)电源模块 — 每个关键的驱动系统都有两个独立的电源系统;
2)定位模块 — 两套独立的惯性测量系统;(可选)
3)感知模块— 激光雷达、毫米波雷达和视觉感知多传感器检测;(可选)
4)控制器模块 — 备用控制器一直后台运行,当主系统发生故障时,则备用控制器向车辆的执行系统发出控制指令,控制车辆安全停车;
5)执行器模块 — 制动系统和转向系统均采用冗余设计。
对于冗余设计而言,其功能安全要求较高的部分主要集中在中央控制及决策执行单元,故主要需要对中央控制单元及决策控制单元进行双冗余设计。
1、主控制器模块:
采用主控制器和辅助控制器两个进行双向控制,主控制器主要负责自动驾驶基础功能的计算与处理,包含对感知数据的后端处理,决策控制的模块处理,生成后端执行器能够执行的车辆数据(如纵向加减速度、转向角度等)。此外,主控制器还会接收来自各级传感器回传的车辆执行数据,分析其执行的程度,通过反馈回调将减小发送数据的误差。此外,由于自动驾驶系统功能需要考虑在系统失效时对系统当时的数据状态,以便在售后事故处理过程中进行原因分析,故主控制器还要实现数据记录相关工能。
2、辅助控制器模块:
当自动驾驶主控制器模块由于自身原因失效而无法继续控制整车时,需要启动辅助控制器模块接管进行车辆的安全控制,其设计逻辑是与主控制器实现直接的实时通信,在辅助控制器内部构建安全校验模块,当该模块校验的主控制器失效或通信中断时,启动辅助控制器开始进行安全控制,一般的安全控制策略包括如下:
1)继续接收高精地图及摄像头发出的道路环境信息,计算并发送一定的转角控制本车换道转向至车道最边缘;
2)继续接收前雷达和角雷达发出的障碍物信息,并控制车辆在最终道边以一定的减速度进行安全停车,停车后自动拉起电子手刹,打起双闪灯提示后车;
3)当检测到主控制器失效的同时,通过仪表发出相应的报警提示信息进行报警提示驾驶员立即接管车辆控制。
3、执行器模块:
对于执行器冗余控制来说主要是进行安全冗余控制,一般情况下加速控制对安全不产生积极控制影响,而安全控制主要集中在制动控制及转向控制逻辑中。故为了实现执行器的辅助安全控制,就需要进行制动及转向的双冗余控制。
1)制动控制单元制动控制的冗余控制包括通过主制动器对轮岗压力进行增压、保压、减压控制。该控制逻辑与传统辅助驾驶控制系统ADAS保持一致,差异表现在对该控制器的要求制动执行端的响应速度和性能比ADAS提升一个等级。对于辅助制动单元而言,当主制动控制单元失效时,启动辅助制动控制器进行强力制动,以博世的IBooster实现冗余制动控制为例,该控制器实现了与ESP结合,iBooster 和ESP均可通过机械推动力,帮助车辆在任何减速情况下停止行驶。通过电机工作,iBooster 能够实现主动建压,而无需驾驶员踩下制动踏板。
与典型的ESP系统相比,获得所需制动力的速度提高了三倍,并且可通过电子控制系统进行更加精确的调节。紧急情况下,iBooster 可在约120 毫秒内自动建立全制动压力。这不仅有助于缩短制动距离,还能在碰撞无法避免时降低撞击速度和对当事人的伤害风险。
2)转向控制单元一般的转向控制器EPS功能安全等级为ASILD级(诸多级别中故障最严重的级别),由此可看出其在失效率方面的严格要求。用于ADAS的基本思考针对目前的EPS,安全目标主要考虑两种故障模式被划分为ASIL-D级别,主要包括如下两种失效是自动驾驶无法接受的:
① 转向的失控:驾驶没有操控的情况下,车辆系统并没有给出自动转向等指示,可转向盘却会自动旋转;自动驾驶系统在发出转向角给执行器执行后,其执行器执行的转向角相对于发出的转向角出现严重超调而出现转向失控;
② 转向器的锁止:电机死锁可能由电气失效或机械失效导致。尤其在高速时,这种意外的扭矩会给司机,乘客和行人带来危险。这种危险可能源于电控单元ECU的故障,或电机及转向系统的机械故障。故转向冗余设计中,需要考虑确保电机不能锁死,保证司机能正常转向。由此,对转向系统设置双冗余是提升自动驾驶功能安全的保证因素,具体可参照如下图进行转向的双冗余设计。
4、双电源驱动系统
除了业内都在重点关注自动驾驶系统的自身硬件和软件算法是否满足相应的功能安全要求外,从车辆供电系统这个角度来分析,目前绝大多数传统车辆只有单主电源的供电系统,当这些车辆单路供电网络因故障无法提供电源时,整车电器负载包括自动驾驶系统就无法正常工作,而对此时正处于自动驾驶模式的车辆,就存在失去控制的风险。对比人工驾驶,自动驾驶在解放驾驶员手脚和眼睛的同时,也对车辆在自动驾驶下的安全性提出了更高的要求。比如在车辆驾驶安全和自动驾驶电器负载失去电源供电时,整个自动驾驶系统就无法正常运行,那车辆在自动驾驶模式下就存在安全隐患。为了提醒驾驶员立即接管驾驶并确保接管期间的驾驶安全,需要有备用电源对这些负载进行供电,确保车辆驾驶安全。典型的双冗余电源方案设计方案如下:
相关文章:
高速路自动驾驶功能HWP功能定义
一、功能定义 高速路自动驾驶功能HWP是指在一般畅通高速公路或城市快速路上驾驶员可以放开双手双脚,同时注意力可在较长时间内从驾驶环境中转移,做一些诸如看手机、接电话、看风景等活动,该系统最低工作速度为60kph。 如上两种不同环境和速度…...
Leetcode113. 路径总和 II
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 官方题解:力扣(LeetCode)官网 - 全…...
分布式锁之redis实现
docker安装redis 拉取镜像 docker pull redis:6.2.6 查看镜像 启动容器并挂载目录 需要挂在的data和redis.conf自行创建即可 docker run --restart always -d -v /usr/local/docker/redis/redis.conf:/usr/local/etc/redis/redis.conf -v /usr/local/docker/redis/data:/dat…...
Idea中如何在一个项目中引入其他子模块?
首先在Settings打开Project Structure,然后找到Modules,点击加号点击import module,将需要引进的module引进来。 然后点击Artifacts 可以看到比如说day22…这个是我现在的项目,day16是我需要引入的。那么就在红色横线上面右键点第…...
UDP协议概述
传输层里比较重要的两个协议,一个是 TCP,一个是 UDP。TCP 是面向连接的,UDP 是面向无连接的。 所谓的建立连接,是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方交互的状态,用这样的数据结…...
Python-tracemalloc-跟踪内存分配
tracemalloc 模块是一个用于对 python 已申请的内存块进行debug的工具。它能提供以下信息: 定位对象分配内存的位置 按文件、按行统计python的内存块分配情况: 总大小、块的数量以及块平均大小。 对比两个内存快照的差异,以便排查内存泄漏 显示前10项 显示内存…...
02 CSS技巧
02 CSS技巧 clip-path 自定义形状,或者使用自带的属性画圆等circle HTML结构 <body><div class"container"></div> </body>CSS结构 使用*polygon*自定义形状 .container {width: 300px;height: 300px;background-color: re…...
Yarn资源调度器
文章目录 一、Yarn资源调度器1、架构2、Yarn工作机制3、HDFS、YARN、MR关系4、作业提交之HDFS&MapReduce 二、Yarn调度器和调度算法1、先进先出调度器(FIFO)2、容量调度器(Capacity Scheduler)3、公平调度器(Fair …...
android上架备案公钥和md5获取工具
最近很多公司上架遇到了一个问题,就是要提供app的备案证明,现在android上架都需要备案了,但是我们的证书都是通过工具生成的,哪里知道公钥和md5那些东西呢?无论安卓备案还是ios备案都需要提供公钥和md5。 包括ios的备案…...
SpringBoot系列(12):SpringBoot集成log4j2日志配置
最近项目上有使用到log4j2日志模板配置,本文简单总结一下之前的学习笔记,如有纰漏之处,请批评指正。 1. log4j2日志依赖 使用log4j2日志模板时,需要引入相关依赖,下边的两种依赖方式均可。 1.1 使用sl4j依赖时 <…...
HTML事件列表
鼠标事件 属性描述DOMonclick当用户点击某个对象时调用的事件句柄。2oncontextmenu在用户点击鼠标右键打开上下文菜单时触发ondblclick当用户双击某个对象时调用的事件句柄。2onmousedown鼠标按钮被按下。2onmouseenter当鼠标指针移动到元素上时触发。2onmouseleave当鼠标指针…...
并发-Executor框架笔记
Executor框架 jdk5开始,把工作单元与执行机制分离开来,工作单元包括Runable和Callable,执行机制由Executor框架来提供。 Executor框架简介 Executor框架的两级调度模型 Java线程被一对一映射为本地操作系统线程 java线程启动会创建一个本…...
【C进阶】分析 C/C++程序的内存开辟与柔性数组(内有干货)
前言: 本文是对于动态内存管理知识后续的补充,以及加深对其的理解。对于动态内存管理涉及的大部分知识在这篇文章中 ---- 【C进阶】 动态内存管理_Dream_Chaser~的博客-CSDN博客 本文涉及的知识内容主要在两方面: 简单解析C/C程序…...
深入理解 JVM 之——字节码指令与执行引擎
更好的阅读体验 \huge{\color{red}{更好的阅读体验}} 更好的阅读体验 类文件结构 Write Once,Run Anywhere 对于 C 语言从程序到运行需要经过编译的过程,只有经历了编译后,我们所编写的代码才能够翻译为机器可以直接运行的二进制代码&#x…...
C++:vector
目录 一、关于vector 二、vector的相关函数 三、相关函数的使用 ①构造函数 ②size ③[] 编辑 ④push_back ⑤迭代器iterator ⑥reserve ⑦resize ⑧find ⑨insert ⑩erase ⑪sort 一、关于vector vector比较像数组 观察可知,vector有两个模板参数…...
Android Automotive编译
系统准备 安装系统 准备一台安装Ubuntu系统的机器(windows系统的机器可以通过WSL安装ubuntu系统) 安装docker 本文使用docker进行编译,因此提前安装docker。参考网络链接安装docker并设置为不使用sudo进行docker操作。 参考链接ÿ…...
什么是50ETF期权开户条件,怎么开期权交易权限?
50ETF期权是指上证50ETF期权,标的物是上证50ETF,代码是(510500),期权是一种在上证50ETF基础上进行衍生品交易的金融工具,下文科普什么是50ETF期权开户条件,怎么开期权交易权限?本文来…...
React 从入门到精通——本文来自AI创作助手
React是一个流行的JavaScript库,用于构建用户界面。以下是React入门到精通的步骤: 入门 安装React 你可以在npm上下载React包,也可以使用其他包管理器。首先需要安装node.js,然后使用以下命令安装React: npm insta…...
【51单片机实验笔记】前篇(三) 模块功能封装汇总(持续更新)
文章目录 通用函数public.hpublic.c 延时函数delay.hdelay.c LED模块数码管模块smg.hsmg.c LED点阵模块独立按键模块矩阵按键模块外部中断模块定时器模块串口通讯模块ADC模块PWM模块 通用函数 包含常用头文件,宏定义,自定义类型,函数工具等。…...
Excel VSTO开发4 -其他事件
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 4 其他事件 针对插件的事件主要有Startup、Shutdown这两个事件,在第2节中已经讲解。在开发窗口中,选择对象…...
语音识别数据的采集方法:基本流程数据类型
“人工智能是一种模仿人类功能的产品。数据采集的方法需要针对特定的场景需求。”—–Mark Brayan (澳鹏CEO) 我们一直说,对于一个高质量的人工智能产品离不开高质量的训练数据。对于不同的人工智能我们需要不同的数据对其训练。要采集正确的数据去训练特定的模型才…...
oracle数据库给用户授权DBA权限Oracle查看哪些用户具有DBA权限
oracle数据库给用户授权DBA权限 步骤一:以sysdba身份登录到Oracle数据库 在授予DBA权限之前,我们首先要以sysdba身份登录到Oracle数据库。使用以下命令登录: sqlplus / as sysdba步骤二:创建用户(如有用户跳过&#…...
024-从零搭建微服务-系统服务(六)
写在最前 如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。 源码地址(后端):https://gitee.com/csps/mingyue 源码地址(前端):https://gitee.com/csps…...
Arduino驱动TCS3200传感器(颜色传感器篇)
目录 1、传感器特性 2、硬件原理图 3、控制器和传感器连线图 4、驱动程序 TCS3200颜色传感器是一款全彩的颜色检测器,包括了一块TAOS TCS3200RGB感应芯片和4个白色LED灯,TCS3200能在一定的范围内检测和测量几乎所有的可见光。TCS3200有大量的光检测器,每个都有红绿蓝和清…...
基于Matlab实现多个数字水印案例(附上源码+数据集)
数字水印是一种在数字图像或视频中嵌入特定信息的技术,以保护知识产权和防止盗版。在本文中,我们将介绍如何使用Matlab实现数字水印。 文章目录 实现步骤源码数据集下载 实现步骤 首先,我们需要选择一个用于嵌入水印的图像。这可以是原始图像…...
C语言之指针进阶篇(2)
目录 函数指针 函数名和&函数名 函数指针的定义 函数指针的使用 函数指针陷阱 代码1 代码2 注意 函数指针数组定义 函数指针数组的使用 指向函数指针数组的指针 书写 终于军训圆满结束了,首先回顾一下指针进阶篇(1)主要是…...
C++ 进制转化入门知识(1)
一、什么是进制 进制是一种用来表示数值的系统或方法,它是基于一个特定的基数来工作的。在我们常见的几种进制中,有: 1. **二进制(基数 2)**: 二进制只用两个数字:0和1。这是计算机内部使用…...
【React】React学习:从初级到高级(四)
React学习[四] 4 应急方案4.1 使用ref引用值4.1.1 给组件添加ref4.1.2 ref和state的不同之处4.1.3 何时使用ref 4.2 使用ref操作DOM4.2.1 获取指向节点的ref4.2.3 使用 ref 回调管理 ref 列表4.2.4 访问另一个组件的DOM节点4.2.5 用 flushSync 同步更新 state 4.3 使用Effect同…...
微信小程序登录问题(思路简略笔记)
配置问题 这是小程序登录问题,必要的两个配置。 流程思路 1. 微信小程序端,会返回一个code。 2. 查看需要返回给微信小程序端的数据。 3. 既然需要返回三个数据,先看openid如何拿到 WX-Login https://api.weixin.qq.com/sns/jscode2ses…...
Go 锁扩展
文章目录 TryLock统计 goroutine数量读写锁读锁写锁常见死锁情况写锁重入写锁中调用读锁循环依赖 TryLock 源码中自带的(我的go是 1.20版本)TryLock 会尝试获取锁,如果获取不到返回false,并不会进行休眠阻塞(和 Lock的主要区别) func (m *Mutex) TryLo…...
东莞网站建设科技公司/企业线上培训平台有哪些
记得当年学UML课程的时候,当你还在为了安装Rose而发愁的时候,人家都把作业给交了,并且现在大多数UML课程都会让学生使用Rational Rose做画图练习。近来,做毕业设计需要提供各种流程图、UML图的需求。所以发现了一个比较好用的在线…...
毕业室内设计代做网站/必应站长平台
2021河源教师招聘备考交流群全省教招考情在线咨询2021紫金春招编制教师招聘33人考试笔试成绩公布,考生可登陆成绩查询网站:http://zk.sun-hrm.com/index.php/exam/?EXAMID1572 进行查询。面试根据笔试成绩从高分到低分按1:3的比例确定面试人选ÿ…...
网站建设 英语词汇/网络广告推广方法
Uploading... xxxgmail.com has insufficient permissions to upload new versions of package xxxx. pub logout 然后再使用pub publish发布的时候就需要重新登录了 如果是发布到pub.dev请使用如下命令 flutter packages pub logout 发布使用 flutter packages pub publi…...
去河南省住房和城乡建设厅网站查/seo快速排名外包
最近因为项目提供接口给第三方,发现在集中传数据时,对方反应一次传送十万条数据时,xml文件过大问题。对方使用c#提到他们在给微软的产品做接口传输时,速度是非常快的,而且他可以使用c#压缩数据传输,今晚搜了…...
招生网站建设策划方案/营销运营主要做什么
如果你还没有安装好SciTE,可以参考《在ubuntu 12.04 中安装SciTE 文本编辑器》。刚安装好的SciTE文本编辑器非常简朴,需要经过适当配置才能成为真正称手的编程利器。下文中的所有配置项,可以直接拷贝,然后粘贴到SciTE的用户设置文…...
购物网站前台功能模块分析/独立站seo推广
移动开发领域与PC 开发得区别,总结为:3低, 3高,3有限。开发移动程序是应该时刻记住这9个限制。 3低低处理能力低分辨率低速的数据传输能力3高传输数据高成本高延迟高不可靠地数据连接3有限有限的RAM有限的永久存储能力有限的电池使…...