锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

自己动手打造一台自动驾驶车(持续更新)

时间:2022-09-08 12:00:01 mm连接器线束传感器油门踏板电缸里的传感器传感器7a1707c901扭矩转速角度传感器国产继电器接触器

本文主要用于我的项目记录,不接受任何学术问题和质疑,谢谢合作。

所需知识、设备等:

1.硬件设计包括原理图设计,Layout等等,可以自己焊接电路板调试,最好熟悉SolidWorks。

2、单片机软件开发、各种常见接口驱动编写等,熟悉CAN协议。

3、X86系统编程(C语言、python),编写上层感知、决策和控制代码。主要掌握多线程、socket最好基于基础系统编程Linux系统。

4.示波器万用表、编程电源、电烙铁、热风枪CAN通信工具、各种电线、胶带、钳子、电钻、拖顶、安全凳、修车工具等。

5.对车辆结构有一定的了解,如电源系统、制动器、EPS、阿克曼转向等,油车还需要了解内燃机系统。

硬件篇

车辆选型:

电动汽车电动汽车,电动汽车油门、转向、档位一般采用电气控制形式,改造难度小,油门、档位一般为机械模式,需要进行机械改造,然后进行电子电气改造,实现底盘线路控制,手动变速器车型也改造自动离合器,难度更高。此外,电动汽车的车辆控制数据和状态数据通常可以通过OBD接口或破解CAN获得协议非常方便。此外,电动汽车的车辆控制数据和状态数据通常可以通过OBD接口或破解CAN获得协议非常方便。根据我以前的经验,我可以根据不同的预算做出以下选择:

1)低成本各种电动沙滩车、巴哈车等。投资可选(车身投资1万以内)。我改造的案例实物如下:

2)中等成本可选择观光车、农夫车等。w内)。我改造了以下案例对象:

3)高成本可选择各种乘用车、商用车(车身投资10-1000w)。本人改造的案例实物如下图所示:

感知设备选型:

这部分需要根据最终的效果进行选择。

1)低速简单自动驾驶(搜索、停止、停止GNSS建图定位:16线激光雷达(livox、镭神、速腾)x1,差分GPS(定位定向)x1,超声波模块x4,工业相机x1。

2)低中速自动驾驶(基于低中速自动驾驶(基于)LOAM方法建图定位):32线或更高(速腾、和赛、livox)激光雷达x1,RTK 惯导(北云、星网宇达、中海达等)x1,工业相机(FLIR、AVT、欧姆龙、国产等)x2(镜头短焦 长焦),77G达米波雷(大陆,德尔福)x1

主控制器选型:

简单款J1900,i3,i5工控机即可,高级款nvidia Xavier主机(米文,天准等)

其它设备选型:

CAN控制器双路(周立功,珠海创芯)x1.自制电源、随机保险箱、带挂架的触摸显示器x1.汽车电子线日标0.3-3.0 几米等各种型号hdmi、网线、usb延长线等。

底盘改造:

这部分的主要工作分为两个方向。原车控制非电控部分采用自研硬件改造,原车控制电控部分破解CAN协议或模拟控制信号进行改造。

1)刹车:

目前除大陆(MK C2)和博士(ibooster)除了电子助力制动,其他都是真空助力或无助力机械直接推动制动总泵。我以前买过一个拆车博士ibooster研究了电子助力总泵,由于缺乏相关信息和实验车辆,破解方法基本没有希望。

目前,制动器只能通过自主研发进行控制,具体可采用三种控制路线。

第一种利用推杆(电缸或油缸)直接作用于刹车踏板上,如下图所示:

第二种是通过改造制动油路,在原制动主泵后面增加一级电推主泵,通过电磁阀控制液压路径,实现自动驾驶和手动驾驶制动液压管路的选择。如下图所示(所有知识产权,请通知剽窃):

三是破解ESP直接控制系统ESP制动控制总泵(无条件折腾验证,只做方法提示)。ABS不建议直接控制总泵的使用寿命有限ABS改造总泵的方式。

这部分改造的重点是及时检测液压管道的压力。如果原车没有制动压力数据,需要安装液压传感器,及时检测制动液压电路的压力值。只有这样,才能实现液压闭环控制,实现制动线性效果。

此外,对于原车本身没有真空动力,建议采用高速缸直推踏板(保持推力)。电推杆一般速度慢,速度快的推力一般不够。根据多辆车的改造经验,原车带真空动力的机械推力不得小于300N,原车无真空动力的推力不得小于1万N。推进速度应保持在30mm/s以上不会显示制动反应缓慢,还需要综合考虑原车制动踏板的安装角度和总行程。以上数据只是建议。如果不需要考虑原车的原始功能,可以拆除原车踏板,直接改造制动主泵,直接推电机。

2)转向:

转向主要分为原车带EPS和原车不带EPS,两种改造方式分别讨论

原车带EPS:

如果是采用的直流有刷电机,则建议直接开发控制电路板,采用继电器直接控制切换电机正负极引线。当需要自动驾驶的时候切换到自研控制板,通过原车CAN总线读取方向盘转角传感器的位置、转速数据对原车EPS电机进行位置、速度闭环控制即可。该传感器一般位于方向盘下方,直接找到该传感器线束,用万用表在静止状态测量找出2条接近2.5v的线缆,接入CAN盒子,然后转动方向盘,观察数据即可破解传感器对应的can协议(如无法读取到任何数据对调2根CAN数据线,还是无法读取数据自行分析,该部分难度不大,该CAN总线波特率一般为125k或者250K)。

如果原车EPS助力电机为直流无刷电机或者助力电机不是安装在管柱上(助力电机在车底无法进行工作)的建议放弃直接控制电机方式,本人曾试验过,如下图:

转向测试视频

因为此类电机一般多采用旋转变压器方式的位置检测,造成难以使用原电机位置传感器,只能采取无感无刷的控制方式,同时车辆在接地状态时转向电机是处于重载启动模式,对FOC控制算法等要求过高,而且需要和原车EPS控制器做多相切换,导致控制难以实施(其实最难的还是在于所有工作一个人来做的痛苦,最后只能放弃直接控制该电机的方式)。

对于原车EPS为无刷电机不想做机械结构改造,建议采用模拟扭矩传感器信号的方式进行改造,EPS本来就是通过检测作用于方向盘上手工施加扭矩大小,融合车速等数据进行助力扭矩控制的。

第一步先找到扭矩传感器的输出信号线,一般在靠近助力电机输入端的转向柱上,找到对应线束后,不要断开线束,直接采用边转动方向盘边用万用表测量的方式,找出数据有变化的2条线,一般是2路互补信号输出,找出来再用示波器观察是否是纯电压信号,如若是则记录好中点电压,和最大最小值等数据,如果是方波或者正弦波则记录好相应的占空比、周期、PP等。

第二步根据前面数据,设计DAC、方波、正弦波等模拟输出电路,同时采用机械(继电器)或者电子开关等方式设计信号切换电路,如下图:

由于EPS本是一个复杂的系统,通过这种方式破解只能做到能用而已,由于无法获取任何EPS设计资料,所有控制数据只能通过实操的方式去慢慢调整,最终实现控制丝滑的目的,建议采用查表法实现,本人实测效果不错。

有的车型助力系统是直接集成在方向机上的,对于这种可以采取直接将原转向管柱改装成有刷助力管柱的方式实现转向控制,该方法的弊端在于会导致原车的助力手感变重。

原车不带EPS:

对于原车不带EPS的则只有一个办法,购买第三方厂家助力转向电机,直接安装于原车方向机上,购买的时候最好直接购买带CAN转向控制的助力系统,这样就不需要自己开发任何控制电路。该部分机械改造难度偏大,需要一定的机械动手能力(主要就是切割、焊接和支架制作)工程实例图如下:

2)油门、档位:

油门改造过的车型无一例外,全是通过模拟电压控制,乘用车的为2路互补电压,观光车等要求比较低的就是一路0.65-3.5v左右的模拟电压进行油门控制。乘用车可以沿着踏板直接找到线束,然后通过万用表即可找出2条电压输出线,观光车一类的一般采用变送器的形式,有一个专用的控制盒,直接照着上面写的弄就行了。如下图:

进行此类改造,只需采用DAC或者电子电位器的方式输出一定范围的模拟电压,然后通过机械(继电器)或者电子开关进行电路切换即可。如下电路图即采用的电子电位器方式:

 档位:电动乘用车的档位改造过的几个型号均是通过发送CAN协议实现,要做的就是拆开中控台(有的车型可以从OBD接口直接读取),找到挂挡杆下方连接到档位控制器的线束,然后参考上述破解转向协议的方式,即可破解,破解协议后,做一个can协议发送和线路切换(必须是继电器)电路板,即完成档位控制,当然具体挂挡逻辑需主控端统一管理,譬如必须控制刹车液压值为正的时候才能进入D或者R档,否则挂挡也不会走。如下为比亚迪某型号协议:

unsigned char G_P[8] = { 0xFE,0x79,0xE4,0xF0,0xFF,0xFF,0xFF,0xB7 };
unsigned char G_N[8] = { 0xFC,0x7B,0xEC,0xF0,0xFF,0xFF,0xFF,0xAF };
unsigned char G_R[8] = { 0xFC,0x7A,0xE8,0xF0,0xFF,0xFF,0xFF,0xB4 };
unsigned char G_D[8] = { 0xFC,0x7C,0xF0,0xF0,0xFF,0xFF,0xFF,0xAA };

观光车等其他低速电动车则需具体分析,有的是通过控制器几条线束的电压(5v或者12v)组合逻辑来确定档位,有的则是通过接触器,如下图档位切换就是采用的接触器:(有疑问可留言讨论交流)

电子手刹:不同车型不同分析,有的车型是直接挂D档自动解除,有的是CAN协议方式,同档位。

线控底盘测试、调试:

完成上述转向、油门、档位、刹车线控改造后,即可进行底盘的测试、调试工作了,建议在做底盘控制器的时候加入遥控功能,可以大大方便底盘线控功能的调试测试。可以直接购买成品的模型遥控器,主控板只做ppm解码,也可以和我一样不嫌麻烦自己做一套遥控器,自己做的遥控器抗干扰、稳定性方面肯定是强于模型遥控器的。本人这套遥控器采用的是Microhard P900无线模块、霍尔摇杆和机械开关,接收端直接输出CAN协议。具体实物成品和效果见下图:

观光车遥控测试

避坑指南:

硬件改造部分基本就是上述几个方面,这里列举几点比较容易被坑的地方

1、购买车体的时候一定要问清楚,看清楚,不要买到了都是机械控制的车辆底盘,本人有个观光车项目甲方采购的二手底盘,到手后发现档位居然还是机械控制的,内部线路一团糟,导致最终只能将全车线路全部重走,所有电控部分全部拆除重弄,简直苦不堪言,最后连仪表都是自制,见下图所示:

原车电控拆除后拍摄

电气改造后局部拍摄

2、刹车改造尽量用液压推杆,不要使用电动推杆,本人用过各种淘宝电动推杆、IAI电缸等都不尽人意,拉绳电机也不建议,在力矩保持的时候该方式只能通过堵转的方式实现,容易发热。

3、方向改造如果非有刷电机,尽量采购成品助力电机,找靠谱修理厂进行管柱切割安装。开发无刷助力电机驱动是个长期的工作,短期内很难保证效果。

4、激光雷达尽量不选某神,推荐livox,价低量足不吹牛。

5、超声波尽量自己做驱动板,不要采购淘宝上某些多路带CAN吹牛货玩意,质量差劲,价格高。自己研发质量好,周期短。

6、主控制器尽量选研华,nvida推荐米文,买过好几家就他家资料齐全。不要图便宜买那些杂牌工控机,本人深受其害。

7、RTK惯导不推荐某网,质量差劲,售后烂,尽指导一堆小白问题,室外调试的时候晒不死你,本人用过多次,出问题概率50%。

8、视觉用过AVT、FLIR、深泰克、度申等,资料、服务都比较健全,建议尽量使用这类工业以太网相机,除了驱动稍微麻烦,其他不是那些淘宝几百块的货能比的,特别是在室外。镜头国产用过甲方采购的,质量堪忧,可能是采购的比较廉价的。

硬件设计:

        硬件设计分机械结构设计、电子电路设计2大块,机械结构设计主要是安装结构件、覆盖件的设计,这部分本人并不擅长,不做展开描述。

        接下来主要对控制电路设计进行描述,根据不同车型有不同的设计方式,但是原则上都是要基于CAN总线通信来进行控制板的设计。

        乘用车:在原车无电控,或者原车电控无法破解的情况下,需要进行底层线控电路的设计开发。由于乘用车覆盖件完整,原车控制系统分散,各子系统一般都是独立控制,通过can总线和VCU进行通信,所以进行线控电路设计的时候也应尽量采取分模块分布式设计,如果采用一块控制板进行控制,则会造成各种线束过长,在乘用车有限的空间内不好布线,同时那些过长的大电流线缆(电机驱动线、DC母线等)纵横交错,因执行部件故障短路,容易造成线缆发热起火等不必要的危险事故。(如下几图为不同功能模块的控制板)

多个版本的油门控制板

刹车控制板

档位控制板(电压组合逻辑款) 

        控制电路设计主要从电源、主控、功能三个部分来考虑,电源部分主要考虑防反接、浪涌电压保护、过流保护等(如下图,仅做举例,非完整电路):

 主控制器尽量选择汽车级MCU,本人案例均采用飞思卡尔MC9S12车规系列,同时最好带2路以上CAN控制器,免去外加CAN控制器芯片的麻烦。功能部分,IO驱动如继电器等控制等应加入Limp-Home模式电路设计,从而在单片机死机复位重启期间仍能保证某些外部输出状态不变(例如档位控制不会在控制器短暂失效的情况下导致车辆脱档),确保行车安全。

         其他低速车辆因为车身覆盖件少,控制简单,所以一般采用集中式控制设计,采用一个ECU控制整车的方式进行电路的设计,将所有功能集中到一块电路板上,同时由于这些车辆普通采用48V或者更低的主电池供电,对控制电路本身的干扰抑制等都要优于乘用车,对电路设计要求会适当降低。(下图为工程实际案例):

电动baha车的主控制器,包含除刹车外所有控制单元 。

 高尔夫球车主控制器(包含所有控制单元)

硬件设计记录到此为止,其他的条条框框等,网上一大把资料,本文主要用于个人工作的总结记录,如有兴趣的欢迎留言讨论。后续将进行软件相关的记录。

软件篇:

 通信协议:

        进行上层软件开发前,必须先将和底层控制器之间的通信协议定义好,方可进行。虽然在这些案例里所有软硬件工作都是本人独立完成,但是必要的通信协议还是需要写好,一来方便开发,二来方便后续的维护工作。因为所有的和底层通信均是通过CAN接口进行,所以此处的底层通信协议主要就是CAN协议定义了,如下所示:

 

未完待续。。。。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章