carla进阶教程

现在自动驾驶开始上端到端后仿真软件carla的优势就慢慢的凸显出来了,下面我们来对carla进行更加深入的学习(前提:已经对安装carla等基本操作比较熟悉之后。教程链接:https://blog.csdn.net/hooksten/article/details/140019004
首先是版本的问题,其实carla版本越高bug也就越少,并且对于pythonAPI的要求并不是严格要求的,所以我们完全可以使用比较高的版本,这里推荐使用0.9.13即可
https://mirrors.sustech.edu.cn/carla/carla/
在这里插入图片描述

安装好之后就是解压一下环境的地图,然后通过脚本来导入地图(不能自己解压后替换吗?——应该没有太大问题)

./ImportAssets.sh

在这里插入图片描述
接下来去配置它的python接口,直接就用example目录下的requirement.txt来配置
在这里插入图片描述

conda create -n carla python=3.8 # 版本没有直接要求
conda activate carla
pip install -r requirement.txt

同时需要修改一下carla对应的版本文件:
在这里插入图片描述
VERSION文件写入:

0.9.13 # 对应的carla版本

接下来需要去配置一下carla的本地环境变量:

gedit ~/.bashrc

添加内容为

export CARLA_ROOT=/home/cyun/app/CARLA_0.9.13
export CARLA_SERVER=${CARLA_ROOT}/CarlaUE4.sh
export PYTHONPATH=$PYTHONPATH:${CARLA_ROOT}/PythonAPI
export PYTHONPATH=$PYTHONPATH:${CARLA_ROOT}/PythonAPI/carla
export PYTHONPATH=$PYTHONPATH:$CARLA_ROOT/PythonAPI/carla/dist/carla-0.9.13-py3.7-linux-x86_64.egg

最后就可以测试一下了/home/cyun/app/CARLA_0.9.13/PythonAPI/examples文件夹中

./CarlaUE4.sh
python automatic_control.py # carla环境中运行

上述都理解了之后,下面是进一步的认识carla仿真环境。
首先是切换地图与移动视角。
启动

./CarlaUE4.sh

可以使用视角

Q - 向下飞
E - 向上飞
W - 视角向前方
S - 视角向后方
A - 视角向左方
D - 视角向右方

通过shift+对应的按键可以加速视角的移动

启动更多选项,启动中有很多模式可供选择,这里以9.13为例来说明比较新版的启动命令规则。https://carla.readthedocs.io/en/latest/adv_rendering_options/#no-rendering-mode
off-screen模式

./CarlaUE4.sh -RenderOffScreen

在这里插入图片描述
运行之后没有任何画面

0.9.11及之前的

DISPLAY= ./CarlaUE4.sh -opengl

将DISPLAT置空

no rendering模式
一方面可以自己去添加配置,生成世界时配置一下:

settings = world.get_settings()
settings.no_rendering_mode = True
world.apply_settings(settings)
...
settings.no_rendering_mode = False
world.apply_settings(settings)

同时carla也提供了相应的例程,在pythonapip的util和example中

./CarlaUE4.sh
cd PythonAPI/util && python3 config.py --rendering

在这里插入图片描述

cd PythonAPI/examples && python3 no_rendering_mode.py

在这里插入图片描述

关闭render模式:

cd PythonAPI/util && python3 config.py --no-rendering

降低渲染质量

./CarlaUE4.sh -quality-level=Low

在这里插入图片描述

默认的正常渲染质量

./CarlaUE4.sh -quality-level=Epic

在这里插入图片描述

更换地图问题
在这里插入图片描述

./CarlaUE4.sh
python config.py --list

在这里插入图片描述
切换地图

python config.py -m Town01

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

视觉语言模型参数设置:

.bashrc:

export carla=/home/cyun/Documents/LMDrive/CALAR-0.9.10.1
export leaderboard=/home/cyun/Documents/LMDrive/leaderboard
export scenario_runner=/home/cyun/Documents/LMDrive/scenario_runner
export langauto=/home/cyun/Documents/LMDrive/langauto

run_evaluation.sh:


#!/bin/bash
export PT=$(($RANDOM % 1000 + 16000))
bash carla/CarlaUE4.sh --world-port=$PT &

sleep 4

export CARLA_ROOT=carla
export CARLA_SERVER=${CARLA_ROOT}/CarlaUE4.sh
export PYTHONPATH=$PYTHONPATH:${CARLA_ROOT}/PythonAPI
export PYTHONPATH=$PYTHONPATH:${CARLA_ROOT}/PythonAPI/carla
export PYTHONPATH=$PYTHONPATH:$CARLA_ROOT/PythonAPI/carla/dist/carla-0.9.10-py3.7-linux-x86_64.egg
export PYTHONPATH=$PYTHONPATH:$leaderboard
export PYTHONPATH=$PYTHONPATH:$leaderboard/team_code
export PYTHONPATH=$PYTHONPATH:$scenario_runner

export LEADERBOARD_ROOT=$leaderboard
export CHALLENGE_TRACK_CODENAME=SENSORS
export PORT=$PT # same as the carla server port
export TM_PORT=$(($PT+500)) # port for traffic manager, required when spawning multiple servers/clients
export DEBUG_CHALLENGE=0
export REPETITIONS=1 # multiple evaluation runs
export ROUTES=$langauto/benchmark_long.xml
export TEAM_AGENT=$leaderboard/team_code/lmdriver_agent.py # agent
export TEAM_CONFIG=$leaderboard/team_code/lmdriver_config.py # model checkpoint, not required for expert
export CHECKPOINT_ENDPOINT=results/sample_result.json # results file
#export SCENARIOS=leaderboard/data/scenarios/no_scenarios.json #town05_all_scenarios.json
export SCENARIOS=$leaderboard/data/official/all_towns_traffic_scenarios_public.json
export SAVE_PATH=data/eval # path for saving episodes while evaluating
export RESUME=True

echo ${LEADERBOARD_ROOT}/leaderboard/leaderboard_evaluator.py
python3 -u  ${LEADERBOARD_ROOT}/leaderboard/leaderboard_evaluator.py \
--scenarios=${SCENARIOS}  \
--routes=${ROUTES} \
--repetitions=${REPETITIONS} \
--track=${CHALLENGE_TRACK_CODENAME} \
--checkpoint=${CHECKPOINT_ENDPOINT} \
--agent=${TEAM_AGENT} \
--agent-config=${TEAM_CONFIG} \
--debug=${DEBUG_CHALLENGE} \
--record=${RECORD_PATH} \
--resume=${RESUME} \
--port=${PORT} \
--trafficManagerPort=${TM_PORT}
posted @ 2025-02-27 15:01  白云千载尽  阅读(180)  评论(0)    收藏  举报  来源