Carla+ROS1联合仿真环境搭建

1.环境搭建

1.1硬件环境

基于Docker安装
系统环境:ubuntu18.04,nvidia-470,cuda-11.1

1.2.Carla环境搭建

1.拉取镜像

docker pull carlasim/carla:latest

2.运行镜像
主要有2种方式:

  • 1.运行docker就直接运行UE4
# 代显示运行
docker run --privileged --gpus all --net=host -e DISPLAY=$DISPLAY carlasim/carla:latest /bin/bash ./CarlaUE4.sh

# 不显示运行
docker run --privileged --gpus all --net=host -v /tmp/.X11-unix:/tmp/.X11-unix:rw carlasim/carla:latest /bin/bash ./CarlaUE4.sh -RenderOffScreen

# 用vulkan显示运行
docker run --privileged --gpus all --net=host -e DISPLAY=$DISPLAY -e SDL_VIDEODRIVER=x11 -v /tmp/.X11-unix:/tmp/.X11-unix:rw carlasim/carla:latest /bin/bash ./CarlaUE4.sh -vulkan

#用opengl显示运行(已经被vulkan替代)
docker run -e DISPLAY=$DISPLAY --net=host --gpus all --runtime=nvidia carlasim/carla:latest /bin/bash CarlaUE4.sh -opengl
  • 2.只运行docker不运行UE4,进入docker后单独运行UE4
docker run --privileged --gpus all --net=host -e DISPLAY=$DISPLAY -e SDL_VIDEODRIVER=x11 -v /tmp/.X11-unix:/tmp/.X11-unix:rw carlasim/carla:latest /bin/bash

如果要和ros进行仿真最好采用第2种方式。
3.进入镜像
新开个终端通过下面方式进入

docker exec -it -u $USER 容器名 /bin/bash

在这里插入图片描述
4.设置环境变量
进入docker后需要设置环境变量,为了和ros1进行仿真,这里设置的python2.7的。如果不进行ros仿真可以设置python3,具体是那个版本可以自行到PythonAPI/carla/dist目录查看。

export PYTHONPATH=$PYTHONPATH:xxxxxx/xxx/xxx/xxxx/PythonAPI/carla/dist/carla-0.9.13-py2.7-linux-x86_64.egg

1.3 Ros Bridge的搭建

1.在镜像中安装ros

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install ros-melodic-desktop-full

2.ros-bridge的安装
有2中方式:

  • 方式1:通过apt进行安装,这种比较简单
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"
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
OR
安装指定版本
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

该方式安装的在仿真的时候虚拟环境是黑天的,通过手动设置天气也没有反映,乌曲码黑的。

  • 方式2:通过源码安装(推荐
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
# source ros的环境
source /opt/ros//setup.bash
# 安装ros依赖
cd catkin_ws
rosdep update
rosdep install --from-paths src --ignore-src -r
# 编译
catkin_make

2.运行仿真

2.1.UE4服务端的运行

在docker镜像中运行,2种方式。

./CarlaUE4.sh -vulkan #启动服务端显示运行
./CarlaUE4.sh -RenderOffScreen #启动服务端不显示运行(推荐,减少资源消耗)

Carla+ROS1联合仿真环境搭建_第1张图片

2.2.ros-bridge客户端的运行

roslaunch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch


上图为启动成功后的界面,现在就可以通过键盘WSAD控制车辆在地图中驾驶了。

2.3.数据的可视化

ros主要是通过rviz可视化工具来查看不同数据的。

rosrun rviz rviz

Carla+ROS1联合仿真环境搭建_第2张图片上图是可视化的第三视角图像和车辆的lidar数据。

rostopic list #查看所有输出的topic信息

Carla+ROS1联合仿真环境搭建_第3张图片

2.4 传感器参数的配置

1.传感器配置
车辆传感器参数的可以根据自己的情况设置参数,具体的修改文件如下:

carla-ros-bridge/carla_spawn_objects/config/objects.json

2.地图修改
通过修改launch文件配置:carla_ros_bridge_with_example_ego_vehicle.launch

 name="town" default="Town3"
# Town1/2基本是平路
# Town3存在上坡和下坡道路,还有隧道
# Town4比较平道路

2.5 测试案例

这里做了一个小项目,就是基于仿真环境的lidar进行地面点的分割。
下面是一段效果视频:

Carla+ROS1联合仿真环境下基于Lidar的地面分割

你可能感兴趣的:(仿真,小知识分享,传感器,自动驾驶,ue4)