ubuntu22.04 安装 carla-ros-bridge

系统:ubuntu22.04

ros版本: ros humble

scenario runner版本:0.9.13【这个版本的sr可以适配carla 0.9.13和carla 0.9.14】

carla版本:0.9.14

carla-ros-bridge版本:https://github.com/gezp/carla_ros

一、安装前提

1. 安装carla 0.9.14+sr 0.9.13

参考教程:https://blog.csdn.net/eowyn0406/article/details/152897168

注意教程中虚拟环境的python和carla的安装路径需要改为你自己的配置,你的~/.bashrc末尾添加:

bash 复制代码
conda activate your_conda_env
export CARLA_ROOT=/替换为你的carla服务器路径/carla0914
export PYTHONPATH=$PYTHONPATH:$CARLA_ROOT/PythonAPI/carla/dist/carla-0.9.14-py3.7-linux-x86_64.egg

【更稳定的方法】

新建一个sh文件,添加如下内容,然后运行一遍脚本。注意carla版本和python版本,根据这两个选择egg文件和whl文件。

bash 复制代码
conda activate py37

# 配置CARLA
export CARLA_ROOT=/your_root_to_carla/carla0914
export PYTHONPATH=${CARLA_ROOT}/PythonAPI/carla/dist/carla-0.9.14-py3.7-linux-x86_64.egg
# 配置SCENARIO_RUNNER
export SCENARIO_RUNNER_PATH=/home/eowyn/sr0914/scenario_runner-0.9.13
export PYTHONPATH=$PYTHONPATH:${CARLA_ROOT}/PythonAPI/carla
export PYTHONPATH=$PYTHONPATH:${SCENARIO_RUNNER_PATH}
2. 安装ros humble

自己找教程装,不需要虚拟环境,直接装。

二、安装carla-ros-bridge

首先,确保你的系统是ubuntu 22.04, ros huble 已安装,carla 0.9.14已安装。

然后,我们来安装carla-ros-bridge。我依然选择在虚拟环境中安装。

  1. 准备carla API 安装文件:

https://github.com/gezp/carla_ros/releases/下载红框中两个文件,一个whl,一个egg。whl文件用于安装在虚拟环境,egg用于配置路径。下载后,移动到${CARLA_ROOT}/PythonAPI/carla/dist/路径下。

  1. 新建一个conda虚拟环境,python=3.10
bash 复制代码
conda create -n ros-bridge python=3.10
conda activate ros-bridge # 激活虚拟环境
# 安装whl文件
cd ${CARLA_ROOT}/PythonAPI/carla/dist # 假设你已经将whl文件放到这个路径下了
pip3 install carla-0.9.14-cp310-cp310-linux_x86_64.whl

配置CARLA_ROOT和PYTHONPATH:

bash 复制代码
export CARLA_ROOT=/root/to/your/carla/carla0914

export PYTHONPATH=$PYTHONPATH:${CARLA_ROOT}/PythonAPI/carla/dist/carla-0.9.14-py3.10-linux-x86_64.egg
  1. 后续操作都在虚拟环境ros-bridge中
bash 复制代码
# 安装依赖
sudo apt install ros-humble-derived-object-msgs 

# 为ros-bridge新建一个路径
mkdir -p ~/carla-ros-bridge/catkin_ws/src
cd ~/carla-ros-bridge/catkin_ws/src
git clone --recurse-submodules https://github.com/gezp/carla_ros.git -b humble-carla-0.9.14
cd .. #回到ros-bridge工作目录下:~/carla-ros-bridge/catkin_ws/

# 使用rosdep安装所有依赖
rosdep install --from-paths src --ignore-src -r
# 在虚拟环境中安装pygame库,可能还需要numpy等,根据最后的运行提示安装其他必要的python库
pip install pygame

# 编译
colcon build --symlink-install

# 配置本项目环境,使得在其他路径下也可以运行本项目的ros节点
source install/setup.bash

三、测试ros-bridge

运行下面的命令,看ros-bridge是否可以正常工作。

bash 复制代码
# 打开一个终端,运行carla服务器
cd /root/to/carla/carla0914
./CarlaUE4.sh  # or ./CarlaUE4.sh -RenderOffScreen
 
# 另开一个终端
cd ~/carla-ros-bridge/colcon_ws
source /opt/ros/humble/setup.bash # 如果ros没有配置全局变量,则运行此命令,否则跳过
source install/setup.bash # source the workspace
# launch the `carla ros-bridge`
ros2 launch carla_ros_bridge carla_ros_bridge.launch.py synchronous_mode:=True town:=Town03 # <town number, eg: 03>
 
# 另开一个终端, launch the objects.json
cd ~/carla-ros-bridge/colcon_ws
source /opt/ros/humble/setup.bash # 如果ros没有配置全局变量,则运行此命令,否则跳过
source install/setup.bash # source the workspace
# 注意替换objects.json的路径
ros2 launch carla_spawn_objects carla_example_ego_vehicle.launch.py spawn_sensors_only:=False objects_definition_file:=/absolute/path/to/objects.json
 
# 另开一个终端, launch the rviz2
cd ~/carla-ros-bridge/colcon_ws
source /opt/ros/humble/setup.bash # 如果ros没有配置全局变量,则运行此命令,否则跳过
source install/setup.bash # source the workspace
# 运行rviz2界面
rviz2 -d /path/to/carla_ros.rviz

可能会遇到transform3d的问题,可以配置软连接,将本地环境中的相关库连接到虚拟环境中。

运行效果:

四、方便一些的环境配置方法

脚本如下,保存为sh脚本,运行即可。

bash 复制代码
#!/bin/bash

# 激活conda虚拟环境
conda activate ros-bridge

# 设置 ROS2
source /opt/ros/humble/setup.bash
source /home/eowyn/carla-ros-bridge/catkin_ws/install/setup.bash

# 配置CARLA和SCENARIO_RUNNER,避免重复路径
export CARLA_ROOT=/home/eowyn/carla0914
export SCENARIO_RUNNER_PATH=/home/eowyn/sr0914/scenario_runner-0.9.13

# 函数:安全添加路径到 PYTHONPATH
add_to_pythonpath() {
    local new_path="$1"
    if [[ -n "$PYTHONPATH" ]]; then
        # 检查路径是否已存在
        if [[ ":$PYTHONPATH:" != *":$new_path:"* ]]; then
            export PYTHONPATH="$new_path:$PYTHONPATH"
        fi
    else
        export PYTHONPATH="$new_path"
    fi
}

# 按优先级添加路径(后添加的优先级更高)
add_to_pythonpath "${SCENARIO_RUNNER_PATH}"
add_to_pythonpath "${CARLA_ROOT}/PythonAPI/carla"
add_to_pythonpath "${CARLA_ROOT}/PythonAPI/carla/dist/carla-0.9.14-py3.10-linux-x86_64.egg"

echo "环境配置完成"
echo "PYTHONPATH 包含以下路径:"
echo "$PYTHONPATH" | tr ':' '\n'
bash 复制代码
chomd +x set_bridge.sh
source set_bridge.sh

运行效果:


参考教程:https://learnopencv.com/ros2-and-carla-setup-guide/#aioseo-carla-ros2-bridge-setup

相关推荐
Tech Synapse5 个月前
端到端自动驾驶系统实战指南:从Comma.ai架构到PyTorch部署
人工智能·pytorch·自动驾驶·carla·end-to-end
白云千载尽8 个月前
大语言加持的闭环端到端自动驾驶模型 学习笔记纯干货
论文阅读·笔记·学习·自动驾驶·carla·vlm
Jozky8610 个月前
Carla自带样例:automatic_control.py解析
笔记·carla
Augenstern-YaoYao1 年前
在Ubuntu 20.04中安装CARLA
c++·python·自动驾驶·carla·ros 2
自动驾驶Adriving1 年前
Carla自动驾驶仿真十:Carlaviz三维可视化平台搭建
python·自动驾驶·carla·自动驾驶仿真
zhwangye1 年前
Ubuntu配置carla docker环境
linux·ubuntu·docker·carla
致知在格物,物格而后知至1 年前
CARLA (I)--Ubuntu20.04 服务器安装 CARLA_0.9.13服务端和客户端详细步骤
运维·服务器·ubuntu·智能驾驶·carla
AISecurity盐究员2 年前
Ubuntu20.04安装Carla0.9.15
人工智能·经验分享·机器学习·自动驾驶·carla
XueZheng@gdut2 年前
【车联网/自动驾驶仿真学习】VEINS_CARLA安装指南
veins·车联网·carla·omnet++