我的步骤:
step1:git clone https://github.com/commaai/openpilot.git
(如果速度太慢,可以先在windows上下载,使用winscp传到服务器)
step2:打开openpilot文件,进入tools/sim文件夹,并执行sudo INSTALL=1 ./start_carla.sh
,其中INSTALL=1是为了自动安装nvidia-docker,如果之前已经安装过这个包,可以把这个参数去掉。执行这一句还有可能报如下错:无法识别gpus这个参数。这是由于docker版本过低导致,升级docker到19.03以上即可。WINDOW参数是防止有人不想启动carla窗口,因为后面openpilot会有自己的窗口,但carla窗口在op运行时可以从上帝视角看到整个城市和车辆运行轨迹,可以自行选择这个参数。
此时按照官方步骤直接运行./start_openpilot_docker.sh会有以下几个问题:
1.报无法识别angleSteersDes参数的错误
2.修改完再次运行start_openpilot_docker.sh可以弹出op窗口,但报错:Openpilot unavailable Communication issue between processes,按照github上的方法,将controlsd.py中检查所有模块功能正常的语句注释掉。
3.重新运行还会报“Planner solution error”。
解决方法如下:
由于官方镜像没有做出修改,我们只能进入源镜像修改对应文件,再commit成一个新的镜像供我们使用。
step3:sudo docker run -i -t commaai/openpilot-sim:latest
进入pull下来的镜像
step4:进入selfdrive/controls目录,修改controlsd.py,将下面几行注释掉。
step5:按照下图修改selfdrive/manager.py。
step6:按照下图修改onnx_runner.py
step7:按照下图修改ui脚本
step8:按照下图修改bridge.py
step9:在当前终端执行exit
退出当前容器(但不需要关闭,因为这个docker的id会用到),打开新的一个终端(如果在之前终端commit,会无法保存修改)执行sudo docker commit eadfafefgg commaai/openpilot-sim2
,这里commit命令的第一个参数为刚刚终端里docker的id,需要根据自己实际的id进行替换,第二个参数为新的镜像的名称,可以自己命名。
step10:可以执行sudo docker images
查看新的镜像,接着按照下图修改start_openpilot_docker.sh
step11:如果之前运行了start_carla.sh,则在新的终端直接运行start_openpilot_docker.sh即可;如果之前关闭了carla终端,可以注释掉start_carla.sh中pull那一行(避免重复pull)并运行start_carla.sh,然后在新的终端运行start_openpilot_docker.sh,摁1连接openpilot,之后再摁1进行加速
至此应该能够成功运行: