电动自动驾驶汽车: 特斯拉和华为,相差的不仅仅是一个激光雷达

一样可以搞, 这要看L5+级别自驾的需求了,换句话说,时延是不是L5+的瓶颈。地面5G网络号称0.5ms时延那是按标准的理论值。且毫秒级别的延迟对于100公里的车速是厘米级别的差别。有很大区别么?
不要神话摄像头,处理图像和点云的代价并不比处理卫星数字信号要小。当然自驾么,处理能力和功耗能满足的前提下,互相调度好肯定是装的的越多越安全。

卫星网络搞自动驾驶不行。光速和距离理论限制,卫星互联网的低轨道卫星,以Starlink为例,轨道高度550公里,地->空->地所需传输时间为550*2/光速,约为3.6ms,这个延时决定于光速和距离是人类无法解决的,如果加上服务器/卫星转发延时,则延迟更高。

3.6ms 似乎很小,但是留给计算机的计算时间就会减少。比喻普通的摄像机30fps, 是每秒30个图片,实际上是33ms, 而自动驾驶会用60fps 或者100fps 的高速摄像机。

SpaceX 早期公布 Starlink 计划时曾提出网络延迟大概在 20ms-35ms 之间,如果不算计算机计算花费的时间,我们假设车开100公里每小时:

100km/hour =100000m/(60minutes*60seconds*1000ms)=0.027m/ms
假设20ms 延时, 0.027*20=0.55 米。就是说碰到紧急情况,要0.55米的距离才能反应,还不包含计算机反应和计算的时间。
 
1619467586539.png

2020年市场固态激光雷达
 
华为已经生产不出来什么新手机了,说明啥问题
手机芯片受到封锁,车规芯片没有限制。

你可以去给大统领献策
 
一样可以搞, 这要看L5+级别自驾的需求了,换句话说,时延是不是L5+的瓶颈。地面5G网络号称0.5ms时延那是按标准的理论值。且毫秒级别的延迟对于100公里的车速是厘米级别的差别。有很大区别么?
不要神话摄像头,处理图像和点云的代价并不比处理卫星数字信号要小。当然自驾么,处理能力和功耗能满足的前提下,互相调度好肯定是装的的越多越安全。
你如果弄过算法就知道,同样处理每省1毫秒,你的算法就能在顶尖的期刊上发表,你每多一毫秒,你就有更多的时间处理和计算,你的汽车反应时间是延时+处理。 不存在处理卫星数字信号,卫星只不过起通信的作用,跟5G本质上是一样。很多计算或者信息,你需要通过卫星或者5G跟其他车子互联互通,如果延时大了,根本玩不转。比喻所有汽车之间互相联系,你没有可能用卫星,用5G是最有效的办法,两个车相互之间还有速度,然后相互之间超车等等车联网的东西。
 
最后编辑:
搞自驾都知道, LiDAR最好有, 即使精度最高mmWave RADAR+Camera视觉还是也没法全面取代LiDAR+Camera, 只有特斯拉还在扯蛋,以为多用几个毫米波雷达就能取代激光雷达

Velodyne巨头(百度有投资)的激光雷达已经从2017年的17900美金降到了2019年的7000美金,还计划在2024年之前降到600美金以内,但已经退出中国市场。

华为是不是自己产Solid LiDAR把成本降到了1000-2000RMB?
特斯拉不是自动驾驶,所以没有问题。如果特斯拉能够不用LiDAR搞了自动驾驶,那就是真正牛逼
 
如果你说算法的话,我就要问问你,处理图像的延迟是多少,处理激光雷达看到的点云延迟是多少,以及处理5G及卫星信号的延迟是多少。
换句话说,从你在摄像头的一帧上看到数据变成一堆数字到各种滤波加识别多久能算出来目标是个什么东西,这还取决于你算法是固化成ASIC还是在X86上随便跑跑的。
如果通信网络不是瓶颈的话,卫星有何不可?


你如果弄过算法就知道,同样处理每省1毫秒,你的算法就能在顶尖的期刊上发表,你每多一毫秒,你就有更多的时间处理和计算。 不存在处理卫星数字信号,卫星只不过起通信的作用,跟5G本质上是一样。很多计算或者信息,你需要通过卫星或者5G跟其他车子互联互通,如果延时大了,根本玩不转。比喻所有汽车之间互相联系,你没有可能用卫星,用5G是最有效的办法,两个车相互之间还有速度,然后相互之间超车等等车联网的东西。
 
写这么长,还是用心了。那我也多写点。
1. 实际系统不是这么减法的。不是说你通信的时延损耗叠加到计算的实时上去的。你需要软件pipeline起来处理上一拍的数据,我不知道我这么说你听的懂不,具体算法运行是跟其他IO或者modem一起overlap起来并行的,否则任何损耗包括通信,硬件,软件调度的损耗都会导致你留给算法执行的时间不可控实时性丢失。如果是纯协处理硬件处理那么你一堆数据包丢过去,按时取结果就可以了。你这个推论的前提是所有东西都在一个core上跑那并行不起来,但你不觉得这么搞很蠢么?
2. GPU/CPU这个嘛,总线数据过去那是DMA过去走PCIe,不占CPU时间,数据扔过去你就不管了该干嘛还干嘛,你的算法在CPU上仍旧有33.3ms包括你读写RAM的时间,不是33-6.12ms,概念性错误。
3.你要搞清L5+自驾对时延的具体要求,如果要求是100ms搞定,那么你把一个算法从1ms搞成1us,有什么卵用呢?你可以说我为了CPU节省了999us, so what?那不是瓶颈的话,或者说并行在别的加速单元上算,费了半天劲,给CPU省啥了?所以你折腾那几十毫秒,对系统并无增益,除了写写paper实际上没有效果。
4. 5G那个你搞搞明白,我们在说自驾,不是比卫星和5g吞吐,自驾不用传那么多数据所以带宽你用不了那么多,你要那么高吞吐作甚?车间走卫星传电影么?

你文科生吧,实时系统就是说你所有计算加传播都必须在33ms内完成,自动驾驶是mission critical 肯定比实时要求更强。我给你举几个简单例子:
1. 比喻我的普通视频需要30fps, 就是每33ms要处理一幅图像。如果我用5G传输,理论留给我的时间就是33.3ms-.5ms=32.8ms, 而卫星我只有33.3ms-3.6ms=29.7ms. 考虑汽车可能用高速摄像机,而且用十几个,你除去延时,就会有非常少的时间。
2.再给你一个我实际应用中的延时,用4K摄像机实时处理人脸识别:
3840(width)x2160(height)x8(bits)x3(rgb)=199M, 我们转换成float: 199Mx4=796M, 然后用最先进的nvidia专业显卡,从计算机内存传到GPU通过PCI3.0x16, 带宽是 16GB/s,所以需要的时间是:(0. 796Gbits/(16GBytex8bits))X1000ms=6.12ms. 就是说理论上我的算法只能 33.3ms-6.12ms=27.18ms完成所有的处理,这还不包含我的结果从GPU传到CPU的时间。

当然汽车会有自己的计算机,很多计算都是汽车自己完成,可能会有一部分地图交通信息会从云端调用,即使这样更少的延时你就有更多的时间用于计算,就会给你更快的反应时间和需要更少的算力,你不可能每个车上面弄个超级计算机。最关键的车联网的部分,高速行驶汽车之间互相通讯,如果多3.6ms-0.5ms 的延时会要命的。

另一个关键是卫星的带宽,特斯拉每颗卫星带宽约20Gbps, 远小于每个电脑PCI3.0x16 带宽(16GB/s=16GX8bps).几个车用一个卫星没有问题,要是城市交通拥挤,根本不可能用卫星通信。这个就好像在体育场用手机,每个人都用手机,每个人都打不通。5G每个基站的带宽是150gps, 而且可以很多基站。
每颗星链卫星相当于太空中的一个基站,目前单颗星链卫星带宽是 20Gbps,与一个 5G 基站相当,然而目前全球 80 多万个 5G 基站的覆盖范围也很有限,因此就算星链完成 4.2 万颗卫星的部署,也无法和地面基站相提并论。
这里需要提到一个「通量密度」的概念,指的是单位面积的总数据流量,比如 5G 的通量密度是 10 万 Gbps/平方公里,同样的带宽下,服务面积越大,通量密度就越低,分配给每个用户的带宽也就越少。
以星链卫星 20Gbps 的带宽和 4.2 万颗的数量,是不足以给全球用户提供高速互联网服务的。中国信息通信科技集团副总经陈山枝指出,若星链要替代 5G,实现与 5G 相当的通信容量,至少要提供相当于 5G 基站数量的卫星。
我们看到目前星链公测的下载速度可以达到 160Mbps,但却很少有人提到接入星链的用户数量。如果以 5G 最低网速标准 1Gbps 计算,4.2 万颗卫星的总带宽只能为 84 万名用户提供服务。

 
写这么长,还是用心了。那我也多写点。
1. 实际系统不是这么减法的。不是说你通信的时延损耗叠加到计算的实时上去的。你需要软件pipeline起来处理上一拍的数据,我不知道我这么说你听的懂不,具体算法运行是跟其他IO或者modem一起overlap起来并行的,否则任何损耗包括通信,硬件,软件调度的损耗都会导致你留给算法执行的时间不可控实时性丢失。如果是纯协处理硬件处理那么你一堆数据包丢过去,按时取结果就可以了。你这个推论的前提是所有东西都在一个core上跑那并行不起来,但你不觉得这么搞很蠢么?
2. GPU/CPU这个嘛,总线数据过去那是DMA过去走PCIe,不占CPU时间,数据扔过去你就不管了该干嘛还干嘛,你的算法在CPU上仍旧有33.3ms包括你读写RAM的时间,不是33-6.12ms,概念性错误。
3.你要搞清L5+自驾对时延的具体要求,如果要求是100ms搞定,那么你把一个算法从1ms搞成1us,有什么卵用呢?你可以说我为了CPU节省了999us, so what?那不是瓶颈的话,或者说并行在别的加速单元上算,费了半天劲,给CPU省啥了?所以你折腾那几十毫秒,对系统并无增益,除了写写paper实际上没有效果。
4. 5G那个你搞搞明白,我们在说自驾,不是比卫星和5g吞吐,自驾不用传那么多数据所以带宽你用不了那么多,你要那么高吞吐作甚?车间走卫星传电影么?
这个才是做产品的概念。。。。
 
写这么长,还是用心了。那我也多写点。
1. 实际系统不是这么减法的。不是说你通信的时延损耗叠加到计算的实时上去的。你需要软件pipeline起来处理上一拍的数据,我不知道我这么说你听的懂不,具体算法运行是跟其他IO或者modem一起overlap起来并行的,否则任何损耗包括通信,硬件,软件调度的损耗都会导致你留给算法执行的时间不可控实时性丢失。如果是纯协处理硬件处理那么你一堆数据包丢过去,按时取结果就可以了。你这个推论的前提是所有东西都在一个core上跑那并行不起来,但你不觉得这么搞很蠢么?
2. GPU/CPU这个嘛,总线数据过去那是DMA过去走PCIe,不占CPU时间,数据扔过去你就不管了该干嘛还干嘛,你的算法在CPU上仍旧有33.3ms包括你读写RAM的时间,不是33-6.12ms,概念性错误。
3.你要搞清L5+自驾对时延的具体要求,如果要求是100ms搞定,那么你把一个算法从1ms搞成1us,有什么卵用呢?你可以说我为了CPU节省了999us, so what?那不是瓶颈的话,或者说并行在别的加速单元上算,费了半天劲,给CPU省啥了?所以你折腾那几十毫秒,对系统并无增益,除了写写paper实际上没有效果。
4. 5G那个你搞搞明白,我们在说自驾,不是比卫星和5g吞吐,自驾不用传那么多数据所以带宽你用不了那么多,你要那么高吞吐作甚?车间走卫星传电影么?
跟你说不明白,你自己网上谷歌卫星能不能用于自动驾驶。
人脸识别呢,是深度学习算法在GPU上面运行,没有CPU什么事,基本上CPU采集图像,传到GPU并行处理,处理完结果传回CPU。图像不传完GPU就得等着。 总运行时间包含你把图像从 CPU传到GPU的时间,加上深度学习算法在GPU上面运行的时间。
你搞不懂这个过程我再给你打个比方,比喻你开车从你家去Costco,你从车库出来到上高速,就是CPU传到GPU上面的时间,然后高速上面开几十分钟,不管你高速多少条道你什么车几个车同时开,都省不了从车库到高速的时间。
 
看来自动驾驶离不开5G。

记得杨安泽(Elon Musk的好朋友)说过,自动驾驶的大卡车已经98%的ready了,那所差的2%就是5G 网络。
 
就比喻你去商店买东西总共时间只有1小时,你路上花的时间(5G或者卫星)越少,你在商店花的时间就越多
 
我觉得你吧,或许搞过算法,剩下的,感觉你没怎么做过实际东西。脑子里并没有pipeline的概念。
不知道程序是可以并行处理么?这就是为啥要协处理器,因为搞不定了,所以并行流水塞过去。一帧一帧的数据是连着传过去的,记住你是一大车队源源不绝开到costco再一大车队挨个排排回来,你的总延时是去加回来的总和然后就再没有延迟了去和回来都排成队了。所以overall来看你只有那个来回的延迟。而且我没有否认这个来回的延迟,但对于costco角度他处理速度都是一样的,不因为路上的延迟他就得加快处理速度好meet timing.
自己画个图琢磨琢磨吧我说的这个delay是什么意思吧。如果还不懂,那你不是搞工科的料。


跟你说不明白,你自己网上谷歌卫星能不能用于自动驾驶。
人脸识别呢,是深度学习算法在GPU上面运行,没有CPU什么事,基本上CPU采集图像,传到GPU并行处理,处理完结果传回CPU。图像不传完GPU就得等着。 总运行时间包含你把图像从 CPU传到GPU的时间,加上深度学习算法在GPU上面运行的时间。
你搞不懂这个过程我再给你打个比方,比喻你开车从你家去Costco,你从车库出来到上高速,就是CPU传到GPU上面的时间,然后高速上面开几十分钟,不管你高速多少条道你什么车几个车同时开,都省不了从车库到高速的时间。
 
还差一个背后强大的祖国!
怎么样老向,接的不错吧?
 
我觉得你吧,或许搞过算法,剩下的,感觉你没怎么做过实际东西。脑子里并没有pipeline的概念。
不知道程序是可以并行处理么?这就是为啥要协处理器,因为搞不定了,所以并行流水塞过去。一帧一帧的数据是连着传过去的,记住你是一大车队源源不绝开到costco再一大车队挨个排排回来,你的总延时是去加回来的总和然后就再没有延迟了去和回来都排成队了。所以overall来看你只有那个来回的延迟。而且我没有否认这个来回的延迟,但对于costco角度他处理速度都是一样的,不因为路上的延迟他就得加快处理速度好meet timing.
自己画个图琢磨琢磨吧我说的这个delay是什么意思吧。如果还不懂,那你不是搞工科的料。
唉,不管你怎么并行处理,你的总处理时间是从CPU copy到GPU 加上你GPU运行的时间。你并行只不过能缩短处理多个图像的总时间,而不能减少你完成一个图像的总时间。就是说你不管这么并行,你都不能减少延迟。
这么说吧,假设实时系统需要33ms, 你的算法需要30ms, 传送需要6ms, 你不可能33ms完成任务。
假设你汽车一直运行没有问题,在时间T有个紧急你需要33ms完成,但是你的图像传输加处理需要36ms,汽车就会失败,并行处理帮不到你,只会帮你下一个33ms,但是汽车已经失败。
不管你怎么并行处理,你不能解决一个图像处理的总时间,也就是汽车从看到情况到做出反应的总时间。你一帧一帧图像并行传过去,只会每一帧图像都延迟到36ms以后才处理完。
你如果这个理解不了,你起码不知道实时系统
 
最后编辑:
后退
顶部