Ubuntu20.04 Carla安装以及ros-bridge控制
1. Carla预编译安装
创建虚拟环境,避免包依赖破坏读者的原生环境程序
conda create -n carla python=3.7
conda activate carla
下载地址
https://github.com/carla-simulator/carla/releases
下载解压到指定位置
mkdir ~/carla
cd ~/carla
tar -xzvf CARLA_0.9.15.tar.gz
cd PythonAPI/carla/dist
pip install carla-0.9.12-cp37-cp37m-manylinux_2_27_x86_64.whl
写入用户配置
vim ~/.bashrc
# Carla
export CARLA_ROOT=$HOME/carla
export PYTHONPATH=$PYTHONPATH:$CARLA_ROOT/PythonAPI/carla/dist/carla-0.9.12-py3.7-linux-x86_64.egg:$CARLA_ROOT/PythonAPI/carla
Demo运行
./CarlaUE4.sh
2. ROS 模块源码安装
创建工作空间,拉取源码
# 以下操作在读者的ROS工作空间目录下
mkdir -p carla-ros-bridge/src
cd carla-ros-bridge/src
git clone --recurse-submodules https://github.com/carla-simulator/ros-bridge.git
cd ..
rosdep update
rosdep install --from-paths src --ignore-src -r
catkin_make
写入用户配置,使得ROS可以找到编译的程序。
cd src/ros-bridge
pip install -r requirements.txt
vim ~/.bashrc
source /home/moresweet/ROS_WS/calar-ros-bridge/devel/setup.bash
3. 实例运行
开启两个终端,一个启动Carla,一个通过ROS控制
# 终端1
roslaunch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch town:='town01'
# 终端2
./CarlaUE4.sh -prefernvidia
4. 问题记录
RuntimeError: cannot import pygame
问题原因:runtime导包,在非虚拟环境中安装pygame
解决办法:在原生环境中pip install pygame
ModuleNotFoundError: No module named ‘yaml’
ModuleNotFoundError: No module named ‘rospkg’
问题原因:缺少yaml的包
解决办法:pip install PyYAML
CARLA python module version 0.9.13 required. Found: 0.9.15
问题原因:ROS在虚拟环境中不直接指定原生环境python,因此rospy的一系列模块不奏效
解决办法:pip install rospkg rospy catkin_tools
[FATAL] [1716360354.779348, 0.000000]: CARLA python module version 0.9.13 required. Found: 0.9.15
vim /home/moresweet/ROS_WS/calar-ros-bridge/src/ros-bridge/carla_ros_bridge/src/carla_ros_bridge/
CARLA_VERSION
问题原因:要求版本不对应
解决办法:
vim /home/moresweet/ROS_WS/calar-ros-bridge/src/ros-bridge/carla_ros_bridge/src/carla_ros_bridge/CARLA_VERSION
改称0.9.15即可
ImportError: /lib/x86_64-linux-gnu/libp11-kit.so.0: undefined symbol: ffi_type_pointer, version LIBFFI_BASE_7.0
ImportError: /lib/x86_64-linux-gnu/libp11-kit.so.0: undefined symbol: ffi_type_pointer, version LIBFFI_BASE_7.0
有个简单有效的办法
conda install libffi==3.3