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

相关推荐
JoannaJuanCV4 小时前
自动驾驶—CARLA仿真(20)manual_control demo
人工智能·机器学习·自动驾驶·carla
JoannaJuanCV1 天前
自动驾驶—CARLA仿真(17)invertedai_traffic demo
人工智能·算法·自动驾驶·carla
JoannaJuanCV3 天前
自动驾驶—CARLA仿真(25)synchronous_mode demo
人工智能·机器学习·自动驾驶·carla
JoannaJuanCV3 天前
自动驾驶—CARLA仿真(13)dynamic_weather demo
人工智能·机器学习·自动驾驶·carla
JoannaJuanCV3 天前
自动驾驶—CARLA仿真(24)sensor_synchronization demo
网络·人工智能·自动驾驶·carla
JoannaJuanCV3 天前
自动驾驶—CARLA仿真(12)client_bounding_boxes demo
人工智能·自动驾驶·pygame·carla
JoannaJuanCV4 天前
自动驾驶—CARLA仿真(6)vehicle_gallery demo
人工智能·机器学习·自动驾驶·carla
JoannaJuanCV4 天前
自动驾驶—CARLA仿真(10)tutorial_gbuffer demo
人工智能·机器学习·自动驾驶·carla
JoannaJuanCV4 天前
自动驾驶—CARLA仿真(11)bounding_boxes demo
人工智能·机器学习·自动驾驶·carla
极智视界6 天前
目标检测数据集 - 自动驾驶平台Carla图像交通元素目标检测数据集下载
yolo·目标检测·自动驾驶·数据集·voc·coco·carla