BC.Wang Welcome

编译Carla的PythonAPI

2019-04-18
BCWang

阅读:


  • Carla的Server端是UE+Carla,相当于是搭建一个环境+LibCarla,可以在Windows下搭建,因为UE在Windows下没有编译的问题。
  • 而Carla的PythonAPI是和Carla UE独立的,PythonAPI和Carla UE通过rpc通信,只需要设置好ip即可,PythonAPI在windows下编译可能会遇到很多问题,因此建议windows下编译UE+Carla环境,然后ubuntu虚拟机下编译Carla的PythonAPI,实际上这里可以看成是前端和后端来理解,UE作为前端展示,PythonAPI作为后端控制,数据处理和计算等等,有时候PythonAPI结合roslibpy来和ROS系统通信

    Windows下失败的PythonAPI编译

  • 遇到的第一个问题是py3,BuildPythonAPI中会执行py -3而不是python3,可以改这个命令为python3,或者把python.exe重命名为py.exe,注意环境变量
  • 之后注意cl.exe运行的版本问题,如果之前装过vs2015,会首先找到2015里面的cl.exe,此时需要更新为2017,然后删除2015里面的vc/BIN/XXX/cl.exe的内容
  • 在修改了上述两项后,LibCarla能够成功编译,此时会运行python setup.py XXX,这里编译时除了很多问题,比如release和debug不匹配m,默认库冲突等等,于是转向使用Ubuntu虚拟机上编译

    Ubuntu下成功编译的PythonAPI

  • 最重要的一点是多把错误信息在github的issue上搜索,比直接google或者Stack Overflow更能找到有用信息!
  • 在carla下运行make PythonAPI开始编译,主要的问题是没有clang,没有ninja,这些都需要安装
  • 在安装ninja之后,编译可能报错,此时使用gcc -v g++ -v确认一下版本,目前需要版本大于7,所以更新最新版本的gcc和g++,然后重新link,保证gcc -v和g++ -v下版本是满足要求的
  • 之后编译可能出现几个error,是关于pngconf的,在github issue上搜索,安装相应的依赖
  • 注意在BuildPythonAPI中根据需求设置BUILD_FOR_PYTHON3=true等
  • 编译完成之后直接运行import carla是无用的(首先注意python版本),但是运行examplek里面的代码有效,这是因为编译过后会生成一个.egg文件,carla中example里面的脚本静态引用了这个文件,所以使用carla需要注意根据example来更改代码,不过这样的方式很可能没有办法设置ide的代码补全功能了,需要边看文档边写。

Similar Posts

Comments

0