目录
一.增加行人流和车流
执行文件为/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)
大雾天气
白天
夜晚
更多天气参数的设置可以查看/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窗口,可以看到默认渲染的传感器(相机、激光雷达、语义激光雷达)