V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ericgui
V2EX  ›  程序员

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

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

    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
    sunhuawei
        2
    sunhuawei  
       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  
       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 只在中控上使用。目前国内大部分驾舱控制器和智驾控制器是分开的。
    0312birdzhang
        26
    0312birdzhang  
       2022-06-27 09:36:31 +08:00
    @ysc3839 😛搜了一下真有。
    0312birdzhang
        27
    0312birdzhang  
       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   ·   实用小工具   ·   2900 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 08:08 · PVG 16:08 · LAX 00:08 · JFK 03:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.