Carla 学习笔记 1

使用系统 :ubuntu 22.04

Carla版本:0.9.13

安装过程:参考了预编译CARLA安装过程记录博客,虽然版本不太相同,但安装很顺利。预编译 CARLA 安装过程记录 Ubuntu 22.04 Carla 0.9.14_growing_dbs的博客-CSDN博客

参考资料:官方Quick start
Quick start package installation - CARLA Simulator

First steps

1st- World and client

Carla.client

创建客户端

import carla
# 创建客户端
client = carla.Client('localhost', 2000)
# 设置timeout
client.set_timeout(10.0)
# 获取可用的maps列表
list_map = client.get_available_maps()
print('maps:')
print(list_map)
# 获取客户端version
client_version = client.get_client_version()
print('client_version:'+ client_version)
# 获取服务器version
server_version = client.get_server_version()
print('server_version:'+ server_version)
# 获取当前world
world = client.get_world()
# load world
world = client.load_world('Town02')
# reload world
# world = client.reload_world('Town01')

# maps:['/Game/Carla/Maps/Town04_Opt', '/Game/Carla/Maps/Town02_Opt', '/Game/Carla/Maps/Town07_Opt', '/Game/Carla/Maps/Town07', '/Game/Carla/Maps/Town10HD_Opt', '/Game/Carla/Maps/Town03_Opt', '/Game/Carla/Maps/Town02', '/Game/Carla/Maps/Town01', '/Game/Carla/Maps/Town04', '/Game/Carla/Maps/Town06', '/Game/Carla/Maps/Town06_Opt', '/Game/Carla/Maps/Town03', '/Game/Carla/Maps/Town01_Opt', '/Game/Carla/Maps/Town05', '/Game/Carla/Maps/Town05_Opt', '/Game/Carla/Maps/Town10HD', '/Game/Carla/Maps/Town11/Town11']

每个世界对象都有一个ID或episode。 客户端调用 load_world()reload_world() 时,前一个都会被销毁。 新episode是从头开始创建的。 在此过程不重启Unreal Engine。

Carla.world:

模拟测试的主要部分。 world对象由client创建,是Map的一部分。

World包含我们可以看到的地图,是asset,而不是navigation map。Navigation map是Carla.map的一部分。它还管理天气和actors。包含模拟中的参与者和旁观者,蓝图库,地图,模拟设置,快照,天气和灯光管理器。

设置天气的两种方法:

import carla
import re
client = carla.Client('localhost', 2000)
client.set_timeout(10.0)
world = client.get_world()

#  使用参数控制天气
# weather = carla.WeatherParameters(
#     cloudiness=80.0,
#     precipitation=100.0,
#     precipitation_deposits = 80.0,
#     wind_intensity = 80.0,
#     sun_altitude_angle=300.0)

# world.set_weather(weather)

# 使用预设的天气
world.set_weather(carla.WeatherParameters.HardRainSunset)
print(world.get_weather())
# 查看预设的天气
rgx = re.compile('.+?(?:(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|$)')
name = lambda x: ' '.join(m.group(0) for m in rgx.finditer(x))
presets = [x for x in dir(carla.WeatherParameters) if re.match('[A-Z].+', x)]
print(presets)
# 输出结果:
# ['ClearNight', 'ClearNoon', 'ClearSunset', 'CloudyNight', 'CloudyNoon', 'CloudySunset', 'Default', 'HardRainNight', 'HardRainNoon', 'HardRainSunset', 'MidRainSunset', 'MidRainyNight', 'MidRainyNoon', 'SoftRainNight', 'SoftRainNoon', 'SoftRainSunset', 'WetCloudyNight', 'WetCloudyNoon', 'WetCloudySunset', 'WetNight', 'WetNoon', 'WetSunset']

设置灯光:路灯和车灯是分别控制的,当 sun_altitude_angle < 0 时,夜间模式开始,路灯会打开。车灯可以使用carla.Vehicle.get_light_state 和 carla.Vehicle.set_light_state方法随时检索和更新车辆的灯光。 这些使用二进制操作来自定义灯光设置。

2nd. Actors and blueprints

Blueprint:

carla.BlueprintLibrary 类包含 carla.ActorBlueprint 元素的列表

这些布局允许用户将新Actor顺利融入模拟器中。它们是带有动画和一系列属性的已经制作好的模型。一些是可修改的,另一些则不是。这些属性包括车辆颜色、激光雷达传感器的通道数量、行人的速度等等。

blueprint 有一个 ID 来识别它们和生成的actor。 可以找到某个 ID,或者使用通配符过滤结果。

每个 carla.ActorBlueprint 都有一系列 carla.ActorAttribute 可以 get 和 set。某些属性无法修改,属性有一个 carla.ActorAttributeType 变量。它从枚举列表中声明其类型。此外,可修改的属性带有一个推荐值列表。

import carla
import re
import random
client = carla.Client('localhost', 2000)
client.set_timeout(10.0)
world = client.get_world()
# 获得蓝图
blueprint_library = world.get_blueprint_library()
# 找到TESLA Model3 蓝图
ego_vehicle_bp = blueprint_library.find('vehicle.tesla.model3')
# 随机选取一个vehicle blueprint
# vehicle_bp = random.choice(blueprint_library.filter('vehicle.*.*'))
# 获取并打印其number_of_wheels属性
print(ego_vehicle_bp.get_attribute('number_of_wheels'))
# 设定color属性
ego_vehicle_bp.set_attribute('color', '255,0,0')

# 获取推荐值,并设定
for attr in ego_vehicle_bp:
    if attr.is_modifiable:
        ego_vehicle_bp.set_attribute(attr.id, random.choice(attr.recommended_values))

Anctor:

生成:需要一个 blueprint 和 ​  carla.Transform ​(用于说明位置和旋转)

可使用spawn_actor或try_spawn_actor生成actor

# map.get_spawn_points() 对于车辆. 返回推荐的生成点列表. 
# 找到所有可以作为初始点的位置并随机选择一个
transform = random.choice(world.get_map().get_spawn_points())
# 生成汽车
ego_vehicle = world.spawn_actor(ego_vehicle_bp, transform)

<think>好的,我现在需要帮助用户在Ubuntu 22.04安装CARLA 0.9.14。根据用户提供的引用内容,我需要整理出一个清晰的步骤指南。首先,用户提到Ubuntu 22.04可能不是官方推荐的版本,因为引用[1]建议使用Ubuntu 20.04,但用户仍希望继续。接下来,用户提供的引用中有预编译安装的方法,比如引用[2]提到了安装PythonAPI的步骤,而引用[3]和[4]则涉及客户端安装和Apollo桥接的环境搭建。 首先,我需要确认CARLA 0.9.14是否支持Ubuntu 22.04。根据引用[2]和[3],似乎有社区提供的资源,比如GitHub链接,可能适用于Ubuntu 22.04。用户可能需要下载预编译的版本,然后通过pip安装Python库。引用[2]中提到的步骤是进入PythonAPI/carla/dist目录,使用pip安装对应的whl文件,这可能是一个关键步骤。 另外,显卡驱动的版本也很重要,引用[1]提到需要最新的Nvidia驱动,用户已经安装了535.86.05版本,这可能满足要求。需要确保驱动正确安装,可以通过nvidia-smi命令验证。 然后,安装依赖项可能也是必要的。CARLA通常需要一些系统库,比如SDL2、OpenGL等。用户可能需要使用apt-get安装这些依赖。引用[4]中的容器内运行步骤可能涉及到其他依赖,但用户主要需要的是CARLA本身的安装。 还需要注意Python版本的问题,CARLA 0.9.14可能只支持特定的Python版本,比如Python 3.7,但Ubuntu 22.04默认的Python版本可能更高。这时候可能需要使用虚拟环境或者调整Python版本来兼容,比如引用[2]中的whl文件是cp37,说明需要Python 3.7。用户可能需要安装Python 3.7并使用它来安装CARLA的Python库。 最后,测试安装是否成功,运行示例脚本或客户端程序。例如,引用[3]中的GitHub链接可能提供了ROS相关的客户端安装方法,但用户可能需要的是基本的CARLA运行。 在整理步骤时,需要分阶段:环境准备、下载预编译包、安装Python库、安装依赖、验证安装。同时,要提醒用户注意可能的兼容性问题,如Ubuntu版本和Python版本,并提供解决方案,如使用虚拟环境或寻找社区支持的资源。</think>### Ubuntu 22.04 安装 CARLA 0.9.14 详细步骤 #### 一、环境准备 1. **验证显卡驱动** - 确保NVIDIA驱动版本≥535.86.05 - 终端执行命令验证: ```bash nvidia-smi ``` 输出应显示显卡信息及驱动版本[^1]。 2. **安装系统依赖** - 安装基础依赖库: ```bash sudo apt-get install libssl-dev libzmq3-dev python3-pip ``` #### 二、下载预编译包 1. **获取CARLA 0.9.14** - 从社区资源下载适配Ubuntu 22.04CARLA 0.9.14包(官方未正式支持,需第三方编译版本): ```bash wget https://github.com/gezp/carla_ros/releases/download/carla-0.9.14-ubuntu-22.04/carla_0.9.14.tar.gz tar -xzvf carla_0.9.14.tar.gz cd carla_0.9.14 ``` 引用社区提供的预编译包[^3]。 #### 三、安装Python客户端 1. **安装Python库** - 进入PythonAPI目录安装whl文件: ```bash cd PythonAPI/carla/dist pip install carla-0.9.14-cp37-cp37m-manylinux_2_27_x86_64.whl ``` 注意:若Python版本不匹配,需通过`pyenv`或`virtualenv`创建Python 3.7环境[^2]。 #### 四、运行CARLA服务端 1. **启动服务端** ```bash ./CarlaUE4.sh ``` - 若提示缺少`libomp5`,执行: ```bash sudo apt-get install libomp5 ``` #### 五、验证安装 1. **运行示例脚本** - 新建Python文件`test.py`: ```python import carla client = carla.Client('localhost', 2000) print(client.get_available_maps()) ``` - 执行脚本: ```bash python3 test.py ``` 成功输出地图列表即表示安装完成。 #### 六、可选:Apollo桥接环境(如需要) 1. **容器内安装桥接工具** - 参考引用[4]方法: ```bash cd /apollo/modules/carla_bridge chmod +x install.sh ./install.sh source ~/.bashrc python main.py ``` §§ 1. 如何解决CARLA启动时`libomp5`缺失报错? 2. CARLA Python客户端提示版本不兼容怎么办? 3. 如何在Ubuntu 22.04上降级Python版本以适配CARLA? 4. CARLA与自动驾驶框架Apollo的桥接如何配置? --- **注意**:由于Ubuntu 22.04非官方支持环境,部分功能可能受限,建议有条件时使用Ubuntu 20.04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值