首页/文章/ 详情

开源自动驾驶系统openpilot的下载及使用

11月前浏览2721

大家好,我是李慢慢。

今天是2022年农历最后一天了,祝大家新年快乐。

近几日在家,一直在研究openpilot的安装及使用。算是成功了一半。因年后有其它安排,提前写写记录下,下次好继续。

在我们的OpenSIL项目中,openpilot将作为SIL平台的测试对象而存在。openpilot是commaai推出的开源驾驶辅助系统,目前含有ACC、ALC、FCW,LDW等功能。可以将openpiot软件安装到指定乐视手机上,再配合官方提供的一些小硬件,适配到目前市面上特定的几款车型上,以实现上述ADAS功能。

但我们OpenSIL的测试工作将在个人电脑上展开,好在openpiot也支持运行在个人电脑上,并且支持和carla进行联合调试,以验证软件的开发。官方甚至提供了carla和openpiot联合使用的方法说明。

openpilot的官网资料如下:

(1)官网:https://comma.ai/

(2)Github:https://github.com/commaai/openpilot

(3)官方文档:https://docs.comma.ai/

Dragonpilot 中文社区:http://dragonpilot.cn/

openpilot和carla联合使用的说明:

https://github.com/commaai/openpilot/tree/master/tools/sim#openpilot-in-simulator

以下简述docker版本的openpilot的下载及使用。

1、下载完整的openpilot代码

从github上可以下载下来源码,如下所示:

点击【Download ZIP】下载下来的文件并不完整,很多文件夹内(上图中带有@符号的文件夹)均是空的或者不全,需要在上述的github网页端一一进入该文件夹内,下载该部分,解压到本地同名文件夹内,进行补全。我这里也整理了下载完整的源码(master分支)网盘连接,如下:

下载链接见附件

然后进入如下路径:

path-to-op/openpilot-master/tools/sim

可以看到有如下的一些文件:

其中,start_openpilot_docker.sh脚本就是专门用来下载及安装及使用openpilot的自动化脚本。其内容如下:

理论来讲运行该脚本,就能自动拉取openpilot的docker镜像,并根据镜像创建容器,进入容器,运行程序。但我这里因为网速原因一直无法成功拉取,下面这个过程十分漫长,且最终还很容易失败。

2、拉取docker镜像

因此,我特意找了国外的小伙伴(感谢@李阳波),帮忙按照上述的脚本拉取了镜像,拉取的方式如下所示:

    docker pull ghcr.io/commaai/openpilot-sim:latest

    拉取好之后,把镜像打包。

      docker save -o IMAGE_ID commaai.tar

      小伙伴给我拉取并打包好之后将包给我,我这边重新加载下这个镜像包,就可以免去自己拉取的反复失败的烦恼了。以下为加载的方法及过程:

        docker load -i "镜像包名"

        如果你也需要我这个镜像,可以从网盘下载openpilot的docker镜像:

        下载链接见附件

        加载完成后,发现REPOSITORY和TAG为none,因此我补充打个标签,方法如下。

        然后,根据这个镜像创建个容器进去看看。

        发现容器里的东西,其实就是openpilot的官方源码,和自己在官网下载的很相似。

        接下来,尝试运行下openpilot的代码。

        在启动openpilot之前,需要按照官方说明先启动carla,具体方法参考上一篇文章。

        Docker版Carla的安装与使用

        我这里启动carla的终端截图如下:

        上面这个官方启动Carla的脚本,其实只是根据镜像创建了一个容器,容器内启动了carla的服务器,而且是没有界面的,需要自己根据显卡驱动的工作状态判断carla的服务器是否有成功启动。

        3、运行openpilot

        启动carla后,重新运行下之前的【start_openpilot_docker.sh】脚本。但是要稍微改变下内容:

        1)、我们不再需要拉取镜像了,因此注释掉就可以了。

        2)、要把启动的镜像名改为我们刚刚打的标签名。

        具体如下所示。

        重新运行这个【start_openpilot_docker.sh】脚本(这个脚本将创建容器,进入制定目录分别运行【tmux_script.sh】这个脚本,这个脚本的作用是分别打开两个终端,运行两个脚本,一个是启动openpilot的【launch_openpilot.sh】,一个是运行连接openilot和carla的【bridge.py】),效果如下,成功启动了openpilot的ui界面。

        我这里遇到了两个问题。

        问题1:openpilot的ui界面里,是蓝屏,没有图像。这个根据github官网issues里的讨论,把【tmux_scripts.sh】脚本改改即可。其实就是在启动【bridge.py】时,指定“--high_quality  --dual_camera”参数,修改后如下所示:

        修改容器内的脚本参数后,重新启动这个容器,运行这个【tmux_scripts.sh】脚本,可以得到如下的效果。

        第一个问题解决。

        下面是第二个问题。

        按照官网的说法,我在启动【bridge.py】这个脚本的终端,按下数字“1”,应该可以加速车辆使之进入自动驾驶状态的。但我发现我输入后,并无法实现这个效果,而是报了如下的错误。“openpilot Unavailable, Press Set to Engage”,在官网上发现好多人都碰到这个问题,然而目前并没有找到有效的解决方案。

        然后我就卡在这里了。

        年前就先到这里吧,年后再找找方法。

        瑞斯拜。

        来源:车路慢慢

        附件

        免费开源自动驾驶系统openpilot的下载及使用.txt
        理论自动驾驶
        著作权归作者所有,欢迎分享,未经许可,不得转载
        首次发布时间:2023-06-22
        最近编辑:11月前
        李慢慢
        硕士 自动驾驶仿真工程师一枚
        获赞 10粉丝 57文章 122课程 0
        点赞
        收藏
        未登录
        1条评论
        羊羊🐑
        签名征集中
        29天前
        资源过期了,方便重新分享一下吗555
        回复

        课程
        培训
        服务
        行家

        VIP会员 学习 福利任务 兑换礼品
        下载APP
        联系我们
        帮助与反馈