15-ROS桥接安装(ROS 1)

时间:2024-10-28 13:17:57

1 基本要求

    在使用ROS桥接之前,您需要满足以下软件要求:
    根据您的操作系统安装ROS:

    ROS Melodic - For Ubuntu 18.04 (Bionic)

    ROS Noetic - Ubuntu 20.04 (Focal)

    根据您的需要,可能需要额外的ROS包。强烈建议使用rviz可视化ROS数据。

    安装CARLA 0.9.7或更高版本(0.9.7以前的版本与ROS桥接不兼容)。

2 ROS桥接安装

    安装ROS桥接有两种选择:
    通过apt工具从Debian存储库安装。仅适用于Ubuntu 18.04。

    从GitHub上的源存储库克隆。
    下面详细介绍了这两种方法。

A.使用Debian存储库

    此安装方法仅适用于Ubuntu 18.04。有关其他受支持的发行版,请参考方法B。

    1. 在你的系统中设置Debian存储库:

 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1AF1527DE64CB8D9
    sudo add-apt-repository "deb [arch=amd64] http://dist.carla.org/carla $(lsb_release -sc) main"

    2. 安装ROS桥接:
    最新版本:

        sudo apt-get update # Update the Debian package index
        sudo apt-get install carla-ros-bridge # Install the latest ROS bridge version, or update the current installation

    通过在命令中添加version标签来安装特定的版本:

        apt-cache madison carla-ros-bridge # List the available versions of the ROS bridge
        sudo apt-get install carla-ros-bridge=0.9.10-1 # In this case, "0.9.10" refers to the ROS bridge version, and "1" to the Debian revision
3. 检查“/opt/”目录下ROS bridge是否安装成功。

B.使用源存储库
    1. 创建一个工作目录:

  mkdir -p ~/carla-ros-bridge/catkin_ws/src

    2. 克隆ROS Bridge存储库和子模块:

    cd ~/carla-ros-bridge
    git clone --recurse-submodules https://github.com/carla-simulator/ros-bridge.git catkin_ws/src/ros-bridge

    3. 根据已安装的ROS版本设置ROS环境:

 source /opt/ros/<melodic/noetic>/setup.bash

    4. 安装所需的ros依赖项:

    cd catkin_ws
    rosdep update
    rosdep install --from-paths src --ignore-src -r

    5. 编译ROS桥接:

   catkin build   # alternatively catkin_make

运行ROS桥接

    1. 请根据安装CARLA时使用的安装方法启动CARLA服务器:

 # Package version in carla root folder
    ./CarlaUE4.sh

    # Debian installation in `opt/carla-simulator/`
    ./CarlaUE4.sh

    # Build from source version in carla root folder
    make launch

    2. 将CARLA模块添加到Python路径中:

        export CARLA_ROOT=<path-to-carla>
        export PYTHONPATH=$PYTHONPATH:$CARLA_ROOT/PythonAPI/carla/dist/carla-<carla_version_and_arch>.egg:$CARLA_ROOT/PythonAPI/carla

    3. 请根据ROS桥接的安装方式,添加ROS桥接工作区的源路径。每次要运行ROS桥接时,都应该在每个终端上执行此操作:

    # For debian installation of ROS bridge. Change the command according to your installed version of ROS.
    source /opt/carla-ros-bridge/<melodic/noetic>/setup.bash

    # For GitHub repository installation of ROS bridge
    source ~/carla-ros-bridge/catkin_ws/devel/setup.bash

    4. 启动ROS桥接。

    # Option 1: start the ros bridge
    roslaunch carla_ros_bridge carla_ros_bridge.launch

    # Option 2: start the ros bridge together with an example ego vehicle
    roslaunch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch

    如果您收到错误:ImportError: no module named CARLA,则指向CARLA Python API的路径丢失。apt安装会自动设置路径,但在其他安装中可能没有。
    您需要将适当的.egg文件添加到Python路径中。您将在/PythonAPI/或/PythonAPI/dist/中找到该文件,具体取决于CARLA的安装。使用对应于Python安装版本的文件,使用.egg文件的完整路径执行以下命令:

export PYTHONPATH=$PYTHONPATH:path/to/carla/PythonAPI/<your_egg_file>

    建议通过将上一行命令添加到.bashrc文件中来永久设置该变量。
    要检查是否能正确导入CARLA库,请执行以下命令并等待成功消息:

    python3 -c 'import carla;print("Success")' # python3

    or

    python -c 'import carla;print("Success")' # python2

测试

    使用catkin执行测试:
    1. 构建包:

 catkin_make -DCATKIN_ENABLE_TESTING=0

    2. 运行测试:

 rostest carla_ros_bridge ros_bridge_client.test