超声波测距模块电路图插上后,手能感觉到小车电机在动,但是轮子不转

智能小车电源问题_百度知道
智能小车电源问题
做了个智能小车,用于壁障,在车头安装三个超声波模块,分别探测前方左方右方距离,用AT89S52控制,电机驱动用L298N,用一块儿9V电池供电,先7805稳压到5v后给单片机,超声破模块和电机供电,试验后发现电机不转,用万用表测量后发现,超声波模块和单片机应该...
我有更好的答案
你那个电池只能提供小于200mA的电流,电池要用锂电池组或者镍镉电池组,额定电压为7.2V的就可以了。直接替换9V电池后级就不用改了。
中午吃完饭后又想了想,手头只有普通碱性电池,用一块儿电池给超声波模组和单片机供电,另一块儿给电机驱动和电机供电,一开始还是不行,后来将两块电池电源共负极后就行了,这是什么原因啊??确实这种电池电流不够,小车走的比较费劲,另外平时实验用什么样的电池组比较好啊??最好是能充电的??
平时做实验建议用镍镉电池组,放电电流比较大,充电电路简单,成本也低。不知道你说的共负极是怎样连接的。碱性电池不是1.5V的吗?应该没办法驱动5V的电路吧,除非你做成电池组了。
错了,是9V的碳性电池,本来两个电源分别给两个模块供电,(超声波+单片机)和电机驱动之间只有控制信号线,后来我把两个电源的负极用一根导线连起来了,效果就好多了,不知道为啥,谢谢你的回答~~
采纳率:52%
为您推荐:
其他类似问题
您可能关注的内容
智能小车的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。AI芯片之于人工智能的意义,则可以理解为发动机之于汽车……
又是一年六一儿童节,虽然,早就超了过这个节日的年纪,……
漫威电影拍了这么多集不但丝毫不油腻,还越来越受欢迎,……
高度集成是目前MCU发展趋势,为了节省整体PCB空间,降低……
施耐德电气展示了针对电力设备、机器设备、汽车、石油化……
演讲人:曾伟权时间: 10:00:00
演讲人:黄科涛时间: 10:00:00
演讲人:Tracy Ma时间: 10:00:00
预算:¥300000预算:¥50000
江苏省湖北省
超声波测距模块的设计与实现
[导读]摘要:本文设计并实现了一个以MCS-51单片机为核心的超声波测距模块。该模块由超声波发射单元、超声波接收单元、温度测量单元、显示单元和ISP下载单元等组成,由单片机产生超声波的发射信号并对其传播时间进行测量,依
摘要:本文设计并实现了一个以MCS-51单片机为核心的超声波测距模块。该模块由超声波发射单元、超声波接收单元、温度测量单元、显示单元和ISP下载单元等组成,由单片机产生超声波的发射信号并对其传播时间进行测量,依据超声波在空气中的传播特性,换算出距离数据,从而实现测量距离的目的。设计中采用LM386作为超声波的发射驱动,采用集成芯片CX20106作为超声波接收单元,结构简洁,集成度高。通过实验表明,该模块性能可靠,能较准确地测出与障碍物之间的距离,达到了设计要求。
关键词:超声波测距;MCS-51单片机;LM386;CX20106
&&& 在多数项目研发中,距离测量显得越来越重要,常用的测距方式主要有雷达测距、红外测距、激光测距和超声测距等4种。雷达测距对天气的依赖性较强,且成本较高;红外测距测量范围窄;激光测距精度高、抗干扰力强、但成本高,且光学系统需细心维护;超声波测距指向性强、传输距离远、受环境影响小、传播时间容易检测,而且超声波传感器结构简单、性能可靠、成本低、易于集成,因此本文采用超声波方式进行距离测量。
1 超声波测距原理
&&& 超声波发生器内部有两个压电晶片和一个共振板,当两极外加脉冲信号的频率等于压电晶片的固有振荡频率时,压电晶片将发生共振,并带动共振板振动,从而产生超声波;同理,当共振板接收到超声波时,将压迫压电晶片产生振动,将机械能转换为电信号。
&&& 测距原理如图1所示。本文引用地址:
&&& 被测距离。式中:s为超声波传播距离;h为发射探头与接收探头之间的距离。
&&& 由于s远大于h,因此可近似认为d=s,则d=s=ct/2,t为发射超声波与接收超声波的时间间隔,c为超声波在空气中的传播速度。
&&& 在空气中,常温下超声波的传播速度是334m/s,但其传播速度c易受空气中温度的影响,声速与温度关系如表1所示,由此可修正超声波传播速度
&&& 可见,只要测得超声波发射和接收回波的时间差t以及环境温度T,就能得到较为精确的距离。
2 方案设计
2.1 电路设计
&&& 设计的超声测距模块由超声波发射单元、超声波接收单元、温度测量单元、液晶显示单元和ISP下载单元等部分构成,系统框图如图2所示。
2.1.1 单片机单元
&&& 单片机是整个系统的控制核心,本文选用AT89S51,测量时,由单片机输出40 kHz左右的脉冲信号,驱动超声波发射器发出超声波脉冲,同时启动单片机计时器,开始计时。超声波达到目标时回传,经空气传播被超声波接收器接收,此时计时停止,经计算可得超声波从发射到接收的时间间隔t,从而得到距离数据。
2.1.2 超声波发射单元
&&& 考虑到单片机端口驱动能力有限,本文采用LM386对输出信号进行功率放大,LM386多用于音频放大,也可用于超声波发射。如图3所示,LM386第1脚和第8脚之间串接的E1、R1,可使电路获得较大的增益,T0为单片机输入的脉冲信号,经功率放大后由第5脚输出,驱动探头发射超声波。
2.1.3 超声波接收单元
&&& 为了顺利接收回波信号,本文采用索尼公司生产的集成芯片CX20106,如图4所示,CX20106是一款红外线检波接收的专用芯片,由于红外遥控常用的载波频率38kHz与超声波频率40kHz比较接近,而且CX20106内部设置的滤波器中心频率f0可由其5脚外接电阻调节,范围为30~60 kHz,因此本文采用它来做接收电路。
&&& 回波信号先经过CX20106内部的前置放大器和限幅放大器,将信号调整到适当的幅值,由滤波器进行频率选择,滤除干扰信号,再经整形,送给输出端7脚,7脚与单片机INT0连接,当接收到与滤波器中心频率相符的回波信号时,输出端7脚即输出低电平,触发中断。
2.1.4 温度测量、液晶显示与ISP单元
&&& 温度测量单元选用1Wire总线器件DS18B20作为传感器,实现对温度数据的采集,液晶模块实现测量数据的显示,ISP单元实现程序代码的在系统下载,电路图从略。
2.2 软件设计
&&& 软件部分主要包括主程序和中断服务子程序,如图5所示。主程序主要完成系统初始化、温度读取和超声波发射;中断服务子程序主要完成计数值的读取、距离计算、输出显示等工作。
3 实验结果及分析
&&& 表2是利用本文的测距模块实际测量的结果。由表中数据可见,在30cm范围内误差较大,这是由于超声波信号的发射必须有一个上升时间,如果距离太近单片机难以及时处理回波信号,无法正确检测回波到达时间,因而测量误差明显增加;而距离在30em以上时,由于引入温度补偿单元,因而误差相对较小。
&&& 本文设计的超声波测距模块,采用了集成元件LM386、CX20106作为发射和接收的核心器件,并引入了DSl8B20作为温度补偿单元,因此结构简单、集成度较高、可靠性较强,通过实验验证,测量结果与实际距离相近,基本满足测量要求。
触觉反馈技术在最近几年的时间里进步十分明显,而这种我们最常见于智能手机中的科技能够让用户在输入时得到微小的振动反馈,让用户在打字时感觉更真实。现在,这将技术又有了新的进步,一组名为BIG的工程师团队近日......关键字:
据国外媒体报道,欧洲GHOST项目组研究人员正在研究一种新的屏幕显示技术,该项技术可以可以让用户和屏幕之间的交互方式得到进一步的改善,即通过物理方式将显示屏内的内容带出。据悉,该研究团队已经通过超声波悬浮技术,可让屏幕中的内容根据人的手势来......关键字:
9 月 27 日,小米将在国家会议中心举办秋季新品发布会。据悉,本次发布会小米将会发布小米 5s,从网上流出的信息来看,小米 5s
将带来全新的超声波指纹解锁技术。这款黑科技,让小米成为全球首个使用屏幕下指纹识别......关键字:
利用超声波来洗衣服已经不是什么新鲜事了,而现在来自美国能源部下属的国立橡树岭研究所与通用家电(GE
Appliances)开展合作,成功让超声波来脱水弄干衣物。新技术比现有方式高效70%,而且整个脱水时间是现有方式的一......关键字:
继全面屏爆发之后,屏下指纹迎来集中爆发时期,同时,越来越多的芯片厂商、面板厂商等纷纷布局屏下指纹,试图抢占市场高地,获取市场红利。
......关键字:
近日,一组由俄罗斯国立核能研究大学-莫斯科工程物理学院教授Viktor Timoshenko领导的物理学家和生物学家在超声的帮助下使用硅纳米颗粒识别并杀伤肿瘤,但是不损伤正常组织,相关研究成果发表在Nanotechnology上。......关键字:
加州大学伯克利分校的工程师们,开发出了一种沙粒大小的新型传感器。它可以利用超声波为neural-dust植入物供电和传输数据,但研究人员希望打造出更小的版本,以便用于大脑。......关键字:
北京时间6月14日早间消息,苹果CEO蒂姆&库克(Tim Cook)接受彭博社采访时谈及了之前为何加入苹果以及是否会竞选美国总统的问题。库克甚至被问及他是否考虑过竞选美国总统,他回答道:&我对政治不感兴趣......关键字:
我 要 评 论
热门关键词&figure&&img src=&https://pic4.zhimg.com/v2-caf8a22bb90d8b2d4d09ae372def353e_b.jpg& data-rawwidth=&740& data-rawheight=&463& class=&origin_image zh-lightbox-thumb& width=&740& data-original=&https://pic4.zhimg.com/v2-caf8a22bb90d8b2d4d09ae372def353e_r.jpg&&&/figure&&h2&&b&前言&/b&&/h2&&p&&br&&/p&&p&在上一次分享中,我对无人驾驶汽车上的激光雷达的原理、数据及功能做了介绍。&/p&&p&&br&&/p&&p&激光雷达的普及所遇到的最大挑战是:成本过高。单独一个雷达的价格可能就超过了普通小汽车的价格,因此现阶段还没有大规模量产的可能性。&/p&&p&&br&&/p&&p&为了推进自动驾驶技术的发展,同时要解决摄像机测距、测速不够精确的问题。工程师们选择了性价比更高的毫米波雷达作为测距和测速的传感器。毫米波雷达不仅拥有成本适中的有点,而且能够完美处理激光雷达所处理不了的沙尘天气。&/p&&p&&br&&/p&&p&下图为百度Apollo 2.0中所使用的毫米波雷达——Continental的ARS-408,它被安装在汽车保险杠的正中间,面向汽车的前进方向。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-d332e9affbd2d475a45c415_b.jpg& data-size=&normal& data-rawwidth=&500& data-rawheight=&283& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&https://pic2.zhimg.com/v2-d332e9affbd2d475a45c415_r.jpg&&&figcaption&https://www.continental-automotive.com/Landing-Pages/Industrial-Sensors/Products/ARS-408-21&/figcaption&&/figure&&hr&&h2&&b&正文&/b&&/h2&&p&&br&&/p&&p&&b&毫米波雷达的分类&/b&&/p&&p&&br&&/p&&p&频率在10GHz~200GHz的电磁波,由于其波长在毫米量级,因此处于该频率范围的电磁波也被工程师们称为毫米波。&/p&&p&&br&&/p&&p&应用在自动驾驶领域的毫米波雷达主要有3个频段,分别是24GHz,77GHz和79GHz。不同频段的毫米波雷达有着不同的性能和成本。&/p&&p&&br&&/p&&p&以Audi A8的传感器布局为例,讲解不同频段毫米波雷达的功能。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-ccefd8ebda3f00c5a50dfc11_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1427& data-rawheight=&710& class=&origin_image zh-lightbox-thumb& width=&1427& data-original=&https://pic2.zhimg.com/v2-ccefd8ebda3f00c5a50dfc11_r.jpg&&&/figure&&p&&br&&/p&&blockquote&&b&短距离雷达:24GHz频段&/b&&/blockquote&&p&如上图所示被标注了橙色框的Corner radar和Rear radar,就是频段在24GHz左右的雷达。&/p&&p&&br&&/p&&p&处在该频段上的雷达的检测距离有限,因此常用于检测近处的障碍物(车辆)。图中的这4个角雷达,能够实现的ADAS功能有盲点检测、变道辅助等;在自动驾驶系统中常用于感知车辆近处的障碍物,为换道决策提供感知信息。&/p&&p&&br&&/p&&blockquote&&b&长距离雷达:77GHz频段&/b&&/blockquote&&p&如上图所示,被标注为绿色框的Long-range radar,即为频段在77GHz左右的雷达。性能良好的77GHz雷达的最大检测距离可以达到160米以上,因此常被安装在前保险杠上,正对汽车的行驶方向。如下图右下角的棕色区域,为特斯拉AutoPilot 2.0中所配备的长距离毫米波雷达,及其感知范围。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-c979e1aec3_b.jpg& data-size=&normal& data-rawwidth=&1469& data-rawheight=&845& class=&origin_image zh-lightbox-thumb& width=&1469& data-original=&https://pic2.zhimg.com/v2-c979e1aec3_r.jpg&&&figcaption&https://www.tesla.cn/autopilot&/figcaption&&/figure&&p&&br&&/p&&p&长距离雷达能够用于实现紧急制动、高速公路跟车等ADAS功能;同时也能满足自动驾驶领域,对障碍物距离、速度和角度的测量需求。&/p&&p&&br&&/p&&blockquote&&b&长距离雷达:79GHz频段&/b&&/blockquote&&p&该频段的传感器能够实现的功能和77GHz一样,也是用于长距离的测量。&/p&&p&&br&&/p&&p&根据公式:光速 = 波长 * 频率,频率更高的毫米波雷达,其波长越短。波长越短,意味着分辨率越高;而分辨率越高,意味着在距离、速度、角度上的测量精度更高。因此79GHz的毫米波雷达必然是未来的发展趋势。&/p&&p&&br&&/p&&p&毫米波雷达相比于激光有更强的穿透性,能够轻松地穿透保险杠上的塑料,因此常被安装在汽车的保险杠内。这也是为什么很多具备ACC(自适应巡航)的车上明明有毫米波雷达,却很难从外观上发现它们的原因。&/p&&p&&br&&/p&&p&&b&毫米波雷达的数据&/b&&/p&&p&&br&&/p&&p&由于毫米波的测距和测速原理都是基于多普勒效应,因此与激光的笛卡尔(XYZ)坐标系不同,毫米波雷达的原始数据是基于(距离+角度)极坐标系。当然,两种坐标系可以根据三角函数相互转换。&/p&&p&&br&&/p&&p&如下图所示,安装有毫米波雷达的自车前方有迎面驶来的蓝色小车和同向行驶的绿色小车。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-e6f543ca64_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&697& data-rawheight=&734& class=&origin_image zh-lightbox-thumb& width=&697& data-original=&https://pic1.zhimg.com/v2-e6f543ca64_r.jpg&&&/figure&&p&毫米波雷达发射的电磁会穿透汽车的前后保险杠,但是无法穿透汽车底盘的金属,因此在遇到金属这类毫米波雷达无法穿透的物体时,电磁波就会返回。&/p&&p&&br&&/p&&p&以德尔福的前向毫米波雷达ESR为例,该雷达每帧最多能够返回64个目标的数据,每个目标的数据组成如下:&/p&&p&&br&&/p&&ul&&li&power&/li&&/ul&&p&回波强度,单位为分贝。不同类型的障碍物(汽车、铁护栏、摩托车等)在不同距离下的回波强度也会有所变化,如果回波强度太低可以认定该信号为噪声。&/p&&p&&br&&/p&&ul&&li&track_bridge_objectType&/li&&/ul&&p&所检测到的障碍物是否为桥。城市道路中会遇到立交桥的场景,从ESR中获取的该信号,可以用于判断所检测到的障碍物是否为桥。&/p&&p&&br&&/p&&ul&&li&track_oncoming&/li&&/ul&&p&障碍物是否在靠近的标志位。该标志位多用于主动安全的AEB(自动紧急刹车)中。&/p&&p&&br&&/p&&ul&&li&track_id&/li&&/ul&&p&障碍物的“身份证”。每个障碍物都会有一个固定的ID,ID范围是0~63。&/p&&p&&br&&/p&&ul&&li&track_status&/li&&/ul&&p&障碍物的跟踪状态。&/p&&p&&br&&/p&&ul&&li&track_theta&/li&&/ul&&p&障碍物与毫米波雷达所成的夹角。示意图中的θ角,就是这里的值。由于每个雷达都有极限探测范围,以ESR为例,图中θ的范围在-45°和45°之间。&/p&&p&&br&&/p&&ul&&li&track_distance&/li&&/ul&&p&障碍物距离毫米波雷达的距离。该距离是极坐标系下的距离,也就是示意图中的x。根据x和θ,即可计算出自车笛卡尔(XYZ)坐标系下的坐标。&/p&&p&&br&&/p&&ul&&li&track_relative_radial_velocity&/li&&/ul&&p&障碍物与自车的径向相对速度。由于多普勒效应的原理,雷达的测量中只能提供极坐标系下的径向速度,切向速度的测量置信度很低,因此雷达并不会提供障碍物的切向速度。&/p&&p&&br&&/p&&ul&&li&track_relative_radial_acceleration&/li&&/ul&&p&障碍物与自车的径向相对加速度。该值是通过对径向相对速度做微分得到的。&/p&&p&&br&&/p&&ul&&li&track_mode_type&/li&&/ul&&p&障碍物的运动状态。根据该值可以判断障碍物时静止的还是运动的。&/p&&p&&br&&/p&&ul&&li&track_width&/li&&/ul&&p&障碍物的宽度。将原始的雷达数据点通过聚类后,会得到一个区域,该区域的范围即认为是障碍物的宽度。&/p&&p&&br&&/p&&p&更多信息可参考链接:&/p&&a href=&http://link.zhihu.com/?target=https%3A//github.com/ApolloAuto/apollo/blob/mobileye_radar/modules/drivers/proto/delphi_esr.proto& data-draft-node=&block& data-draft-type=&link-card& data-image=&https://pic4.zhimg.com/v2-c4e29ed509f7c615da311b_ipico.jpg& data-image-width=&400& data-image-height=&400& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ApolloAuto/apollo&/a&&p&目前国际上主流的毫米波雷达供应商有四家,分别是Autoliv(奥托立夫)、Bosch(博世)、Continental(大陆)、Delphi(德尔福),业界简称ABCD。各家的毫米波雷达的产品提供的功能大同小异,大部分功能都是通过障碍物的回波能量、距离、角度信息推算而来的。&/p&&p&&br&&/p&&p&&b&毫米波雷达的挑战&/b&&/p&&p&&br&&/p&&p&在谈论挑战之前,先直观地感受一下激光雷达的数据吧。该视频是在某段高速公路上采集的毫米波雷达数据。&/p&&a class=&video-box& href=&http://link.zhihu.com/?target=https%3A//www.zhihu.com/video/133568& target=&_blank& data-video-id=&& data-video-playable=&true& data-name=&& data-poster=&https://pic4.zhimg.com/80/v2-31e0b7cc136d51ede5e013_b.jpg& data-lens-id=&133568&&
&img class=&thumbnail& src=&https://pic4.zhimg.com/80/v2-31e0b7cc136d51ede5e013_b.jpg&&&span class=&content&&
&span class=&title&&&span class=&z-ico-extern-gray&&&/span&&span class=&z-ico-extern-blue&&&/span&&/span&
&span class=&url&&&span class=&z-ico-video&&&/span&https://www.zhihu.com/video/133568&/span&
&p&&br&&/p&&p&没有流量的直接看图。图左为毫米波雷达检测障碍物的位置信息;图右是实际的道路场景。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-996b04e4afdd7b3b4cdf6ba26a3091cd_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&813& data-rawheight=&568& class=&origin_image zh-lightbox-thumb& width=&813& data-original=&https://pic2.zhimg.com/v2-996b04e4afdd7b3b4cdf6ba26a3091cd_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-5ebb1bbc67ff2cabd930_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&814& data-rawheight=&568& class=&origin_image zh-lightbox-thumb& width=&814& data-original=&https://pic1.zhimg.com/v2-5ebb1bbc67ff2cabd930_r.jpg&&&/figure&&p&图中灰色圆圈的中心为雷达的安装位置,蓝色的点为静止的障碍物,粉红色的点移动的障碍物。&/p&&p&&br&&/p&&p&可以很清晰地看到蓝色的点组成了一条直线,这条直线其实就是铁护栏。但是如何让计算机知道这么多点里面有这么一条护栏呢?这就是算法工程师每天要做的事情啦。&/p&&p&&br&&/p&&p&实际开发的过程中,在自动驾驶领域应用毫米波雷达有一下三点挑战。&/p&&p&&br&&/p&&blockquote&&b&挑战1:数据稳定性差&/b&&/blockquote&&p&很明显...看到这样(乱且不稳定)的数据,工程师也表示很绝望。数据的不稳定性对后续的软件算法提出了较高的要求。&/p&&p&&br&&/p&&blockquote&&b&挑战2:对金属敏感&/b&&/blockquote&&p&由于毫米波雷达发出的电磁波对金属极为敏感,在实际测试过程中会发现近处路面上突然出现的钉子、远距离外的金属广告牌都会被认为是障碍物。一旦车辆高速行驶,被这些突然跳出的障碍物干扰时,会导致刹车不断,导致汽车的舒适性下降。&/p&&p&&br&&/p&&blockquote&&b&挑战3:高度信息缺失&/b&&/blockquote&&p&毫米波雷达的数据只能提供距离和角度信息,不能像激光雷达那样提供高度信息。没有高度信息的障碍物点会给技术开发带来很多挑战。&/p&&hr&&h2&&b&小结&/b&&/h2&&p&&br&&/p&&p&上面的分享基本上能让大家了解毫米波雷达的原理和数据长什么样。再结合前几期分享中介绍的激光雷达和摄像机的特性,会发现,不同的传感器都有其优势和缺陷。如何融合这些传感器的优势,弥补不足就是我现在的主要工作啦。&/p&&p&&br&&/p&&p&好了\(^o^)/~,这篇毫米波雷达的分享就到这里啦。&/p&&p&&br&&/p&&p&如果您觉得有收获,希望您能给文章点个赞,如果能加个关注就更好啦~&/p&&p&&br&&/p&&p&感谢(?ω?)?!&/p&&p&&/p&
前言 在上一次分享中,我对无人驾驶汽车上的激光雷达的原理、数据及功能做了介绍。 激光雷达的普及所遇到的最大挑战是:成本过高。单独一个雷达的价格可能就超过了普通小汽车的价格,因此现阶段还没有大规模量产的可能性。 为了推进自动驾驶技术的发展,同…
&p&Google从2009年开始做自动驾驶,到现在已有8个年头。8个年头的技术积累还无法将自动驾驶技术量产落地,可见自动驾驶技术并不简单。&/p&&p&&br&&/p&&p&自动驾驶是一个庞大而且复杂的工程,涉及的技术很多,大部分答主仅从软件方面进行了介绍,而且太过细致。我从&b&硬件&/b&和&b&软件&/b&两方面谈一谈自动驾驶汽车所涉及的技术。&/p&&p&&br&&/p&&h2&&b&硬件&/b&&/h2&&p&离开硬件谈自动驾驶都是耍流氓。&/p&&p&先看个图,下图基本包含了自动驾驶研究所需要的各种硬件。&/p&&figure&&img src=&https://pic1.zhimg.com/50/v2-b166cb700b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&984& data-rawheight=&700& class=&origin_image zh-lightbox-thumb& width=&984& data-original=&https://pic1.zhimg.com/50/v2-b166cb700b_r.jpg&&&/figure&&p&图片出处:&u&&a href=&//link.zhihu.com/?target=https%3A//www.e-sciencecentral.org/articles/SC& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&e-sciencecentral.org/ar&/span&&span class=&invisible&&ticles/SC&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&p&&br&&/p&&p&然而...&/p&&p&这么多传感器并不一定会同时出现在一辆车上。某种传感器存在与否,取决于这辆车需要完成什么样的任务。如果只需要完成高速公路的自动驾驶,类似Tesla 的 AutoPilot 功能,那根本不需要使用到激光传感器;如果你需要完成城区路段的自动驾驶,没有激光传感器,仅靠视觉是很困难的。&/p&&p&&b&&i&自动驾驶系统工程师要以任务为导向,进行硬件的选择和成本控制。&/i&&/b&&/p&&p&&br&&/p&&p&&b&&i&1.汽车&/i&&/b&&/p&&p&既然要做自动驾驶,汽车当然是必不可少的东西。&/p&&p&从我司做自动驾驶的经验来看,做开发时,&b&能不选纯汽油车就别选&/b&。&/p&&p&一方面是整个自动驾驶系统所消耗的电量巨大,混动和纯电动在这方面具有明显优势。另一方面是是发动机的底层控制算法相比于电机复杂太多,与其花大量时间在标定和调试底层上,不如直接选用电动车研究更高层的算法。&/p&&p&国内也有媒体专门就测试车辆的选择做过调研。&a href=&//link.zhihu.com/?target=http%3A//www.sohu.com/a/0865& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&为什么谷歌、苹果不约而同选择这款车?&/a&&/p&&p&&br&&/p&&p&&b&&i&2.控制器&/i&&/b&&/p&&p&在前期算法预研阶段,推荐使用&b&工控机(Industrial PC,IPC)&/b&作为最直接的控制器解决方案。因为工控机相比于嵌入式设备更稳定、可靠,社区支持及配套的软件也更丰富。&/p&&p&百度开源的Apollo推荐了一款包含GPU的工控机,型号为 &b&Nuvo-5095GC&/b&,如下图。&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-7c13faa903edade8cfc01c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&594& data-rawheight=&644& class=&origin_image zh-lightbox-thumb& width=&594& data-original=&https://pic3.zhimg.com/50/v2-7c13faa903edade8cfc01c_r.jpg&&&/figure&&p&图片出处:&a href=&//link.zhihu.com/?target=https%3A//github.com/ApolloAuto/apollo/blob/master/docs/quickstart/apollo_1_0_hardware_system_installation_guide.md& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Github ApolloAuto&/a&&/p&&p&当算法研究得较为成熟时,就可以将嵌入式系统作为控制器,比如Audi和TTTech共同研发的&b&&a href=&//link.zhihu.com/?target=https%3A//www.tttech.com/markets/automotive/projects-references/audi-zfas/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&zFAS&/a&&/b&,目前已经应用在最新款Audi A8上量产车上了。&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-6802ebba7468e75dbb2c68_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&4928& data-rawheight=&3264& class=&origin_image zh-lightbox-thumb& width=&4928& data-original=&https://pic3.zhimg.com/50/v2-6802ebba7468e75dbb2c68_r.jpg&&&/figure&&p&图片出处:&a href=&//link.zhihu.com/?target=http%3A//geekcar.net/archives/22422& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&奥迪在 CES 上做了什么?&/a&&/p&&p&&br&&/p&&p&&b&&i&3.CAN卡&/i&&/b&&/p&&p&工控机与汽车底盘的交互必须通过专门的语言——CAN。从底盘获取当前车速及方向盘转角等信息,需要解析底盘发到CAN总线上的数据;工控机通过传感器的信息计算得到方向盘转角以及期望车速后,也要通过 CAN卡 将消息转码成底盘可以识别的信号,底盘进而做出响应。CAN卡可以直接安装在工控机中,然后通过外部接口与CAN总线相连。&/p&&p&Apollo使用的CAN卡,型号为 &b&ESD CAN-PCIe/402&/b&,如下图。&/p&&figure&&img src=&https://pic1.zhimg.com/50/v2-691e8972ae84ccfad1cdaa0_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&364& data-rawheight=&520& class=&content_image& width=&364&&&/figure&&p&&br&&/p&&p&&b&&i&4.全球定位系统(GPS)+惯性测量单元(IMU)&/i&&/b&&/p&&p&人类开车,从A点到B点,需要知道A点到B点的地图,以及自己当前所处的位置,这样才能知道行驶到下一个路口是右转还是直行。&/p&&p&无人驾驶系统也一样,依靠GPS+IMU就可以知道自己在哪(经纬度),在朝哪个方向开(航向),当然IMU还能提供诸如横摆角速度、角加速度等更丰富的信息,这些信息有助于自动驾驶汽车的定位和决策控制。&/p&&p&Apollo的GPS型号为&b&NovAtel GPS-703-GGG-HV&/b&,IMU型号为&b&NovAtel SPAN-IGM-A1&/b&。&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-d6b7833392dbbb8976888_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1125& data-rawheight=&495& class=&origin_image zh-lightbox-thumb& width=&1125& data-original=&https://pic4.zhimg.com/50/v2-d6b7833392dbbb8976888_r.jpg&&&/figure&&p&&br&&/p&&p&&b&&i&5.感知传感器&/i&&/b&&/p&&p&相信大家对车载传感器都耳熟能详了。&/p&&p&感知传感器分为很多种,包括视觉传感器、激光传感器、雷达传感器等。&/p&&p&视觉传感器就是摄像头,摄像头分为单目视觉,双目(立体)视觉。比较知名的视觉传感器提供商有以色列的&b&&a href=&//link.zhihu.com/?target=https%3A//www.mobileye.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Mobileye&/a&&/b&,加拿大的&b&&a href=&//link.zhihu.com/?target=https%3A//www.ptgrey.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&PointGrey&/a&&/b&,德国的&b&Pike&/b&等。&/p&&p&激光传感器分为单线,多线一直到64线。每多一线,成本上涨1万RMB,当然相应的检测效果也更好。比较知名的激光传感器提供商有美国的&b&&a href=&//link.zhihu.com/?target=http%3A//www.velodynelidar.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Velodyne&/a&&/b&和&b&Quanergy&/b&,德国的&b&&a href=&//link.zhihu.com/?target=https%3A//www.ibeo-as.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Ibeo&/a&&/b&等。国内有&b&&a href=&//link.zhihu.com/?target=http%3A//www.robosense.cn/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&速腾聚创&/a&&/b&和&b&&a href=&//link.zhihu.com/?target=http%3A//www.hesaitech.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&禾赛科技&/a&&/b&。&/p&&p&雷达传感器是车厂Tier1的强项,因为雷达传感器已经在汽车上得到了广泛使用。知名的供应商当然是博世、德尔福、电装等。&/p&&p&&br&&/p&&p&&b&&i&6.硬件部分总结&/i&&/b&&/p&&p&组装一套可以完成某项功能的自动驾驶系统需要及其丰富的经验,并且要对各传感器的性能边界及控制器计算能力了如指掌。优秀的系统工程师能在满足功能的要求下将成本控制在最低,使其量产、落地的可能性更大。&/p&&p&&br&&/p&&h2&&b&软件&/b&&/h2&&p&大部分答主已对软件进行了阐述,我也从我的角度介绍以下软件的开发。&/p&&p&软件部分的内容已在我的回答:&a href=&https://www.zhihu.com/question//answer/& class=&internal&&无人驾驶,个人如何研究?&/a& 中进行了介绍。&/p&&p&以下内容前半段为搬运。&/p&&p&&br&&/p&&p&软件包含四层:感知、融合、决策、控制。&/p&&p&各个层级之间都需要编写代码,去实现信息的转化,更细化的分类如下。&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-4e469b231d4aea_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1919& data-rawheight=&1054& class=&origin_image zh-lightbox-thumb& width=&1919& data-original=&https://pic2.zhimg.com/50/v2-4e469b231d4aea_r.jpg&&&/figure&&p&&b&&i&1.采集&/i&&/b&&/p&&p&传感器跟我们的PC或者嵌入式模块通信时,会有不同的传输方式。&/p&&p&比如我们采集来自摄像机的图像信息,有的是通过千兆网卡实现的通信,也有的是直接通过视频线进行通信的。再比如某些毫米波雷达是通过CAN总线给下游发送信息的,因此我们必须编写解析CAN信息的代码。&/p&&p&不同的传输介质,需要使用不同的协议去解析这些信息,这就是上文提到的&b&“驱动层”&/b&。&/p&&p&通俗地讲就是把传感器采集到的信息全部拿到,并且编码成团队可以使用的数据。&/p&&p&&br&&/p&&p&&b&&i&2.预处理&/i&&/b&&/p&&p&传感器的信息拿到后会发现不是所有信息都是有用的。&/p&&p&传感器层将数据以一帧一帧、固定频率发送给下游,但下游是无法拿每一帧的数据去进行决策或者融合的。为什么?&/p&&p&因为传感器的状态不是100%有效的,如果仅根据某一帧的信号去判定前方是否有障碍物(有可能是传感器误检了),对下游决策来说是极不负责任的。因此上游需要对信息做预处理,以保证车辆前方的障碍物在时间维度上是一直存在的,而不是一闪而过。&/p&&p&这里就会使用到智能驾驶领域经常使用到的一个算法——卡尔曼滤波。&/p&&p&&br&&/p&&p&&i&&b&3.坐标转换&/b&&/i&&/p&&p&坐标转换在智能驾驶领域十分重要。&/p&&p&传感器是安装在不同地方的,比如超声波雷达(上图中橘黄色小区域)是布置在车辆周围的;当车辆右方有一个障碍物,距离这个超声波雷达有3米,那么我们就认为这个障碍物距离车有3米吗?&/p&&p&并不一定!因为决策控制层做车辆运动规划时,是在车体坐标系下做的(车体坐标系一般以后轴中心为O点),所以最终所有传感器的信息,都是需要转移到自车坐标系下的。&/p&&p&因此感知层拿到3m的障碍物位置信息后,必须将该障碍物的位置信息转移到自车坐标系下,才能供规划决策使用。&/p&&p&同理,摄像机一般安装在挡风玻璃下面,拿到的数据也是基于摄像机坐标系的,给下游的数据,同样需要转换到自车坐标系下。&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-40e6c816facc5e11cee43da_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1920& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic3.zhimg.com/50/v2-40e6c816facc5e11cee43da_r.jpg&&&/figure&&p&什么是自车坐标系?&/p&&p&请拿出你的右手,以大拇指 → 食指 → 中指 的顺序开始念 X、Y、Z。&/p&&p&然后把手握成如下形状:&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-7bc7cbe9fc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&427& data-rawheight=&410& class=&origin_image zh-lightbox-thumb& width=&427& data-original=&https://pic4.zhimg.com/50/v2-7bc7cbe9fc_r.jpg&&&/figure&&p&把三个轴的交点(食指根部)放在自车坐标系后轴中心,Z轴指向车顶,X轴指向车辆前进方向。&/p&&p&各个团队可能定义的坐标系方向不一致,只要开发团队内部统一即可。&/p&&p&&br&&/p&&p&&b&&i&4.信息融合&/i&&/b&&/p&&p&信息融合是指把相同属性的信息进行&b&多合一&/b&操作。&/p&&p&比如摄像机检测到了车辆正前方有一个障碍物,毫米波也检测到车辆前方有一个障碍物,激光雷达也检测到前方有一个障碍物,而实际上前方只有一个障碍物,所以我们要做的是把多传感器下这辆车的信息进行一次融合,以此告诉下游,前面有一辆车,而不是三辆车。&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-ccdad57ce3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1920& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic2.zhimg.com/50/v2-ccdad57ce3_r.jpg&&&/figure&&p&&br&&/p&&p&&b&5.决策规划&/b&&/p&&p&这一层次主要设计的是拿到融合数据后,如何正确做规划。&/p&&p&规划包含纵向控制和横向控制。&/p&&p&纵向控制即速度控制,表现为 什么时候加速,什么时候制动。&/p&&p&横向控制即行为控制,表现为 什么时候换道,什么时候超车等&/p&&p&&br&&/p&&p&&b&6.软件长什么样子?&/b&&/p&&p&自动驾驶系统中的部分软件看起来和下面类似。&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-3decb7bfce634af_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&459& data-rawheight=&268& class=&origin_image zh-lightbox-thumb& width=&459& data-original=&https://pic2.zhimg.com/50/v2-3decb7bfce634af_r.jpg&&&/figure&&p&软件的名字反映了该软件的实际作用&/p&&p&app_driver_camera 摄像机驱动&/p&&p&app_driver_hdmap 高精度地图驱动&/p&&p&app_driver_ins 惯导驱动&/p&&p&app_driver_lidar 激光传感器驱动&/p&&p&app_driver_mwr 毫米波传感器驱动&/p&&p&app_fusion_freespace 自由行驶区域融合&/p&&p&app_fusion_lane 车道线融合&/p&&p&app_fusion_obstacle 障碍物融合&/p&&p&app_planning&decision 规划决策&/p&&p&然而实际上攻城狮们会编写一些其他软件用于自己的调试工作,比如记录数据和回放数据的工具。&/p&&figure&&img src=&https://pic1.zhimg.com/50/v2-e69e7a0fe7256cb0aadab_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&295& data-rawheight=&83& class=&content_image& width=&295&&&/figure&&p&还有用于传感器信息显示的可视化程序,类似下图的效果。&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-1ad79dfebec722ec8409_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&899& data-rawheight=&967& class=&origin_image zh-lightbox-thumb& width=&899& data-original=&https://pic4.zhimg.com/50/v2-1ad79dfebec722ec8409_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/50/v2-8ec2f717b49ddd4ae9d1c2_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1920& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic1.zhimg.com/50/v2-8ec2f717b49ddd4ae9d1c2_r.jpg&&&/figure&&p&图片出处:&u&&a href=&//link.zhihu.com/?target=http%3A//open.163.com/movie/2015/10/U/U/MB1G83TR9_MB1GMCRUU.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&open.163.com/movie/2015&/span&&span class=&invisible&&/10/U/U/MB1G83TR9_MB1GMCRUU.html&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&p&&br&&/p&&p&关注公众微信:&b&自动驾驶干货铺&/b&,回复“&b&资料&/b&”获取更多自动驾驶相关资料。&/p&&p&&br&&/p&&p&&b&———————分割线———————&/b&&/p&&p&&b&知乎专栏:&/b&&a href=&https://zhuanlan.zhihu.com/c_& class=&internal&&无人驾驶干货铺&/a&&/p&&p&&br&&/p&&p&&b&更多无人驾驶的内容:&/b&&/p&&p&&a href=&https://www.zhihu.com/question//answer/& class=&internal&&互联网公司和汽车企业都在开发自动驾驶,你更看好谁?&/a&&/p&&p&&a href=&https://www.zhihu.com/question//answer/& class=&internal&&自动驾驶汽车涉及哪些技术?&/a&&/p&&p&&a href=&https://www.zhihu.com/question//answer/& class=&internal&&高精地图对自动驾驶来说有多重要?在自动驾驶上和一般的导航地图有什么区别?&/a&&/p&&p&&a href=&https://www.zhihu.com/question//answer/& class=&internal&&无人驾驶,个人如何研究?&/a&&/p&&p&&br&&/p&&p&&b&更多段子:&/b&&/p&&p&&a href=&https://www.zhihu.com/question//answer/& class=&internal&&你珍藏了哪些高级黑的段子?&/a&&/p&&p&&br&&/p&&p&&b&你这么好看,一定很会点赞~&/b&&/p&
Google从2009年开始做自动驾驶,到现在已有8个年头。8个年头的技术积累还无法将自动驾驶技术量产落地,可见自动驾驶技术并不简单。 自动驾驶是一个庞大而且复杂的工程,涉及的技术很多,大部分答主仅从软件方面进行了介绍,而且太过细致。我从硬件和软件两…
&p&推荐几本书吧:&/p&&br&&p&&b&智能汽车:先进传感与控制&/b&&/p&&p&亚马逊链接:&a href=&//link.zhihu.com/?target=https%3A//www.amazon.cn/dp/B01N6703VN/ref%3Dpd_luc_rh_wl_01_01_t_img_lh%3F_encoding%3DUTF8%26psc%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《智能汽车:先进传感与控制》 李力,王飞跃, 李力、郭伟、杨柳青【摘要 书评 试读】图书&/a&&/p&&br&&p&&b&第一本无人驾驶技术书&/b&&/p&&p&京东链接:&a href=&//link.zhihu.com/?target=https%3A//item.jd.com/.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《第一本无人驾驶技术书》(刘少山,唐洁,吴双,李力耘)【摘要 书评 试读】- 京东图书&/a&&/p&&br&&p&&b&Driverless: Intelligent Cars and the Road Ahead&/b&&/p&&p&亚马逊链接:&a href=&//link.zhihu.com/?target=https%3A//www.amazon.com/Driverless-Intelligent-Cars-Ahead-Press/dp/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Intelligent Cars and the Road Ahead (MIT Press): Hod Lipson, Melba Kurman: 4: Amazon.com: Books&/a&&/p&
推荐几本书吧: 智能汽车:先进传感与控制亚马逊链接: 第一本无人驾驶技术书京东链接:
&figure&&img src=&https://pic2.zhimg.com/v2-_b.jpg& data-rawwidth=&550& data-rawheight=&310& class=&origin_image zh-lightbox-thumb& width=&550& data-original=&https://pic2.zhimg.com/v2-_r.jpg&&&/figure&&p&&b&自动驾驶是什么时候提出的概念?&/b&&/p&&p&&b&发展的历程怎样?&/b&&/p&&p&&b&如今的现状如何?&/b&&/p&&p&&b&哪家车企在技术储备上最牛逼?&/b&&/p&&p&&b&第一款自动驾驶的车型是谁?&/b&&/p&&p&&b&量产落地的难点又在哪?&/b&&/p&&p&&b&自动驾驶的赛事怎么玩?&/b&&/p&&p&&b&......&/b&&/p&&p&讲真,自动驾驶现在对我们来说既熟悉又陌生,熟悉的是这两年厂家各种宣传和规划铺天盖地,回到现实却看不到一辆真正具备自动驾驶的车型,所以终归还是陌生。关于自动驾驶,大家可能更多都是看热闹的态度,但自动驾驶究竟是怎么一回事,你真的知道么?&/p&&p&如果你有自动驾驶这样那样的疑问,来,上车,我们花5分钟解锁下姿势点。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-c9d01f0fc71bb94e43a3e55fa3fdd102_b.jpg& data-rawwidth=&600& data-rawheight=&400& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic1.zhimg.com/v2-c9d01f0fc71bb94e43a3e55fa3fdd102_r.jpg&&&/figure&&h2&&b&自动驾驶是谁先提出来的?&/b&&/h2&&p&我们都知道童话故事里有这么一个神器:魔毯。魔毯和汽车没什么关系,但我们可以它身上看到人类两个很大胆的想法,一个是飞行;一个是自动从A点到达B点。如今飞行已经成为现实,从A点到B点的自动出行听着和自动驾驶就有点像,如果胡扯自动驾驶和魔毯貌似也能硬拉点关系,逃~&/p&&figure&&img src=&https://pic1.zhimg.com/v2-c3236dfceb4a0de4ab574_b.jpg& data-rawwidth=&1200& data-rawheight=&960& class=&origin_image zh-lightbox-thumb& width=&1200& data-original=&https://pic1.zhimg.com/v2-c3236dfceb4a0de4ab574_r.jpg&&&/figure&&p&&br&&/p&&p&魔毯当时是题外话,其实自动驾驶的萌芽最早可以追溯到上世纪20年代。我们知道第一款汽车来自1886年的卡尔奔驰,在那之后马车向汽车的演变史中,直到上世纪20年代中期,美国一家叫Houdina的无线电控制公司在一款车上安装了无线接收和控制装置,并称其为“Linrrican Wonder”,这台车本质上和我们今天小孩玩的遥控赛车相似,或者你说它遥控驾驶也行,但值得注意的是,这可能是人类在和自动驾驶相关领域里的最早一次尝试。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-fb891aec048dbd3ae1dce_b.jpg& data-rawwidth=&787& data-rawheight=&540& class=&origin_image zh-lightbox-thumb& width=&787& data-original=&https://pic3.zhimg.com/v2-fb891aec048dbd3ae1dce_r.jpg&&&/figure&&p&无线控制带来了更多可能,之后在1939年,工业设计师诺曼·贝尔·格迪斯Norman Bel Geddes联手通用汽车展出了一个对未来城市交通的规划设计:Futurama。他们幻想着在1960 年左右的未来城市中,美国高速配有类似火车轨一样的设计(如下图),所有车辆都为无线电控制的电动车,汽车上了高速就启动,自动根据铁轨轨迹和速度前行,等于有自己的专属车道,出了高速恢复人类驾驶。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-2d6eb3db0a5b46b3456a6_b.jpg& data-rawwidth=&1000& data-rawheight=&796& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&https://pic2.zhimg.com/v2-2d6eb3db0a5b46b3456a6_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-96da28985fcf46fc0883be_b.jpg& data-rawwidth=&2400& data-rawheight=&3000& class=&origin_image zh-lightbox-thumb& width=&2400& data-original=&https://pic1.zhimg.com/v2-96da28985fcf46fc0883be_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-ba5edeb935ca671f2dd6a_b.jpg& data-rawwidth=&2392& data-rawheight=&1912& class=&origin_image zh-lightbox-thumb& width=&2392& data-original=&https://pic4.zhimg.com/v2-ba5edeb935ca671f2dd6a_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-e5f2e7f28abea_b.jpg& data-rawwidth=&701& data-rawheight=&497& class=&origin_image zh-lightbox-thumb& width=&701& data-original=&https://pic2.zhimg.com/v2-e5f2e7f28abea_r.jpg&&&/figure&&p&&i&PS:上图是当时排队看Futurama,可见人们对自动驾驶,对未来的出行还是相当有兴趣的&/i&&/p&&p&&br&&/p&&p&到了50年代,美国无线电公司利用铺设在地面上的电线或磁条和车辆通讯,进行引导和控制车辆,并在1958年实现了全尺寸设备的成功运行。虽然看图片也很有自动驾驶的感觉,车内人员尽情娱乐,但这本质上还是根据引导进行驾驶,并不能算是真正的自由驾驶。这种类型的尝试,通用也Firebird
III概念车也这么干过。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-1eef29eb06ac34e8ae75d3_b.jpg& data-rawwidth=&542& data-rawheight=&538& class=&origin_image zh-lightbox-thumb& width=&542& data-original=&https://pic4.zhimg.com/v2-1eef29eb06ac34e8ae75d3_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-f64a5909a2fadffcce22_b.jpg& data-rawwidth=&704& data-rawheight=&377& class=&origin_image zh-lightbox-thumb& width=&704& data-original=&https://pic2.zhimg.com/v2-f64a5909a2fadffcce22_r.jpg&&&/figure&&p&&i&通用Firebird
III概念车&/i&&/p&&p&&br&&/p&&p&从技术进步角度来说,70年代对于自动驾驶来说是重要的一年。因为在1977年日本筑波工程实验室研发出了世界上第一台基于摄像头来检测前方路况,实现导航,这意味着这辆车可以通过摄像头检测到道路上的白色标记来确定前进线路,不再需要提前把脉冲发射器埋在路面里了。&/p&&p&&br&&/p&&p&另外,自动驾驶在军事上的应用优势显而易见,所以1983年美国国防部高级研究计划局(DARPA)推出了一个自主地面车辆计划ALV,装备了激光雷达系统, 成为世界上第一辆装备该系统的车型,随后因为经费问题项目搁浅。包括在之后的1987年,奔驰与慕尼黑联邦国防军大学一起推出自动驾驶车VaMoRs,配备了两个摄像头、传感器和处理器,可以独自在实际街道上以63km/h的速度行驶。这些对于自动驾驶来说都是非常积极意义的,包括在研究自动驾驶的过程中,其实也衍生出了像ACC这样的巡航功能。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-b6ec1e33a3b785ed3ce6_b.jpg& data-rawwidth=&543& data-rawheight=&360& class=&origin_image zh-lightbox-thumb& width=&543& data-original=&https://pic1.zhimg.com/v2-b6ec1e33a3b785ed3ce6_r.jpg&&&/figure&&p&&br&&/p&&p&再后来,随着计算机、地图、传感器等进步,对自动驾驶来说等于打了一波辅助,直到谷歌开始对外宣布做无人驾驶、引起全民关注,大家纷纷好奇:一个互联网公司搞啥自动驾驶?&/p&&p&&br&&/p&&p&随后自动驾驶的狂欢全民热就开始了,奔驰、宝马、沃尔沃等车企均宣布加入、零件供应商也有所跟进,更多互联网公司也纷纷入局。所以说无论是《霹雳游侠》还是《i,Robot》给你对自动驾驶有了幻想,这事离我们都越来越近了。去年开始,Uber可以打到无人驾驶的出租车了,美国交通部也出台了针对自动驾驶的相关政策了,各种自动驾驶车在测试的新闻层出不穷...&/p&&p&&br&&/p&&h2&&b&第一个实现自动驾驶的是谁?&/b&&/h2&&p&&br&&/p&&p&那么问题来了,既然自动驾驶的历史可以追溯到这么久,那第一个实现自动驾驶的是谁?其实就目前来看,自动驾驶大家都已经在做,很多车企内测的车型均实现Level 3甚至Level4级别的自动驾驶功能,但真正实现量产化的车企只有一家,就是奥迪。&/p&&p&&br&&/p&&p&今年奥迪发布了新一代A8,其自带了Level 3级别的自动驾驶功能,在时速60km/h的时速下可以自动驾驶,能够真正做到解放驾驶员的双眼。很多人会提特斯拉,但从SAE对自动驾驶等级的划分中,其实Level 3开始,才算真正的自动驾驶,特斯拉现在顶多算Level2.5。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-d49b9b1f8da_b.jpg& data-rawwidth=&823& data-rawheight=&549& class=&origin_image zh-lightbox-thumb& width=&823& data-original=&https://pic2.zhimg.com/v2-d49b9b1f8da_r.jpg&&&/figure&&p&&br&&/p&&p&附上自动驾驶的分级划分,以便大家理解&/p&&p&&b&·&/b& &b&L1&/b&是辅助驾驶,&b&解放双脚&/b&,带有自适应巡航、紧急制动功能车型均可为代表车型。&/p&&p&&b&·&/b& &b&L2&/b&是部分自动驾驶,&b&解放双手&/b&,代表车型有特斯拉S;&/p&&p&&b&·&/b& &b&L3&/b&是有条件自动驾驶,&b&解放双眼&/b&;代表车型奥迪A8&/p&&p&&b&·&/b& &b&L4&/b&是高度自动驾驶,&b&解放大脑&/b&;暂无&/p&&p&&b&·&/b& &b&L5&/b&即完全自动化,&b&解放驾驶者&/b&。暂无&/p&&p&不过可以预见的是,随着奥迪带来Level 3级别的A8,其它竞品也相继会有所跟进,再结合车企纷纷表态在2020年左右带来量产化自动驾驶车,未来5-10年应该是自动驾驶车开始爆发量产的时间段。&/p&&p&&br&&/p&&p&&b&自动驾驶量产落地的难点在哪?&/b&&/p&&p&&br&&/p&&p&其实以目前的研发实力和技术储备,在封闭路段实现自动驾驶一点也不难,真正影响自动驾驶落地量产的原因其实就三点。&/p&&p&&br&&/p&&p&&b&1、&/b&技术层面感知和决策的算法无法做到百分百可靠,因为驾驶环境是开放的,外界共存的不可控因素如何应对,有时候真不是技术层面可以应对的。&/p&&p&&b&2、&/b&Level3以上的自动驾驶车会涉及激光雷达,而这玩意本身就不便宜,那么以激光雷达为主感知器件,在量产商业化道路上如何解决成本也是一个问题。&/p&&p&&b&3、&/b&道路法规的落地,车辆与交通系统的互联建立等,这些都是相当复杂的系统工程。&/p&&p&&br&&/p&&p&这里面尤其是技术层面是个大问题,我也和自动驾驶工程师的请教过,对方也表示即使法规一路绿灯,技术也将成为自动驾驶落地的障碍。&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-8d72b7bffa8fadfae8d21fd2_b.jpg& data-rawwidth=&700& data-rawheight=&443& class=&origin_image zh-lightbox-thumb& width=&700& data-original=&https://pic2.zhimg.com/v2-8d72b7bffa8fadfae8d21fd2_r.jpg&&&/figure&&p&&br&&/p&&h2&&b&一场没有人的竞技:DARPA赛事&/b&&/h2&&p&既然技术是量产化的难点,自动驾驶的技术又是如何去验证的呢?这里就要插播一个自动驾驶领域里面的一股清流:DARPA赛事。这是美国国防部高级研究计划局于2004年开始举办自动驾驶汽车挑战赛,目的很简单,通过比赛不断研发提升自动驾驶技术。&/p&&p&&br&&/p&&p&国会发话了:DARPA你们好好搞,能给军事应用带来帮助的自动驾驶技术都给设个奖金,不多,100万美金。毫无疑问,冲着奖金,不对,冲着对自动驾驶的热情和向往,这项赛事无形中在极限环境下促进了无人驾驶车辆技术的发展,因为他们举办的地点都是野地沙漠之类的地方,路况糟糕。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-caca00e34_b.jpg& data-rawwidth=&701& data-rawheight=&396& class=&origin_image zh-lightbox-thumb& width=&701& data-original=&https://pic3.zhimg.com/v2-caca00e34_r.jpg&&&/figure&&p&赛事起初还是挺冷门,04年那一年没人能够完成240公里的赛事,因为有些自动驾驶车走了几公里就撞毁,而当时跑的最远的也就11公里多就歇菜了。毕竟第一次玩嘛,如今基本都是小儿科,完赛是基础作业。拼的是谁用时少,谁遵守交通规则,谁没有剐蹭失误等等,一定程度上也促进无人驾驶技术朝着更健康的方向去发展。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-e9a7ed8ad0dbe5c259bfcbcf694a6299_b.jpg& data-rawwidth=&550& data-rawheight=&336& class=&origin_image zh-lightbox-thumb& width=&550& data-original=&https://pic2.zhimg.com/v2-e9a7ed8ad0dbe5c259bfcbcf694a6299_r.jpg&&&/figure&&p&为什么要在路况复杂的赛道去做无人驾驶的竞技,很简单,因为赛场是检验技术的试验田,这个道理在汽车圈大家都心知肚明。其实不仅仅DARPA赛事,像我们知道的很多品牌在自动驾驶的研发测试中也会在各种赛道中去跑。&/p&&p&&br&&/p&&p&拿奥迪举例,10年TTS用27分钟自动爬完20公里的派克峰,14年RS7自动驾驶汽车用时2分多,在霍根海姆赛道匹敌了赛车手的圈时。15年索诺玛赛道,RS7自动驾驶概念车又豁出一个不错的圈时。赛道上的测试验证了自动驾驶在驾驶速度上可以比正常驾驶者做的更好。当然,除了赛场,在一些日常驾驶路况,真实路况上,各种路测也一样有同步进行着。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-9c6adc99fb7cc56bba04b_b.jpg& data-rawwidth=&823& data-rawheight=&545& class=&origin_image zh-lightbox-thumb& width=&823& data-original=&https://pic1.zhimg.com/v2-9c6adc99fb7cc56bba04b_r.jpg&&&/figure&&p&&br&&/p&&p&其实坊间也有举办过自动驾驶赛车日,去年5月底在美国南加州一个名为 Thunderhill 的赛道上,当时有两家车厂有来,一个是美国的电动车品牌RENOVO,另一个是奥迪,其它是一些和自动驾驶相关的初创团队和供应商等,据说那场赛事被称为the world’s first autonomous track day。&/p&&p&&br&&/p&&p&如果你想看这类自动驾驶的赛事热闹,放心,真的会有的,因为接下来会有一个叫Roborace的赛事会出现,关键词:无人驾驶汽车比赛,时速可达300km/h!可谓一场活生生的代码竞技。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-c761c8cc3eafbf06be4f097_b.jpg& data-rawwidth=&700& data-rawheight=&467& class=&origin_image zh-lightbox-thumb& width=&700& data-original=&https://pic3.zhimg.com/v2-c761c8cc3eafbf06be4f097_r.jpg&&&/figure&&p&&br&&/p&&h2&&b&谁是目前自动驾驶技术积累最牛逼的企业?&/b&&/h2&&p&既然大家都扎进自动驾驶的浪潮里,谁混的最好呢?&/p&&p&其实自动驾驶的商业化,量产化并不是一家企业独自完成的,在自动驾驶的研发路上,车企和互联网企业、零部件供应商、芯片供应商之间,他们其实有着密切的合作联系,所以很难给出谁技术储备更牛的答案。不过从自动驾驶专利排名来看,我觉得可以给一些参考。像博世、马牌、德尔福这样的零部件供应商在自动驾驶方面的研发并不差。&/p&&p&&br&&/p&&p&车企里面奥迪领先,福特、通用、宝马等紧随其后。谷歌这样的互联网企业在自动驾驶上也一直默默深耕,要知道谷歌目前是自动驾驶路试里程最多的企业。而且它研发的路子和车企不太一样,车企基本属于从Level1-Level5循序渐进的走,谷歌属于一直憋大招,然后一上来就是王炸Level 4、Level5这种。&/p&&p&&br&&/p&&p&关于自动驾驶的零零碎碎就到这里,大家对自动驾驶看好还是不看好,评论区交流。&/p&&p&最后还是那句话:&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&想看自动驾驶的笑话,2020年见!&/a&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-27edb9bf945bdac4219fb_b.jpg& data-rawwidth=&600& data-rawheight=&313& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic1.zhimg.com/v2-27edb9bf945bdac4219fb_r.jpg&&&/figure&&p&&br&&/p&&p&欢迎关注微信公众号:AL频道(ID:autolife2014)&/p&&p&我的主页:&a href=&https://www.zhihu.com/people/shu-jing-2015/activities& class=&internal&&吉姆&/a&&/p&&p&我的回答:&a href=&https://www.zhihu.com/people/shu-jing-2015/answers& class=&internal&&吉姆的回答&/a&&/p&&p&我的知乎专栏:&a href=&https://zhuanlan.zhihu.com/channel-al& class=&internal&&AL频道&/a&&/p&&p&往期精彩热门文章:&/p&&p&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&德国装配率最高的20个汽车配置&/a&&/p&&p&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&本田发动机舱乱是为了维修便利性?NO!&/a&&/p&&p&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&啊啊啊!你高大上的电吸门夹到我手啦!?&/a&&/p&&p&&a href=&https://zhuanlan.zhihu.com/p/?refer=channel-al& class=&internal&&来,扒一扒自主车企各家的销量担当都是谁?&/a&&/p&&p&&a href=&https://zhuanlan.zhihu.com/p/?refer=channel-al& class=&internal&&捷豹为什么坚持全铝车身? - AL频道&/a&&/p&&p&&a href=&https://zhuanlan.zhihu.com/p/?refer=channel-al& class=&internal&&中国自主研发的发动机,你知道多少?&/a&&/p&
自动驾驶是什么时候提出的概念?发展的历程怎样?如今的现状如何?哪家车企在技术储备上最牛逼?第一款自动驾驶的车型是谁?量产落地的难点又在哪?自动驾驶的赛事怎么玩?......讲真,自动驾驶现在对我们来说既熟悉又陌生,熟悉的是这两年厂家各种宣传和规…
&p&作为一个在公司义务给应届生和实习生培训的“小师”,结合我自己学习的经历,从&b&操作手册&/b&的角度,手把手教你“无人驾驶”从&b&入门&/b&到&b&转行&/b&。&/p&&p&&br&&/p&&p&关注微信公众号:&b&自动驾驶干货铺&/b&,回复“&b&资料&/b&”即可获取本文中提到的所有资料。&/p&&p&&br&&/p&&h2&&b&前言&/b&&/h2&&p&先看看无人驾驶基本的硬件构造及其成本&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-eea5aa432d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1132& data-rawheight=&636& class=&origin_image zh-lightbox-thumb& width=&1132& data-original=&https://pic4.zhimg.com/50/v2-eea5aa432d_r.jpg&&&/figure&&p&图片出处:&u&&a href=&//link.zhihu.com/?target=https%3A//www.wired.com/2015/04/cost-of-sensors-autonomous-cars/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&wired.com/2015/04/cost-&/span&&span class=&invisible&&of-sensors-autonomous-cars/&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&p&&br&&/p&&p&看完图,就会发现一个十分尴尬的问题——除了超声波雷达以外,剩下的设备都买不起。&/p&&p&所以个人做无人驾驶研究,在没有大资金支持的情况下,就不要考虑基于实车做研究了。&/p&&p&断了从硬件方面着手做研究的念头,我们直接看看软件方面。&/p&&p&&br&&/p&&p&软件方面可以做的工作就很多了,掌握其中某一项或多项技能,对你在该领域的发展都大有裨益。&/p&&p&&br&&/p&&h2&&b&操作系统安装&/b&&/h2&&p&必学指数:★★★★★&/p&&p&易学指数:★★★★★&/p&&p&既然是做软件,首先得有个操作系统。常见的操作系统Windows/Linux/Mac...(打...的操作系统我也没用过),考虑到社区支持、开发效率,推荐使用 Linux 作为无人驾驶研究的操作系统。&/p&&p&大部分做无人驾驶的团队都用的 Linux,跟着大趋势走,可以省很多事。&/p&&p&Linux 又分为很多版本,最常用且普及率很高的当属 Ubuntu 系列。虽然 Ubuntu 已更新至 17.04,但从稳定性上,推荐安装 14.04 版本。&/p&&p&推荐用一块单独的SSD安装Linux,或者使用虚拟机安装,最不推荐装双系统(不太稳定)&/p&&p&奉上 Linux Ubuntu 14.04 安装包 + 虚拟机安装方法&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-7c499cefc292cf5_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&436& data-rawheight=&125& class=&origin_image zh-lightbox-thumb& width=&436& data-original=&https://pic4.zhimg.com/50/v2-7c499cefc292cf5_r.jpg&&&/figure&&p&&br&&/p&&h2&&b&Linux基本指令&/b&&/h2&&p&必学指数:★★★★★&/p&&p&易学指数:★★★★★&/p&&p&作为Linux的核心——命令行操作不仅对开发大有帮助,而且是装X利器。&/p&&p&另一个好处是使用指令 &b&apt-get install&/b&,可以快捷地完成很多软件的安装,不用像Windows那样,在网上四处寻觅适配的安装包。&/p&&p&Linux的指令很多,而且比较杂,使用起来需要多学,多用。&/p&&p&有道云笔记分享:&a href=&//link.zhihu.com/?target=http%3A//note.youdao.com/noteshare%3Fid%3D36cec%26sub%3D4B455D7E2B7C5B6F1AB31& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&有道云笔记-Linux基本指令介绍&/a&&/p&&p&&br&&/p&&h2&&b&开发环境安装&/b&&/h2&&p&必学指数:★★★★&/p&&p&易学指数:★★★★★&/p&&p&开发环境会涉及很多实际使用的库,不同的程序员处理相同的问题,可能使用不同的库。&/p&&p&下面通过安装我在工作和学习中经常使用到的库,抛砖引玉,将开发者&引进门&。&/p&&p&搭建环境所需安装包:&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-011b371b35a7f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&735& data-rawheight=&125& class=&origin_image zh-lightbox-thumb& width=&735& data-original=&https://pic4.zhimg.com/50/v2-011b371b35a7f_r.jpg&&&/figure&&p&关注微信公众号:&b&自动驾驶干货铺&/b&,回复“&b&开发环境&/b&”,获取资源和安装方法。&/p&&p&详细的安装方法见笔记:&a href=&//link.zhihu.com/?target=http%3A//note.youdao.com/noteshare%3Fid%3Df4decsub%3D45403CBDC073F& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&有道云笔记-Linux开发环境搭建&/a&&/p&&p&&br&&/p&&h2&&b&开发环境介绍&/b&&/h2&&p&必学指数:★★★★&/p&&p&易学指数:★★★&/p&&p&&b&集成开发环境IDE&/b&&/p&&p&前面安装了一款开源的IDE qt,目前 qt 在 Linux 中的地位,就和 Visual Studio 在 Windows 中的地位一样。除非是不使用 IDE 开发的高玩,大部分在 Linux 下做开发的团队还是会选择用 qt 开发的。&/p&&p&qt 的主要作用是做交互式的界面,比如在界面中显示当前传感器采集到的各种信息。界面交互会明显加快开发者调试程序和标定参数的过程。&/p&&p&&i&Tips:&/i&&/p&&p&熟悉 qt 可以网上找教程,我更推荐系统地学习,比如买一本 Qt 的书。&/p&&p&买书或者去图书馆借书,注意看写书的日期,越新越好,太老的书,相应的版本也很旧。&/p&&p&&br&&/p&&p&&b&OpenCV&/b&&/p&&p&OpenCV是一个非常强大的库,其中封装了大量的可应用于无人驾驶研究的函数,包括各种滤波器算法、特征点提取、矩阵运算、投影坐标转换、机器学习算法等。&/p&&p&当然最重要的是,它在计算机视觉领域的影响力,相机标定,目标检测、识别、跟踪的接口使用起来十分方便。使用OpenCV库完全可以做出这张图展现的效果。&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-0fd615ec9411bdc2fec2b99e219cdbf5_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&407& data-rawheight=&240& class=&content_image& width=&407&&&/figure&&p&图片出处:&u&&a href=&//link.zhihu.com/?target=https%3A//www.nvidia.com/en-us/gtc/sessions/self-driving-and-ai-cars/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&nvidia.com/en-us/gtc/se&/span&&span class=&invisible&&ssions/self-driving-and-ai-cars/&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&p&&i&Tips:&/i&&/p&&p&请至少购买版本为2.4以上的教程学习OpenCV,但目前市面上买得到的OpenCV中文教程都讲的太浅,甚至连经典的Kalman Filter都不介绍。我推荐直接学习英文版的 Learning OpenCV3。&/p&&p&奉上电子版,讲解很详细,每次打印一章阅读,循序渐进。&/p&&p&&br&&/p&&p&&b&libQGLViewer&/b&&/p&&p&libQGLViewer是大名鼎鼎的 OpenGL 适配 qt 的一个库,编程接口及方法与 OpenGL 大同小异,我们经常在各大无人驾驶公司宣传画上看到的环境感知信息的显示,就完全可以用 QGL 做出来。&/p&&figure&&img src=&https://pic1.zhimg.com/50/v2-8ec2f717b49ddd4ae9d1c2_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1920& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic1.zhimg.com/50/v2-8ec2f717b49ddd4ae9d1c2_r.jpg&&&/figure&&p&图片出处:&u&&a href=&//link.zhihu.com/?target=http%3A//open.163.com/movie/2015/10/U/U/MB1G83TR9_MB1GMCRUU.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&open.163.com/movie/2015&/span&&span class=&invisible&&/10/U/U/MB1G83TR9_MB1GMCRUU.html&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&p&&i&Tips:&/i&&/p&&p&学习 libQGLViewer 不需要购买任何教材,官网及压缩包内的 example 就是最好的老师,按照官网的tutorial,把每个例子实现一遍,就基本入门了。&/p&&p&官网链接:&a href=&//link.zhihu.com/?target=http%3A//libqglviewer.com/examples/index.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&libQGLViewer Home Page&/a&&/p&&p&&br&&/p&&p&&b&Boost&/b&&/p&&p&Boost库是有着“C++准标准库”之称。这个库里面有大量的”轮子“,对于C++开发者来说,方便直接调用,避免重造&轮子&。&/p&&p&&i&Tips:&/i&&/p&&p&Boost是基于标准C++开发,其构造用尽精巧手法,不要贸然费时研读,找一份和 Boost 库相关的(电子或纸质)书,把目录读一遍,大致知道里面有哪些功能即可,需要时就某一个点,花时间做研究。&/p&&p&&br&&/p&&p&&b&QCustomplot&/b&&/p&&p&除了上面提到的libQGLViewer外,还可以通过平面图的形式显示车载传感器的信息。鉴于 qt 内部只提供了基本的直线、圆等绘图工具,使用起来并不是很方便,因此QCustomplot诞生了。简单地调用API,然后把想要显示的数据作为参数输入进去,就可以绘制出下面这些很棒的图形。而且可以很方便地拖动和缩放。&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-15c73f82ab3a80e7fd62af_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&998& data-rawheight=&999& class=&origin_image zh-lightbox-thumb& width=&998& data-original=&https://pic3.zhimg.com/50/v2-15c73f82ab3a80e7fd62af_r.jpg&&&/figure&&p&图片出处:&a href=&//link.zhihu.com/?target=http%3A//www.qcustomplot.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&QCustomplot Home Page&/a&&/p&&p&下面是我在实际开发过程中,使用 QCustomplot 显示的部分传感器信息。&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-1ad79dfebec722ec8409_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&899& data-rawheight=&967& class=&origin_image zh-lightbox-thumb& width=&899& data-original=&https://pic4.zhimg.com/50/v2-1ad79dfebec722ec8409_r.jpg&&&/figure&&p&&i&Tips:&/i&&/p&&p&官网提供了该库的源码下载,你只需要在你的工程中导入 .cpp 和 .h 文件即可。跟着官网提供的 &a href=&//link.zhihu.com/?target=http%3A//www.qcustomplot.com/index.php/tutorials/settingup& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&tutorials&/a& 学习,可以快速上手。对照着example中的例程写代码,可以快速把自己的数据变成可视化图像。&/p&&p&&br&&/p&&p&&b&LCM(Lightweight Communications and Marshalling)&/b&&/p&&p&团队开发软件必然存在程序(多进程)的通信问题,多进程通信的方式很多,也各有优缺点,使用起来就见仁见智了。2014年12月MIT公布了他们在美国DARPA机器人挑战赛中使用到的信号传输机制LCM,出处:&a href=&//link.zhihu.com/?target=http%3A//carnegierobotics.com/news//mit-releases-lcm-driver-for-multisense-sl& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&MIT releases LCM driver for MultiSense SL&/a&。&/p&&p&LCM含多种语言如java,c++等专门针对实时系统在高带宽和低的延迟的情况下进行消息发送和数据封送处理。它提供了一个&b&发布/订阅&/b&消息模型、&b&自动封装/解封&/b&代码生成工具含多种编程语言版本。这个模式和 ROS 现在节点间的通信方式很类似。&/p&&p&&i&Tips:&/i&&/p&&p&LCM两个进程间通信的demo官网上有源代码,按照官网上的&a href=&//link.zhihu.com/?target=http%3A//lcm-proj.github.io/tutorial_general.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&tutorial&/a&就能快速建立属于你自己的LCM通信机制。&/p&&p&官方网站:&a href=&//link.zhihu.com/?target=http%3A//lcm-proj.github.io/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&LCM Projcect&/a&&/p&&p&&br&&/p&&p&&b&Git & Github&/b&&/p&&p&Git是团队开发不可缺少的版本控制工具,大家在写论文时肯定每天一个版本,如果没有特别标注每个版本改了些什么时间久了就会忘记。写代码更是如此。&/p&&p&使用Git可以极大地提高多人开发的效率,而且版本管理规范,代码追溯起来十分方便。&/p&&p&Github在软件开发领域如雷贯耳,需要某些代码时,直接上去搜索即可。&/p&&p&&i&Tips:&/i&&/p&&p&目前世面上介绍Git的书,让人看起来十分吃力,而且对细枝末节的东西介绍地太过深入,让人无法快速上手。&/p&&p&于是我要强烈推荐Git入门的教程:&a href=&//link.zhihu.com/?target=https%3A//www.liaoxuefeng.com/wiki/bb000& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&廖雪峰的Git教程&/a&,浅显易懂,而且还配合图文+视频,简直良心。&/p&&p&&br&&/p&&p&以上基本介绍完了开发所需要的东西,掌握好这些东西,就可以来我司面试了。&/p&&p&&br&&/p&&p&&b&———————分割线———————&/b&&/p&&p&现在有了自动驾驶开发的工具,那么再掌握一些自动驾驶开发的流程就如虎添翼了。&/p&&p&下面开始介绍做自动驾驶开发过程需要了解的基础知识。&/p&&p&&br&&/p&&h2&&b&自动驾驶开发流程&/b&&/h2&&p&必学指数:★★★★★&/p&&p&易学指数:★★★★&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-530e0fe3ab0b215db7fe31eb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1919& data-rawheight=&1054& class=&origin_image zh-lightbox-thumb& width=&1919& data-original=&https://pic4.zhimg.com/50/v2-530e0fe3ab0b215db7fe31eb_r.jpg&&&/figure&&p&实现一个智能驾驶系统,会有几个层级:&/p&&p&感知层 → 融合层 → 规划层 → 控制层&/p&&p&更具体一点为:&/p&&p&传感器层 → 驱动层 → 信息融合层 → 决策规划层 → 底层控制层&/p&&p&&br&&/p&&p&各个层级之间都需要编写代码,去实现信息的转化。&/p&&p&最基本的层级有以下几类:&b&采集及预处理、坐标转换、信息融合&/b&&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-4e469b231d4aea_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1919& data-rawheight=&1054& class=&origin_image zh-lightbox-thumb& width=&1919& data-original=&https://pic2.zhimg.com/50/v2-4e469b231d4aea_r.jpg&&&/figure&&p&&br&&/p&&p&&b&采集&/b&&/p&&p&传感器跟我们的PC或者嵌入式模块通信时,会有不同的传输方式。&/p&&p&比如我们采集来自摄像机的图像信息,有的是通过千兆网卡实现的通信,也有的是直接通过视频线进行通信的。再比如某些毫米波雷达是通过CAN总线给下游发送信息的,因此我们必须编写解析CAN信息的代码。&/p&&p&不同的传输介质,需要使用不同的协议去解析这些信息,这就是上文提到的&b&“驱动层”&/b&。&/p&&p&通俗地讲就是把传感器采集到的信息全部拿到,并且编码成团队可以使用的数据。&/p&&p&&br&&/p&&p&&b&预处理&/b&&/p&&p&传感器的信息拿到后会发现不是所有信息都是有用的。&/p&&p&传感器层将数据以一帧一帧、固定频率发送给下游,但下游是无法拿每一帧的数据去进行决策或者融合的。为什么?&/p&&p&因为传感器的状态不是100%有效的,如果仅根据某一帧的信号去判定前方是否有障碍物(有可能是传感器误检了),对下游决策来说是极不负责任的。因此上游需要对信息做预处理,以保证车辆前方的障碍物在时间维度上是一直存在的,而不是一闪而过。&/p&&p&这里就会使用到智能驾驶领域经常使用到的一个算法——卡尔曼滤波。&/p&&p&&br&&/p&&p&&b&坐标转换&/b&&/p&&p&坐标转换在智能驾驶领域十分重要。&/p&&p&传感器是安装在不同地方的,比如毫米波(上图中紫色区域)是布置在车辆前方的;当车辆前方有一个障碍物,距离这个毫米波雷达有50米,那么我们就认为这个障碍物距离汽车有50米吗?&/p&&p&不是的!因为决策控制层做车辆运动规划时,是在车体坐标系下完成的(车体坐标系一般以后轴中心为O点),因此毫米波雷达检测到的50米,转换到自车坐标系下,还需要加上传感器到后轴的距离。最终所有传感器的信息,都是需要转移到自车坐标系下的,这样所有传感器信息才能统一,供规划决策使用。&/p&&p&同理,摄像机一般安装在挡风玻璃下面,拿到的数据也是基于摄像机坐标系的,给下游的数据,同样需要转换到自车坐标系下。&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-40e6c816facc5e11cee43da_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1920& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic3.zhimg.com/50/v2-40e6c816facc5e11cee43da_r.jpg&&&/figure&&p&自车坐标系:拿出你的右手,以大拇指 → 食指 → 中指 的顺序开始念 X、Y、Z&/p&&p&然后把手握成如下形状:&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-7bc7cbe9fc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&427& data-rawheight=&410& class=&origin_image zh-lightbox-thumb& width=&427& data-original=&https://pic4.zhimg.com/50/v2-7bc7cbe9fc_r.jpg&&&/figure&&p&把三个轴的交点(食指根部)放在汽车后轴中心,Z轴指向车顶,X轴指向车辆前进方向。&/p&&p&各个团队可能定义的坐标系方向不一致,只要开发团队内部统一即可。&/p&&p&&br&&/p&&p&&b&信息融合&/b&&/p&&p&信息融合是指把相同属性的信息进行&b&多合一&/b&操作。&/p&&p&比如摄像机检测到了车辆正前方有一个障碍物,毫米波也检测到车辆前方有一个障碍物,激光雷达也检测到前方有一个障碍物,而实际上前方只有一个障碍物,所以我们要做的是把多传感器下这辆车的信息进行一次融合,以此告诉下游,前面有一辆车,而不是三辆车。&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-ccdad57ce3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1920& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic2.zhimg.com/50/v2-ccdad57ce3_r.jpg&&&/figure&&p&当然,信息融合中还涉及时延的补偿,具体如下:&/p&&p&对于一些大容量数据,确实不能以很高的频率发送(比如10Hz,100ms才发送一次)。这样的数据对高速行驶中的汽车来说,肯定会有偏差。&/p&&p&这些偏差我们算一下:&/p&&p&传感器检测到前方有一个静止障碍物,我100ms之后收到了这个传感器的信息,告诉我这个障碍物离我有30m。如果自车这时正以60KM/h的速度行驶,则这100ms,自车行驶了60 / 3.6 * 0.1 = 1.67m。&/p&&p&所以实际上这个障碍与我的距离为31.67m。&/p&&p&所以面对通信中产生的时延问题,尤其是低频率的信息,一定要考虑时延产生的后果。&/p&&p&时延补偿的另外一个问题:程序处理时,不能保证任何时候都是按固定的频率发送的。&/p&&p&这取决于硬件系统当时的环境,可能温度高了,性能下降,处理速度变慢,10Hz 的发送频率变成了 8Hz。如果我们的程序还是按固定的100ms去计算时延导致的偏差,必定会出现计算错误的情况。&/p&&p&因此我们需要引入时间戳,即在我们发送的信息中加入当前的系统时间,通过两帧数据的时间差来判断接受到的信号到底延时了多久,这种方式比根据频率判断来得更准确。&/p&&p&&br&&/p&&p&&b&决策规划&/b&&/p&&p&这一层次主要设计的是拿到融合数据后,如何正确做规划。&/p&&p&规划包含纵向控制和横向控制。&/p&&p&纵向控制即速度控制,表现为 什么时候加速,什么时候制动。&/p&&p&横向控制即行为控制,表现为 什么时候换道,什么时候超车等。&/p&&p&个人对这一块不是很了解,不敢妄作评论。&/p&&p&&br&&/p&&p&&b&———————分割线———————&/b&&/p&&p&&b&微信公号&/b&:自动驾驶干货铺&/p&&p&&b&知乎专栏:&/b&&a href=&https://zhuanlan.zhihu.com/c_& class=&internal&&无人驾驶干货铺&/a&&/p&&p&&br&&/p&&p&&b&更多无人驾驶的内容:&/b&&/p&&p&&a href=&https://www.zhihu.com/question//answer/& class=&internal&&互联网公司和汽车企业都在开发自动驾驶,你更看好谁?&/a&&/p&&p&&a href=&https://www.zhihu.com/question//answer/& class=&internal&&自动驾驶汽车涉及哪些技术?&/a&&/p&&p&&a href=&https://www.zhihu.com/question//answer/& class=&internal&&高精地图对自动驾驶来说有多重要?在自动驾驶上和一般的导航地图有什么区别?&/a&&/p&&p&&a href=&https://www.zhihu.com/question//answer/& class=&internal&&无人驾驶,个人如何研究?&/a&&/p&&p&&br&&/p&&p&&b&更多段子:&/b&&/p&&p&&a href=&https://www.zhihu.com/question//answer/& class=&internal&&你珍藏了哪些高级黑的段子?&/a&&/p&&p&&br&&/p&&h2&&b&你这么好看,一定很会点赞~&/b&&/h2&
作为一个在公司义务给应届生和实习生培训的“小师”,结合我自己学习的经历,从操作手册的角度,手把手教你“无人驾驶”从入门到转行。 关注微信公众号:自动驾驶干货铺,回复“资料”即可获取本文中提到的所有资料。 前言先看看无人驾驶基本的硬件构造及其…
&figure&&img src=&https://pic2.zhimg.com/v2-1ef699aafaaa03b7cf649f3c910f3a9e_b.jpg& data-rawwidth=&1252& data-rawheight=&704& class=&origin_image zh-lightbox-thumb& width=&1252& data-original=&https://pic2.zhimg.com/v2-1ef699aafaaa03b7cf649f3c910f3a9e_r.jpg&&&/figure&&p&(本文首发于雷锋网:&a href=&https://link.zhihu.com/?target=https%3A//www.leiphone.com/news/201706/RuoKaDSTmd1dClUV.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&leiphone.com/news/20170&/span&&span class=&invisible&&6/RuoKaDSTmd1dClUV.html&/span&&span class=&ellipsis&&&/span&&/a&)&/p&&h2&&b&TLDR (or the take away)&/b&&/h2&&b&视频结果:&/b&这是我的代码/模型产生的结果,无人车以 30m/h (~ 50km/h) 在Simulator中行驶。应该是最有趣的部分:&br&&a class=&video-box& href=&https://link.zhihu.com/?target=https%3A//v.qq.com/x/page/r0515atuzuh.html& target=&_blank& data-video-id=&& data-video-playable=&& data-name=&模拟器中的无人驾驶_腾讯视频& data-poster=&https://puui.qpic.cn/qqvideo_ori/0/r0515atuzuh_228_128/0& data-lens-id=&&&
&img class=&thumbnail& src=&https://puui.qpic.cn/qqvideo_ori/0/r0515atuzuh_228_128/0&&&span class=&content&&
&span class=&title&&模拟器中的无人驾驶_腾讯视频&span class=&z-ico-extern-gray&&&/span&&span class=&z-ico-extern-blue&&&/span&&/span&
&span class=&url&&&span class=&z-ico-video&&&/span&https://v.qq.com/x/page/r0515atuzuh.html&/span&
&br&&p&如果视频打不开,请在此&a href=&https://link.zhihu.com/?target=https%3A//www.leiphone.com/news/201706/RuoKaDSTmd1dClUV.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&雷锋网链接&/a&或&a href=&https://link.zhihu.com/?target=http%3A//www.iqiyi.com/w_19rtqmpe2x.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&爱奇艺链接&/a&中观看。&/p&&p&&b&技术要点:&/b&&br&&/p&&ul&&li&Simulator安装与使用&br&&/li&&li&数据收集和处理&/li&&li&深度卷积网络 (CNN) 训练端到端 (end-to-end) 模型&/li&&/ul&&b&代码:&/b&&a href=&https://link.zhihu.com/?target=https%3A//github.com/feixia586/zhihu_material/tree/master/car_end2end& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Github链接&/a&&br&&h2&&b&概述&/b&&/h2&所谓 end-to-end 无人驾驶模型,指的是由传感器的输入,直接决定车的行为,例如油门,刹车,方向等。简单来讲,可以利用机器学习的算法直接学习人类司机的驾驶行为:首先,人类司机驾驶安装有各种传感器 (例如摄像头) 的汽车来收集数据;然后,用传感器收集的数据作为输入,相应的人类行为数据作为输出label,训练一个机器学习模型,例如,如果摄像头发现前方有行人,司机行为应当是刹车;最后,将训练好的模型应用于无人车上。这种方法又叫做行为复制,其原理直观,避免了无人车系统中各种复杂的问题,是无人车中很有趣的一个topic。&br&&br&在这篇文章中,我们来一起动

我要回帖

更多关于 超声波测距模块 的文章

 

随机推荐