自动驾驶汽车用的是什么操作系统? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不在回答技术问题时复制粘贴 AI 生成的内容
ericgui
V2EX    程序员

自动驾驶汽车用的是什么操作系统?

  •  
  •   ericgui 2022-06-26 09:57:30 +08:00 6990 次点击
    这是一个创建于 1203 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Linux 是抢占式,应该不行的吧

    据说应该用实时系统

    那是否有某种类似于 Linux 的开源操作系统,成为业界标准

    请高人指点一下

    本人前端,突然对自动驾驶感兴趣,求指教

    30 条回复    2022-06-27 16:16:09 +08:00
    Curtion
        1
    Curtion  
       2022-06-26 10:20:56 +08:00   4
    一般有两套系统,影音系统是 Linux 或者安卓,车辆控制是实时操作系统。实时操作系统有些是自己写的,有些是用了市场的一些方案,例如百度的 https://github.com/ApolloAuto/apollo
    rebang
        2
    rebang  
       2022-06-26 10:23:54 +08:00
    据我所知,一般娱乐是安卓,操作是 QNX 。我知道的也不多,仅供参考
    anshigm
        3
    anshigm  
       2022-06-26 10:27:18 +08:00 via Android
    rtlinux 或者 vxworks?
    ferock
        4
    ferock  
    PRO
       2022-06-26 10:40:37 +08:00 via iPhone
    实时系统是跑 c 的
    sifeizhai2020
        5
    sifeizhai2020  
       2022-06-26 10:43:50 +08:00
    说到实时操作系统第一反应就是风河,官网一看还真有
    https://imgur.com/a/Q1PCQWA
    cmu2chert
        6
    cmu2chert  
       2022-06-26 10:51:27 +08:00
    可以问一下抢占式系统是什么意思吗? https://blog.51cto.com/liangchaoxi/4071874 这里怎么说实时系统就是抢占式系统
    swsh007
        7
    swsh007  
       2022-06-26 10:56:09 +08:00 via Android
    VxWorks 那类 rtos ,所以那些通讯行业瞎折腾公司做这个其实不算外行。
    c0t
        8
    c0t  
       2022-06-26 12:36:04 +08:00 via Android
    我一直以为是 matlab 或者其他代码生成工具生成的,原来不是吗完全手写的难度不敢想
    leimao
        9
    leimao  
       2022-06-26 12:51:57 +08:00   1
    Peterwa
        10
    Peterwa  
       2022-06-26 13:00:55 +08:00
    @anshigm 飞机好像是 vxworks
    IDAEngine
        11
    IDAEngine  
       2022-06-26 13:50:28 +08:00
    QNX 和 Ubuntu ,特斯拉的话
    kkocdko
        12
    kkocdko  
       2022-06-26 14:47:23 +08:00 via Android
    linux 加上 rt 的补丁就行了
    ginakira
        13
    ginakira  
       2022-06-26 14:47:24 +08:00
    安卓+QNX
    andyliu24
        14
    andyliu24  
       2022-06-26 15:22:55 +08:00
    Tesla 是基于 Ubuntu 深度定制的。
    shijingshijing
        15
    shijingshijing  
       2022-06-26 15:29:23 +08:00
    不会用 VxWork 的,授权太贵了,一般底层都是用芯片原厂定制的 rtos ,比如英飞灵自己的 TriCore 系列,很多底层都不一定有操作系统,好点的弄个 AutoSAR
    cpstar
        16
    cpstar  
       2022-06-26 15:42:05 +08:00
    @c0t 8# 这里有两层概念,一个是实际操作层,一个是算法层。实际操作层确保各项时延和抢占资源,以及为算法层提供各种控制接口;而算法层就是用各种算法算出来到底左拐右拐油门还是刹车,这个计算就需要另外一个强大的算法芯片进行实时处理,也要降低时延。写好的算法,通过固化写入到算法控制芯片上。建模过程还是在普通的平台上完成的。
    ysc3839
        17
    ysc3839  
       2022-06-26 15:44:20 +08:00 via Android
    正规厂家的未知,开源方案可以看看 OpenPilot
    anonymous256
        18
    anonymous256  
       2022-06-26 18:42:05 +08:00   1
    @cmu2chert 计算机执行多任务,就要考虑不同的任务之间是否允许抢占。
    1. 例如批处理操作系统,它是不允许被抢占的。你提交一系列的任务,计算机会按照顺序一直到执行结束,这期间无法干预。
    2. 像 Linux/Win 这类可以实时交互的系统,都是允许被抢占的。比如听着音乐,打着游戏,还能打开网页,因为新增的任务抢占了前面的任务。原理是:CPU 的计时器以固定的频率触发中断,然后 OS 执行调度算法,调度不同的进程,实现不同任务的上下文切换。
    anonymous256
        19
    anonymous256  
       2022-06-26 18:54:19 +08:00
    @anonymous256 像 Linux/Win 这类可以“实时”交互的系统,此处的“实时”应该打个引号。因为本质上它不是实时的,是操作系统的中断程序调度出来的“伪实时”,CPU 进程调度切换太快,让用户感觉是实时的,其实不是真正的实时。
    HHPLow
        20
    HHPLow  
       2022-06-26 21:43:36 +08:00 via Android   4
    自动驾驶控制器和仪表大部分是实时操作系统 Safety QNX ,原因:微内核及 ISO 26262 认证(主要原因)。现在也有很多用 Linux 内核的厂商,打上 PREEMPT_RT 补丁,成为抢占式软实时操作系统(号称硬实时)。另外抢占式是必要的,因为遇到紧急情况,高优先级的任务必须要抢占到 CPU ,要不然完蛋了。目前驾驶舱一般都是 QNX hypervisor ,一个 QNX 宿主搭配 Android 虚拟机。
    asan2006
        21
    asan2006  
       2022-06-26 22:53:15 +08:00
    NVIDIA 的板子貌似也是基于 Ubuntu 定制的 rtos ,类似楼上的解释。如果做智驾 APP 的开发,应该是基于 Linux 或者 Android ?
    ysc3839
        22
    ysc3839  
       2022-06-26 23:54:34 +08:00 via Android
    @asan2006 NVIDIA Jetson 系列是既有 FreeRTOS ,也有 Linux for Tegra ,不是基于 Linux 定制的 RTOS 。
    asan2006
        23
    asan2006  
       2022-06-27 00:00:33 +08:00
    @ysc3839 那我理解错了,用过集成了 Xavier/Orin 的域控制器,是魔改版的 Ubuntu ,以为 Jetson 的也是这样~
    dangyuluo
        24
    dangyuluo  
       2022-06-27 00:54:13 +08:00
    20 楼说的很全面
    HHPLow
        25
    HHPLow  
       2022-06-27 08:27:50 +08:00 via Android   1
    @asan2006 NVIDIA DRIVE 有两个版本,一个是叫 DRIVEOS QNX ,另外一个是 DRIVEOS Linux 。Linux 默认是 Ubuntu+内核打 PREEMT_RT 补丁,Linux 也可以从 Ubuntu 替换成 Yocto ,内核不变。智驾开发一般是基于 QNX 或者 Linux ,Android 只在中控上使用。目前国内大部分驾舱控制器和智驾控制器是分开的。
    1daydayde
        26
    1daydayde  
       2022-06-27 09:36:31 +08:00
    @ysc3839 搜了一下真有。
    1daydayde
        27
    1daydayde  
       2022-06-27 09:38:40 +08:00
    @0312birdzhang 想换行结果发出去了。

    openpilot 目前跑在 Android 或 ubuntu 上,可玩性极高。目前社区在移植到 android9 的设备上,如 pixel3 和 oneplus 6t ,使用高通神经网络算法进行计算。
    cmu2chert
        28
    cmu2chert  
       2022-06-27 10:36:55 +08:00
    @anonymous256 谢谢你!
    gosas
        29
    gosas  
       2022-06-27 15:39:01 +08:00
    @HHPLow #20 就是被黑莓收购的那个 QNX 吗?
    HHPLow
        30
    HHPLow  
       2022-06-27 16:16:09 +08:00 via Android
    @gosas 是的。BlackBerry QNX
    https://blackberry.qnx.com/en
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2681 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 14:10 PVG 22:10 LAX 07:10 JFK 10:10
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86