刚接触opencda,被这个问题折磨得够呛,现在还是凌晨一点半。。。废话不多说。
终端输入和错误输出如下:
ye@hongcheng:~/carla/CARLA_0.9.12$ ./CarlaUE4.sh -prefernvidia
4.26.2-0+++UE4+Release-4.26 522 0
Disabling core dumps.
LowLevelFatalError [File:Unknown] [Line: 136]
Exception thrown: bind: Address already in use
Signal 11 caught.
Malloc Size=65538 LargeMemoryPoolOffset=65554
CommonUnixCrashHandler: Signal=11
Malloc Size=131160 LargeMemoryPoolOffset=196744
Malloc Size=131160 LargeMemoryPoolOffset=327928
Engine crash handling finished; re-raising signal 11 for the default handler. Good bye.
Segmentation fault
造成这个问题的原因多种多样,几乎成了一个通用的bug,这里仅列出两种错误分析和对应的解决办法:
1.端口占用,需要杀死使用carlaUE4的端口号,默认:8000,以下方法仅供参考:
$:netstat -tnlp | grep :8000;
$:kill -9 pid # kill对应端口
或者直接杀死carla:
$ ps a | grep carla
41928 pts/2 Sl 0:39 /home/ye/carla/CARLA_0.9.12/CarlaUE4/Binaries/Linux/CarlaUE4-Linux-Shipping CarlaUE4 -prefernvidia
42379 pts/2 S+ 0:00 grep --color=auto carla
$ kill -9 41928
2.低版本carla导入了高版本的地图,:carla0.9.11或者carla0.9.12导入了carla0.9.15的地图【AdditionalMaps_0.9.15.tar.gz】,可能导致了一些包版本的不兼容(什么不兼容我也不知道,毕竟我只刚接触两天。。)。与其半天一天找问题,不如十分钟重装。
所以我的解决办法就是,重装carla版本,需要更新地图,可以下载相应版本。再返回主目录:
cd path/to/carla/root
./ImportAssets.sh
后记:我在外网上也看到了很多很多的这个问题,找了大半天,但还是没找到答案。为什么会怀疑这个原因呢,因为我用carla9.11和carla9.14导入过carla9.15的地图,之前能运行仿真,结果导入后都寄了。。。
本人亲测可以安装多个carla不冲突,UE4也只用配置一次。