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}

浙公网安备 33010602011771号