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