目录

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

参考https://github.com/conda/conda/issues/12287