其他分享
首页 > 其他分享> > 自动驾驶仿真器CARLA_0.9.12安装、使用及存在的问题

自动驾驶仿真器CARLA_0.9.12安装、使用及存在的问题

作者:互联网

目录

简介

作为自动驾驶两大开源仿真器(LGSVLCARLA)之一,CARLA基本具备了自动驾驶仿真器需要具备的大部分功能,诸如完整的车辆运动系统、地图系统、各类常规传感器、天气系统等等,并且其基于UE4开发,在仿真效果真实性上是LGSVL不能比拟的,因此其还有很大的一个用途是可以通过其采集各类数据用于神经网络训练,CARLA可以直接输出各类数据及其真值,大大减少了训练成本。

安装

CARLA分为服务器端与客户端,需要分别安装。

服务器端

CARLA官网直接下载仿真器,并运行即可,需要提前安装好NVIDIA驱动,相关教程很多,这里不详细写了,ubuntu下运行命令为:

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

附带参数第一个指将画质调低,默认为高,视自己的机器配置而定;第二个指不开启预览窗,这个预览窗没啥作用,大部分时候都可以不开。

客户端

这里我是基于ROS2开发的,因此下载carla-ros-bridge作为客户端使用,这个模块包含有多个package,这里重点注意下carla_ros_bridge、carla_spawn_objects、carla_manual_control三个package。

使用流程

一般使用流程如下:
在这里插入图片描述

目前存在的问题

目前CARLA客户端问题主要在于运行卡顿,无法设置为与真实时间同步等,部分跟ROS2有关,其中运行卡顿与多个因素有关,这里列举几个个人使用过程中比较头疼的问题如下:

1、激光数据转换时间长

bridge中将激光数据转换为ROS消息的部分采用一个一个点迭代计算的方式,实际测试计算时间很长,可以直接改为整块内存复制,运行速度会大幅加快。

2、ROS2 python版publish时间长

主要导致的原因是python publish部分底层数据拷贝同样采用单个数据迭代拷贝的方式,数据量越大复制时间越长,在图像数据拷贝时尤为明显,这个PR对其进行了修复,但目前只有ROS2 galactic最新版本采用了该修改,实测可以大幅减少publish时间。

3、bridge中采用单线程进行处理

同步模式下对server的tick操作实测在计算量大时可以花费较长时间,再加上tick返回后update所有的传感器同样需要耗费不少时间,实际上以上操作可以并行处理,实测同样可以提升性能。

4、bridge无法设置与真实时间同步

由于仿真时间与真实时间是完全并行的两条线,因此仿真时间可能快于或慢于真实时间,但很多算法验证需要考虑其性能,在部分情况下需要仿真时间与真实时间一致去进行测试,才最符合实际情况,该功能目前没有提供,大部分机器不进行合理的配置,仿真时间都是远远慢于真实时间,直接体现就是卡顿,仿真器跑得很慢,这个可以结合3的问题进行线程优化,考虑fixed_delta_seconds进行合理的sleep来解决。

标签:0.9,仿真,12,仿真器,carla,CARLA,时间,传感器
来源: https://blog.csdn.net/liu3612162/article/details/121423418