carla入门

carla

一、安装

官网地址

1.1 windows下安装

  1. 下载zip文件安装

  2. 在解压的文件中的…\PythonAPI\carla\dist中的.egg文件要求的版本安装Python。我这里是carla-0.9.12-py3.7-win-amd64.egg,所以安装Python3.7版本

  3. 确保安装了python的情况下执行:

     pip install --user pygame numpy -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
     pip install -r requirements.txt  -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
     pip install shapely -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

  4. 进入到解压文件双击CarlaUE4.exe, 就可以启动啦 用键盘的QWEASD和鼠标控制视野

正在上传…重新上传取消

5.如果报错说缺少Microsoft Visual C++ 和 DirectX, 或者其中之一参考下面链接

  • Visual Studio :安装教程(需要重启)

  • DirectX: 安装包 (下一步、下一步安装就可以)

  1. 安装carla包

    pip install carla
  2. 对于0.9.10版本的carla安装包应该这样装

    easy_install .\carla-0.9.10-py3.7-win-amd64.egg

1.2 ubuntu下安装

  1. 环境要求

    至少需要6GB的GPU
    carla需要大概20GB的磁盘空间
    Python: 这里用python3.7(一般在下载的PythonAPI\carla\dist下查看)
  2. 升级pip3并安装pygame和numpy

     pip3 install --upgrade pip -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
     pip install --user pygame numpy -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
  3. 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"
    ​
    sudo apt-get update
    sudo apt-get install carla-simulator
    cd /opt/carla-simulator
    ​
    # carla-simulator=你要的版本,这里安装最新版本0.9.12
    apt-cache madison carla-simulator
    sudo apt-get install carla-simulator=0.9.12
  4. 安装carla包

    cd PythonAPI/carla/dist/
    pip3 install carla-0.9.12-cp37-cp37m-win_amd64.whl
    ​
    # 或者
    pip3 install carla
  5. 可以启动啦

    cd /opt/carla-simulator/bin/
    ./CarlaUE4.sh

1.3 docker下安装

  1. 安装docker

  2. 安装依赖: nvidia-docker2和nvidia-container-runtime

    • sudo apt-get install nvidia-docker2

      • 可能报错:

      • 解决办法执行下面

      • $ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
          sudo apt-key add -
        $ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
        $ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
          sudo tee /etc/apt/sources.list.d/nvidia-docker.list
        $ sudo apt-get update
    • 然后安装 sudo apt-get install nvidia-container-runtime

  3. 拉取镜像:我这里是0.9.11版本, 也可以自选版本,或者docker pull carlasim/carla:latest最新版本

  4. 启动
 
 

二、初识carla

  • carla默认的交互端口为2000和2001

2.1 carla的交互形式

来自carla官网的图片如下: Server + Client两个模块 (建立仿真世界+控制改变仿真世界)

正在上传…重新上传取消

2.2 carla的核心模块

  1. Traffic Manager: 交通管理器。 负责模拟现实世界复杂的的交通环境,(后面细说比较复杂)

  2. Sensors: Carla里面有各种各样模拟真实世界的传感器模型,包括相机、激光雷达、声波雷达、IMU、GNSS等等。为了让仿真更接近真实世界,它里面的相机拍出的照片甚至还有畸变和动态模糊效果。用户一般将这些Sensor attach到不同的车辆上来收集各种数据。

  3. Recorder: 这个模块是用来记录仿真每一个时刻(Step)的状态,可以用来回顾、复现等等。

  4. ROS bridge: 这个模块可以让Carla与ROS还有Autoware交互,正是这个模块的存在使得在仿真里测试你的自动驾驶系统变得可能,十分重要。

2.3 小案例一

(实践是检验真理的唯一标准)

  • 在仿真世界中创建一辆小车,并控制行驶

  • 在编程过程中,一般按照下面三个元素抽象层级的顺序进行编程

    • world:先创建这个仿真世界

    • blueprint: 获得所有actor的blueprint

    • actor: 所有仿真世界的 ‘演员’ 车、人、传感器

  • 代码演示

三、核心模块扩展

3.1 Sensors

  • 第一类返回数据都是类的实例

    • RGB camera : RGB相机 普通摄像头

    • Semantic Segmentation camera: 语义分割相机

    • Depth camera: 深度相机

    • Optical Flow Camera : 光流相机

    • DVS camera(Dynamic Vision Sensor): 动态视觉传感器相机

    • Gnss sensor: 导航卫星定位传感器

    • Lidar raycast.:激光雷达传感器

    • Radar: 雷达

    • SemanticLidar raycast: 语义激光雷达

    • IMU sensor:惯性传感器

    • RSS sensor(responsibility sensitive safety) : 责任敏感安全传感器

  • 第二类, 返回是一个触发事件

    • Collision detector: 碰撞检测

    • Lane invasion detector: 压线检测

    • Obstacle detector: 障碍物检测

3.1.1 代码演示

  • 注册传感器蓝图

  • 设置传感器的参数

  • 放置的位置

  • 监听返回结果

3.2 Traffic Manager 车辆管理模块

正在上传…重新上传取消

3.3 行为控制部分

  1. 确定起始位置和结束位置,生成航路点

    networkx?

  2. 根据判断的信息进行操控小车

  • 代码演示与讲解

3.4 可视化工具carlaviz

  • 0.9.10: 与pygame结合进行展示

  • docker run -it -p 8080:8080 -p 2000:2000 -e CARLAVIZ_HOST_IP=localhost -e CARLA_SERVER_IP=localhost -e CARLA_SERVER_PORT=2000 mjxu96/carlaviz:0.9.10

猜你喜欢

转载自blog.csdn.net/weixin_42464652/article/details/127109092