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)

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

白天
在这里插入图片描述

夜晚
在这里插入图片描述

更多天气参数的设置可以查看/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窗口,可以看到默认渲染的传感器(相机、激光雷达、语义激光雷达)
在这里插入图片描述

### PyCharm 中 CARLA Python 3.7 的基础配置 要在 PyCharm 中完成 CARLA 和 Python 3.7 的基础配置,可以按照以下方法操作: #### 配置 Anaconda 子环境 为了确保兼容性和稳定性,建议通过 Anaconda 创建一个专门用于 CARLA 的子环境。具体命令如下: ```bash conda create --name rl_carla37 python=3.7 ``` 激活该子环境以便后续安装依赖项: ```bash conda activate rl_carla37 ``` #### 安装必要的库 在激活的环境中,可以通过 `pip` 或者 `easy_install` 来安装所需的库。例如,安装 Gym 库以支持强化学习实验: ```bash pip install gym==0.12.4 ``` 对于 CARLA 的核心模块,则需要将 `.egg` 文件作为包引入。假设 `.egg` 文件路径为 `E:\WindowsNoEditor\PythonAPI\carla\dist\carla-0.9.11-py3.7-win-amd64.egg`,可以直接运行以下命令来安装它[^1]: ```bash easy_install E:\WindowsNoEditor\PythonAPI\carla\dist\carla-0.9.11-py3.7-win-amd64.egg ``` 如果是在 Linux 平台下工作,也可以通过设置环境变量的方式加载 `.egg` 文件[^3]: ```bash export PYTHONPATH=$PYTHONPATH:/path/to/carla/dist/carla-0.9.10-py3.7-linux-x86_64.egg ``` #### 配置 PyCharm 解释器 打开 PyCharm 后,在创建新项目时需指定项目的 Python 解释器为之前创建的 Conda 环境中的 Python 版本。步骤如下: 1. **新建项目**:点击菜单栏上的 “File -> New Project”。 2. **选择解释器**:在弹出窗口中找到并选中 “Interpreter”,然后从列表中选择已有的 Conda 虚拟环境(即 `rl_carla37`),或者手动添加新的虚拟环境。 确认完成后即可开始编写代码。此时,PyCharm 已经能够识别由 Conda 提供的所有库以及通过 `easy_install` 添加的 CARLA 模块[^4]。 以下是简单的测试脚本示例,验证是否成功导入了 CARLA 模块: ```python import carla print("CARLA module imported successfully!") client = carla.Client('localhost', 2000) world = client.get_world() print(world) ``` --- #### 注意事项 - 如果遇到任何错误提示,请仔细核对所使用的 Python 版本号是否匹配 CARLA 支持的要求 (如 Python 3.7)。 - 对于 Windows 用户来说,推荐使用 PowerShell 终端执行上述命令序列[^2]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值