提问 发文

【仿真】Carla之Docker 运行 及 渲染相关

微微菌

| 2024-03-22 10:35 147 0 0

参考与前言
carla官方对于docker 运行的描述:

CARLA in Docker

Docker的使用:[暂时没贴]

相关已知issue,欢迎补充

https://github.com/carla-simulator/carla/issues/4834

使用的初衷是:因为收集数据的时候,想开多个carla,但是一个carla 3-4G显存,奈何我的电脑就仅仅6G显存 1660Ti,所以就萌生了这个想法。但是呢 途中发现:

Carla 0.9.10.1 的版本 docker可以运行 但是必须有DISPLAY的设备 不然如果DISPLAY给空的话 就会没有 → 但是呢 你在本地运行的时候 可以DISPLAY为空 也可以正常运行
Carla 0.9.12 的版本 就可以运行做到offscreen (后面会解释这个词)
回到开始,所以呢 主要就是介绍怎样在docker中运行carla,以及这些的作用,好处等,前面介绍了较多关于渲染的东西,要是觉得烦,直接目录跳转docker处

1. 渲染 Rendering
off-screen & no-rendering
官方文档:

Rendering options

首先我们要知道 off-screen 和 no-rendering各自的意义是什么,从字面上,一个是离屏但是渲染继续,一个是直接不做图形渲染

No-rendering mode: 虚幻引擎不会做任何渲染,图形学方面的计算都是没有的,所以基于GPU的所有传感器返回的是空数据

它有助于在非常高的频率下进行大量的交通模拟和道路行为。

Off-screen mode: 虚幻引擎还是正常工作,渲染都在计算中,传感器也会返回值,只是没有display 显示选项了而已

那什么时候用什么呢?正常其实如果还在debug 调试阶段,其实一般都是需要display 做上帝俯视视角掌控一下全局的

对于你不需要传感器数据,只是用来做交通流的仿真的时候,no-rendering mode是一个不错的选择,例如:我只是看看我基于ground truth (不基于传感器感知) 的agent的整体运行路径的表现效果,比如撞车等,可以使用这种模式,十分迅速
对于off-screen呢 主要是觉得显示界面有的烦,就可以配合 tmux 进行搭配,这样主机只要不关机/ 服务器不关机 这都在继续运行 终端退出了也不碍事,也不会出现误触关掉
所以,了解了原理后,如何开启各个所需模式呢?

off screen

0.9.12及之后的版本 只有有renderoffscreen,也就是离屏模式:

./CarlaUE4.sh -RenderOffScreen
1
0.9.11及之前的 就可以使用opengl,把DISPLAY 给空就行(但这步在docker并不适用)

# Linux
DISPLAY= ./CarlaUE4.sh -opengl
1
2
vulkan的步骤请见官方文档,需要安装驱动等其他sudo所需权限apt install等

no rendering

可以在py代码里读取到world后设置:

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


也可以单独开一个终端窗口 通过官方提供的 config.py 进行设置


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


前两种应该知道在说什么,如图所示(1是带渲染的,2是不带渲染的 注意这种模式下界面也会变黑,传感器也都没有数据):


在这里插入图片描述


后一种是一种鸟瞰图形式,也是无渲染 节约型的,如下图所示:


在这里插入图片描述


渲染质量

首先 如果你不追求收集的图片传感器的质量的话,为了提高效率 使用低质量渲染也是一种不错的选择,注意 这点会影响天空的渲染,更多可以自己尝试一下


在这里插入图片描述


左边是低质量,右边是正常epic质量


./CarlaUE4.sh -quality-level=Low
./CarlaUE4.sh -quality-level=Epic


另外在Carla 0.9.12之前的版本,还有opengl和vulkan的选择,我记得我在哪个issue里读到过 opengl的渲染没有vulkan的好,有时候屏幕/传感器收到的数据会出现黑点

而0.9.12之后就只留下了vulkan的渲染模式

2. Docker 中运行
首先 docker 安装,基本指令等等等 就不讲了 前面的部分放了参考链接,很多教程也可熟悉

大概是这样一幅图,感觉还是看图一目了然在干什么事:


在这里插入图片描述


摘自 carla github 官方的老0.8版本的repo

https://github.com/carla-simulator/data-collector

pull/build
此处先以官方为准,讲简洁型pull方案,build等后面补充吧

因为可以两个docker net对上了 就能连上,所以carla完全作为多个容器开着,对好自己的另一个运行的环境的端口就行

docker pull,其实和 git clone 异曲同工之处
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/qq_39537898/article/details/122557353

收藏 0
分享
分享方式
微信

评论

游客

全部 0条评论

10147

文章

9.2W+

人气

17

粉丝

1

关注

官方媒体

轻松设计高效搭建,减少3倍设计改稿与开发运维工作量

开始免费试用 预约演示

扫一扫关注公众号 扫一扫联系客服

©Copyrights 2016-2022 杭州易知微科技有限公司 浙ICP备2021017017号-3 浙公网安备33011002011932号

互联网信息服务业务 合字B2-20220090

400-8505-905 复制
免费试用
微信社区
易知微-数据可视化
微信扫一扫入群