[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

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

conda create -n carla python=3.7

激活虚拟环境

conda activate carla

激活后显示是这样的:
在这里插入图片描述
在虚拟环境下,再进行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

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

pip install pygame numpy
pip install carla==0.9.12
sudo apt-get install -y libomp5

2.使用Vscode 打开工程目录

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

carla-0.9.12目录下使用指令

 code .

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

3.学习使用pythonAPI中的emamples

3.1 增加一些人和车

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

python generate_traffic.py -n 20 -w 20

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

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

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

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

运行下面的脚本

python dynamic_weather.py -s 5

参数-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)

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

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

3.3 手动控制车辆

运行脚本:

python manual_control.py

在这里插入图片描述
键盘 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
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值