Carla中PythonAPI的学习与使用

一.增加行人流和车流

执行文件为/home/car/CARLA_0.9.13/PythonAPI/examples路径下的generate_traffic.py文件
在这里插入图片描述

首先打开carla

./CarlaUE4.sh 

然后切换到/home/car/CARLA_0.9.13/PythonAPI/examples路径下

python generate_traffic.py -w 10 -n 10

在这里插入图片描述

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

'--host',  #主机服务器ip
'-p', '--port',#端口
'-n', '--number-of-vehicles',#车辆数量
'-w', '--number-of-walkers',#行人数量
'--safe',#避免碰撞
'--filterv',#车辆滤波器
'--filterw',#行人滤波器
'--generationv',#限制某些车辆生成
'--generationw',#限制某些行人生成
等等

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

执行文件为/home/car/CARLA_0.9.13/PythonAPI/examples路径下的dynamic_weather.py文件
在这里插入图片描述

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)

大雾天气
在这里插入图片描述

扫描二维码关注公众号,回复: 16145471 查看本文章

白天
在这里插入图片描述

夜晚
在这里插入图片描述

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

三.手动控制车辆

执行文件为/home/car/CARLA_0.9.13/PythonAPI/examples路径下的manual_control.py文件
在这里插入图片描述

python manual_control.py

在这里插入图片描述

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

pygame操作手册如下:

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 卸载当前的地图图层)
O : 打开/关闭所有车门
T : 切换到车辆的自动测量记录传导,在carla客户端界面显示
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

四.车辆的自动驾驶

执行文件为/home/car/CARLA_0.9.13/PythonAPI/examples路径下的automatic_control.py文件
在这里插入图片描述

python automatic_control.py 

在这里插入图片描述

会弹出一个pygame窗口,车辆正在进行自动驾驶
在这里插入图片描述

到达终点后,自动关闭
在这里插入图片描述

五.具有基本汽车控制功能的客户端边界框的示例

执行文件为/home/car/CARLA_0.9.13/PythonAPI/examples路径下的client_bounding_boxes.py文件
在这里插入图片描述

python client_bounding_boxes.py 

在这里插入图片描述

此时弹出一个具有基本控制功能的车辆的窗口(前进后退转向刹车)。
在这里插入图片描述

六.无渲染模式的启动

执行文件为/home/car/CARLA_0.9.13/PythonAPI/examples路径下的no_rendering_mode.py文件
在这里插入图片描述

python no_rendering_mode.py 

在这里插入图片描述

此时会打开一个无渲染模式的窗口
可以手动控制方框车辆的运动
在这里插入图片描述

七.罗技G29方向盘控制carla

执行文件为/home/car/CARLA_0.9.13/PythonAPI/examples路径下的manual_control_steeringwheel.py文件
在这里插入图片描述

python manual_control_steeringwheel.py --host <服务器地址>

本机运行的话不用加服务器地址
在这里插入图片描述

弹出pygame窗口
在这里插入图片描述

此时已经可以用方向盘、按钮和刹车控制车辆。
在这里插入图片描述

八.车辆展示

执行文件为/home/car/CARLA_0.9.13/PythonAPI/examples路径下的vehicle_gallery.py文件
在这里插入图片描述

python vehicle_gallery.py 

在这里插入图片描述

此时可以看到carla服务端在循环展示不同型号的车辆
在这里插入图片描述

九.显示不同脉冲和力应用效果

执行文件为/home/car/CARLA_0.9.13/PythonAPI/examples路径下的vehicle_physics.py文件
在这里插入图片描述

python vehicle_physics.py 

在这里插入图片描述

可以看到carla服务端有一辆指定位置的车在弹跳
在这里插入图片描述

十.多传感器的可视化

在同一个pygame窗口中渲染多个传感器的脚本
默认情况下,它渲染四个相机,一个激光雷达和一个语义激光雷达。
它可以很容易地配置为任何不同数量的传感器。
执行文件为/home/car/CARLA_0.9.13/PythonAPI/examples路径下的visualize_multiple_sensors.py文件
在这里插入图片描述

python visualize_multiple_sensors.py 

在这里插入图片描述

此时弹出一个pygame窗口,可以看到默认渲染的传感器(相机、激光雷达、语义激光雷达)
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/justinyjf/article/details/131624183