• [carla入门教程]-2 pythonAPI的使用


    本专栏教程将记录我从安装carla到调用carla的pythonAPI进行车辆操控的全流程,带领大家从安装carla开始,到最终能够熟练使用carla仿真环境进行传感器数据采集和车辆控制.

    第二节 pythonAPI的使用

    本小节主要学习使用 pythonAPI来与carla服务器进行交互.包括获取信息,发送信息.

    本节只是简要介绍几个官方写的demo,更多内容请参考:
    carla在线文档

    1. 安装Anoconda环境并创建虚拟环境

    Anoconda安装教程

    使用conda之前,需要更换源为国内源,否则会比较慢.使用下面的指令实现换源:

    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge 
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
    
    conda config --set show_channel_urls yes
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    使用conda创建python3.7的虚拟环境,命名为carla

    conda create -n carla python=3.7
    
    • 1

    激活虚拟环境

    conda activate carla
    
    • 1

    激活后显示是这样的:
    在这里插入图片描述
    在虚拟环境下,再进行pip的升级和换源:

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    
    • 1
    • 2

    接着安装carla 的pythonAPI所需要的依赖库:

    pip install pygame numpy
    pip install carla==0.9.12
    sudo apt-get install -y libomp5
    
    • 1
    • 2
    • 3

    2.使用Vscode 打开工程目录

    vscode官网下载安装vscode 的.deb包
    在这里插入图片描述
    使用指令sudo dpkg -i xxxx.deb 安装vscode

    carla-0.9.12目录下使用指令

     code .
    
    • 1

    打开整个工程:
    在这里插入图片描述

    3.学习使用pythonAPI中的emamples

    3.1 增加一些人和车

    切换到/carla-0.9.12/PythonAPI/examples目录下,运行以下指令

    python generate_traffic.py -n 20 -w 20
    
    • 1

    可以看到,carla服务器中的街道上多了很多运动的车辆和行人. 后面的参数 -n 20 -w 20分别代表车辆和行人的数量,这个脚本还有很多其他的参数:

            '--host',  #ip
            '-p', '--port',#端口
            '-n', '--number-of-vehicles',#车辆数量
            '-w', '--number-of-walkers',#行人数量
            '--safe',#避免碰撞
            '--filterv',#车辆滤波器
            等等
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    具体可以参考脚本 generate_traffic.py中的参数.
    在这里插入图片描述

    3.2 改变服务器的时间,光照,天气

    运行下面的脚本

    python dynamic_weather.py -s 5
    
    • 1

    参数-s 5意思是把天气变化加速了5倍.

    这个脚本是按照仿真时间,修改服务器中设置天气的参数carla.WeatherParameters,按照一定的顺序自动的调整系统的光照和天气.

    • 光照条件包括:太阳高度和太阳角度.
    • 天气条件包括:云,雨,水坑,风,雾,湿度.

    下面简单分析一下脚本是如何修改天气的.

    # 设置更新频率
    speed_factor = args.speed
    update_freq = 0.1 / speed_factor
    # 创建一个客户端
    client = carla.Client(args.host, args.port)
    # 获取世界变量
    world = client.get_world()
    # 创建天气变量
    weather = Weather(world.get_weather())
    # 在while循环中,不断修改weather
        while True:
            timestamp = world.wait_for_tick(seconds=30.0).timestamp
            elapsed_time += timestamp.delta_seconds
            if elapsed_time > update_freq:
                weather.tick(speed_factor * elapsed_time)
                # 把修改后的wheather载入世界变量.
                world.set_weather(weather.weather)
                sys.stdout.write('\r' + str(weather) + 12 * ' ')
                sys.stdout.flush()
                elapsed_time = 0.0)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    大雾天气
    大雾天气
    夜晚
    夜晚

    更多天气参数的设置可以查看/pythonAPI/python_api.md中的carla.WeatherParameters.

    3.3 手动控制车辆

    运行脚本:

    python manual_control.py
    
    • 1

    在这里插入图片描述
    键盘 B 按键可以切换自动控制和人工控制

    各个字母代表含义:

    W : 前进。↑ 键也可以前进。
    S : 刹车。↓ 键也可以 刹车
    A/D : A 左转 D 右转。← 也可以左转,→ 也可以右转。
    Q : Q 倒车标志。Q+W 可以倒车。
    Space : 空格是手刹。和 S 不同。
    P : 开启/关闭自动驾驶模式。
    M : 自动档/手动档
    ,/. : 加减挡。,减档 . 加档
    CTRL + W : 同时按下 CTRL + W ,在放开 CTRL + W ,车会一直以 60 km/h 的速度前进
    L : 控制车灯切换。雾灯、近光灯等切换。
    SHIFT + L : 切换远光灯
    Z/X : 转向灯。Z 左转向,X 右转向。
    I : 车内照明灯。
    TAB : 切换视角
    N : 切换不同类型的 camera 和 lidar 
    [1-9] : 切换不同类型的 camera 和 lidar,和 N 不同,N 每按下一次,sensor 顺序切换。按下数字键,可直接切换到对应 sensor
    G : 打开/关闭 毫米波雷达
    C : 切换天气,(Shift+C ,天气有多种,切换顺序和C相反)
    Backspace : 换车型
    V : 选地图图层 (Shift+V ,地图有多个图层,切换顺序和V 相反)
    B : 加载当前的地图图层(Shift+B 卸载当前的地图图层)
    R : 记录车辆走行情况
    CTRL + R : 切换到 R做的记录 (replacing any previous)
    CTRL + P : 回放R的记录
    CTRL + + : increments the start time of the replay by 1 second (+SHIFT = 10 seconds)
    CTRL + - : decrements the start time of the replay by 1 second (+SHIFT = 10 seconds)
    F1 : 显示/不显示页面左侧和sensor相关的一些信息,例如加速度,陀螺仪,GNSS等
    H : 可以弹出帮助命令
    ESC : 退出pygame
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
  • 相关阅读:
    使用C语言实现双向链表(带头结点)
    python笔记(四)--封装
    这可是网络工程师零基础学习路线最完整,最详细的版本,没有之一
    java计算机毕业设计H5新冠防疫宣传网站设计与实现源码+数据库+系统+lw文档
    前端框架 Nuxtjs Vue3 SEO解决方案 SSR
    使用iPXE自动化安装ubuntu22.04
    PowerBI 一些基础功能
    pycharm中常用的快捷键
    Linux中目录的概述以及 查看 切换 创建和删除目录
    i5 13600KF参数 酷睿i53600KF什么水平i5 13600KF核显相当于什么显卡
  • 原文地址:https://blog.csdn.net/condom10010/article/details/127615254