最近因为OpenSIL项目的事情,一直在折腾Carla,想找到一种适合大家用的模式。我们遇到的难点有两个:1、因为大部分人其实都只有一个Windows电脑,但是我们的OpenSIL项目中,被测对象是OpenPilot,这个东西只能运行在Ubuntu系统里(或者乐视手机里)。2、虚拟机里装个Ubuntu,在这里再安装Carla的话,是无法使用Windows系统的显卡资源的。所以,思来想去,想尝试下在Windows里直接运行Carla的服务端,通过网络连接,使得客户端可以运行在虚拟机中,再和openpilot进行信号交互。通过尝试,发现这条路是可行的。下面做个记录:这里主要时查看Windows和虚拟机的ip网址,并保证两者之间能互相ping上。
查清楚自己windows端的ip网址后,方便后续设定客户端时进行远程连接。客户端的启动,理论来讲只需要拷贝Windows中Carla目录下的任意一个测试脚本到虚拟机中运行即可。比如这个:D:\Carla\CARLA_0.9.13\PythonAPI\examples\automatic_control.py python3 automatic_control.py
运行时会提醒缺一些库,比如pygame、numpy、shapely、networkx等。提示缺什么就下载什么好了。如果嫌弃现在速度慢,可以用下面指定国内清华源的方式加速下载。只有当提示缺少carla库的时候,需要自己在要运行的python脚本中指定下carla的egg包(因为我这里pip install carla失败,顺便说下,我是python3.8, ubuntu20.04)。具体的配置方法是做如下改变:
对应的,需要将这个egg包从ubuntu的安装包中找到,放到这里。
如果想一劳永逸,也可以在.bashrc文件中去配置。安装包及配置方式参考一下文末Ubuntu下如何安装Carla的文章链接。python库的问题解决后,运行示例脚本即可,这里一定要指定服务器端所在的window的ip地址。如:
python3 automatic_control.py --host=192.168.2.6
初始运行可能报错timeout,这个时候只需要把这个时间调久一点就可以,如:
附:此时,我虚拟机中并未安装nvidia的显卡驱动:另外,windows中运行服务器,和虚拟机中运行的客户端之间的延时方面, 暂未做研究,有兴趣的可以继续。往期OpenSIL文章:
相关文章,在仿真秀官网搜索: