[carla入门教程]-2 pythonAPI的使用
本专栏教程将记录我从安装carla到调用carla的pythonAPI进行车辆操控的全流程,带领大家从安装carla开始,到最终能够熟练使用carla仿真环境进行传感器数据采集和车辆控制.
文章目录
- 第二节 pythonAPI的使用
- 1. 安装Anoconda环境并创建虚拟环境
- 2.使用Vscode 打开工程目录
- 3.学习使用pythonAPI中的emamples
- 3.1 增加一些人和车
- 3.2 改变服务器的时间,光照,天气
- 3.3 手动控制车辆
第二节 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
dreamwxv: 博主,请问一下有三维为空间的混合A*算法吗?
想喝牛奶的程序员: 有偿解决
gwy0723: 网上租的服务器很多都是没有GUI功能的(通过Linux命令操作),Carla得需要可视化,自己笔记本装一个ubuntu系统然后按照教程装carla就ok
nenayo: 不是,我是在自己的设备上弄的
Last炫神丶丶: 请问你是在网上租用服务器的吗