参考文件
Install ROS Bridge for ROS 1 - CARLA Simulator
这里使用的是 ubuntu18.04 与 ROS melodic
使用源存储库的方式
下载与编译
创建工作空间,克隆 ROS 网桥存储库和子模块
mkdir -p ~/carla-ros-bridge/catkin_ws/src
cd ~/carla-ros-bridge
git clone --recurse-submodules https://github.com/carla-simulator/ros-bridge.git catkin_ws/src/ros-bridge
设置 ros 环境与安装 ros 依赖
source /opt/ros/melodic/setup.bash
cd catkin_ws/
rosdepc update
更新功能包的依赖
rosdepc install --from-paths src --ignore-src -r
一般都选择继续执行
然后编译工作空间
catkin_make
将正确的 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
那么根据我的位置,我应该写成如下内容,然后一并将工作空间的环境变量写入主目录的 .bashrc
export CARLA_ROOT=/home/xiong/CARLA_0.9.11
export PYTHONPATH=$PYTHONPATH:$CARLA_ROOT/PythonAPI/carla/dist/carla-0.9.11-py2.7-linux-x86_64.egg:$CARLA_ROOT/PythonAPI/carla
# For GitHub repository installation of ROS bridge
source ~/carla-ros-bridge/catkin_ws/devel/setup.bash
启动测试
启动 ROS 桥。使用任何可用的不同启动文件检查安装
启动测试
roslaunch carla_ros_bridge carla_ros_bridge.launch
出现报错
报错信息ImportError: No module named transforms3d.euler
安装 transforms3d
参考文件
安装transform3d_transforms3d安装-CSDN博客
安装 transforms3d
pip install transforms3d
CARLA 版本值的修改
重新运行后新报错
参考文件
ubuntu20.04安装运行carla0.9.13问题-CSDN博客
将/home/xiong/carla-ros-bridge/catkin_ws/src/ros-bridge/carla_ros_bridge/src/carla_ros_bridge/CARLA_VERSION
的值改成仿真器的对应版本,我这里是 0.9.11
等待接收仿真器的时间的修改
重新运行,新报错
修改/home/xiong/carla-ros-bridge/catkin_ws/src/ros-bridge/carla_ros_bridge/launch/carla_ros_bridge.launch
的 timeout 为 200 秒。
<!--arg name='timeout' default='2'/>等待接收仿真器的时间 单位 s-->
<arg name='timeout' default='200'/>
也就是说 这个进程会等待仿真器的启动,重新运行后没有报错
roslaunch carla_ros_bridge carla_ros_bridge.launch
那么这里官方给出了测试方式
启动仿真器后进行测试检查
cd CARLA_0.9.11/
./CarlaUE4.sh -prefernvidia
rostest carla_ros_bridge ros_bridge_client.test
可以看到终端的反馈斌没有错误信息,继续流程
ROS 桥接套件测试
那么这里可以生成一个可以控制的车辆,然后查看传感器与地图的数据
The ROS bridge package - CARLA Simulator
运行脚本,似乎是CARLA强制使用了集成显卡,而没有使用 NVIDIA 显卡。通过如下命令,可以正常运行:
cd CARLA_0.9.11/
./CarlaUE4.sh -prefernvidia # 需要添加 -prefernvidia 参数调用 NVIDIA 显卡
然后用自我车辆启动 ROS 桥:
roslaunch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch
Pygame 的安装
启动 ROS 桥后发现报错
RuntimeError: cannot import pygame, make sure pygame package is installed
要注意这里不要使用包管理器来安装 Pygame:,因为会默认安装 python 3.6 版本的,不能使用在这里,因为这里卡了一天。最后发现是 Pygame 的版本有要求,错误的流程就不写出来了。sudo apt-get install python-pygame
安装 Pygame 2.0.3 版本
sudo pip install pygame
重新启动仿真后,启动用自我车辆启动 ROS 桥。成功启动
cd CARLA_0.9.11/
./CarlaUE4.sh -prefernvidia
roslaunch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch
这里可以按 H 查看可以进行的操作
按 B 可以切换成手动控制
按 Q 可以更换前进挡或倒挡
CARLA 与 ROS1 的联合
根据官方的使用手册
发布底盘控制话题,注意这里要检查按 B 切换成自动控制
rostopic pub /carla/ego_vehicle/vehicle_control_cmd carla_msgs/CarlaEgoVehicleControl "{throttle: 1.0, steer: 1.0}" -r 10
可以看到车辆成功运行起来,证明 carla 与 ROS 连接桥通讯成功。
自此,ROS1 与 CARLA 的配置流程结束
上一节 CARLA_autoware的配置流程(一)CARLA 的快速入门与安装-CSDN博客
下一节 CARLA_autoware的配置流程(三)CARLA 与 Autoware 的联合-CSDN博客