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

6 篇文章 3 订阅
1 篇文章 0 订阅

前言:本文主要用于本人项目记录,不接受任何学术派提问及质疑,谢谢合作。

所需知识、设备等:

1、硬件设计,包含原理图设计、Layout等,能自己焊接电路板调试等,最好熟悉SolidWorks。

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

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

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

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

硬件篇

车辆选型:

        优先选择电动车,电动车的油门、转向、档位等一般都是采用的电控形式,改造难度偏小,油车的油门、档位一般为机械模式,需要先做机械改造,再做电子电气改造才能实现底盘的线控,手动挡车型由于还要改造自动离合器,难度更高。另外电动车的车辆控制数据、状态数据一般都可以通过OBD接口或者破解CAN协议的方式获取到,极为方便。根据本人之前经验可以按不同预算进行如下选择:

1)低成本投入可选各种电动沙滩车、巴哈车等(车体投入一万内)。本人改造过案例实物如下图:

2)中等成本投入可以选择观光车、农夫车等(车体投入在5w内)。本人改造过案例实物如下图:

3)高成本投入可以选择各种乘用车、商用车(车体投入10-100w)。本人改造过案例实物如下图:

感知设备选型:

此部分需要根据最终实现的效果来进行选型。

          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延长线等若干。

底盘改造:

该部分主要工作分2个方向进行,原车控制非电控部分采取自研硬件改造,原车控制电控部分采取破解CAN协议或者模拟控制信号方式进行改造。

1)刹车:

目前除大陆(MK C2)和博士(ibooster)推出了电子助力刹车外,其他都是采用真空助力方式或者无助力机械直推刹车总泵方式。之前采购过一款拆车博士ibooster电子助力总泵研究过,因缺乏相关资料和没有实验车辆,破解方式基本无希望。

目前刹车只能采取自行研发进行控制,具体可以采取三种控制路线。

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

第二种通过改造刹车油路,在原有的刹车主泵后面加一级自行研发电推主泵,通过电磁阀控制液压通路实现自动驾驶和人工驾驶刹车液压管路选择。如下图所示(知识产权所有,抄袭请告知):

第三种通过破解ESP系统,直接控制ESP总泵进行刹车控制(无条件折腾验证,仅做方法提示)。因纯ABS总泵寿命有限,不建议采用直接控制ABS总泵的方式进行改造。

该部分改造重点在于一定要适时检测液压管路压力,如果原车无制动压力数据,则需自行加装液压传感器,适时检测刹车液压回路压力值,只有这样才能做到液压闭环控制,实现制动线性效果。

另外对于原车本身没有真空助力的建议采用高速油缸直推踏板方式(推力需保持),电推杆普遍速度慢,速度快的推力又普遍不够。根据多台车改造经验原车带真空助力的机械推力不应小于300N,原车无真空助力的推力不应小于1000N。推动速度应保持在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协议定义了,如下所示:

未完待续。。。。

最近找了个工作应付下,没空更新,先上2个之前做完的视频,得空了再更新

自动驾驶测试视频

  • 17
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
自动驾驶交通安全白皮书pdf是一份关于自动驾驶技术与交通安全的详细报告。该报告从多个角度深入探讨了自动驾驶技术对交通安全的影响,并提出了相应的解决方案。 首先,该白皮书对自动驾驶技术的概念进行了解释和介绍。它详细解释了自动驾驶的工作原理、感知技术、决策制定过程以及控制手段。 接着,该白皮书侧重于分析了自动驾驶对交通安全的积极影响。通过自动感知和决策技术的强大能力,自动驾驶可以减少人为驾驶错误、疲劳驾驶和酒驾等不安全行为,从而提高交通安全水平。 然而,该白皮书也警示了自动驾驶技术所面临的挑战和风险。其中之一是技术可靠性和故障处理。虽然自动驾驶具备先进的技术,但在特殊情况下,如恶劣天气和复杂交通环境,还需要进一步提升可靠性。 因此,白皮书提出了一些解决方案来应对自动驾驶技术带来的安全问题。例如,强调必须建立有效的监管和法规框架来规范自动驾驶的使用,确保它们符合安全标准和法律要求。 总的来说,该白皮书pdf提供了一个全面的视角,评估了自动驾驶对交通安全的影响。它揭示了自动驾驶技术的优点和潜在风险,并提供了解决方案来确保自动驾驶能够安全地融入现有交通体系。该白皮书为我们更好地理解和应用自动驾驶技术提供了重要的参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值