关于导入正常工作的车辆资产(不同尺寸)到Carla

本文详述了如何在Carla中正确导入3D车辆模型,包括解决车轮碰撞体与车轮不重合的问题,调整单位比例以适应不同尺寸的车辆,以及在UE4中确保车辆质量和碰撞体正确设置的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题出现的原因

  1. 车轮不是等尺寸,导致生成的车轮碰撞体图元无法正常工作。
  2. 3D建模软件(这里以3Dmax为例),默认情况下没有单位。但是如果车辆模型导出FBX设置了单位或者车辆模型建好,自己给车辆模型设置了单位。这样车辆模型再次导入建模软件,为了保证尺寸不变,进行单位转换,从而出现各种奇怪问题。
  3. FBX格式没有质量属性,但是导入Carla,模型的栅格数决定了碰撞体图元的默认质量,同尺寸下。质量太轻,即使黑色车轮碰撞体和车轮重合,车辆运行,也会出现奇怪现象。
  4. UE4的单位是厘米,所以建模软建中系统的单位比例应该设置为1单位=0.01米。

          这样保证了车轮黑色碰撞体和车轮重合。大部分车辆无法工作的原因是车轮黑色碰撞体和车轮不重合。

          但是小尺寸车辆车身图元质量太轻,无法将车轮黑色碰撞体和车轮压重合

     5.可以正常使用的车辆必须满足两个条件:

         车身图元的默认质量必须足够大,可以将黑色碰撞体和车轮压重合

          黑色车轮碰撞体,必须和车轮静态网格重合。

      6.UE4中车辆建好后使用pxvis collision 观察车辆。车轮的黑色碰撞体是否与车轮静态网格重合。

 

正常尺寸的车辆模型导入

正常尺寸的车只要在建模软件中单位比例设置1单位=0.01米,不会出现质量太轻,车轮黑色碰撞体不和车轮重合的问题。

车辆模型要求(在建模软件中设置):

  1. 将建模软建中系统的单位比例应该设置为1单位=0.01米。

 

  1. 车辆分为5个部分:车身(Vehicle_Base)、前轮左(Wheel_Front_Left)、前轮右(Wheel_Front_Right)、后轮左(Wheel_Rear_Left)、后轮右(Wheel_Rear_Right)

并且创建父子类,车身(父类)、车轮(子类),如图

​​​ ​​

  1. 设置车身、车轮的X轴指向车头方向
  2. 将车轮的坐标轴原点设置到几何中心,车身的坐标轴原点设置在几何中心的正下方,与车轮边缘在同一平行线。
  3. 将整车的参考坐标:世界,坐标设置为:0 0 0

​在3Dmax中的具体操作参考如下网址:

https://blog.csdn.net/qq_44905590/article/details/103033719

 

导入Carla。

具体操作参考如下网址

https://blog.csdn.net/qq_44905590/article/details/103034017

 

 

 

小尺寸车辆模型导入

文章开头在解释问题出现的原因时说到,单位比例设置为1单位=0.01米,黑色车轮碰撞体和车轮静态网格重合。小尺寸的车在单位比例为1单位=0.01米下,车辆尺寸小它的栅格数就会很少,导致FBX导入UE4自动生成的图元质量太轻。车辆会出现车尾后翘,车辆运行会出现奇怪现象。

所以为了增加小车质量,减小单位比例,将单位比例设置为1单位=0.002米,同尺寸下增加栅格数。导入UE4后在车辆蓝图中给车轮黑色碰撞体设置偏移量。

 

车辆模型要求

(在建模软件中设置):

  1. 将建模软建中系统的单位比例应该设置为1单位=0.002米。

并记录1单位=0.01米时,各个车轮的xyz坐标。

  1. 缩放车辆尺寸必须等比例缩放,且缩放后只对车身重置,车轮不要重置,这样才能保证车轮碰撞体起作用。
  2. 车辆分为5个部分:车身(Vehicle_Base)、前轮左(Wheel_F_L)、前轮右(Wheel_F_R)、后轮左(Wheel_R_L)、后轮右(Wheel_R_R)

并且创建父子类,车身(父类)、车轮(子类)

  1. 设置车身、车轮的X轴指向车头方向
  2. 将车轮的坐标轴原点设置到几何中心,车身的坐标轴原点设置在几何中心的正下方,与车轮边缘在同一平行线。
  3. 将整车的参考坐标:世界,坐标设置为:0 0 0

​在3Dmax中的具体操作可参考如下网址:

https://blog.csdn.net/qq_44905590/article/details/103033719

 

导入Carla

创建车辆蓝图之前的操作和正常尺寸的车辆一致。只是使用的车轮蓝图不同,小尺寸车的蓝图(BP_Base2wheeledNew)

具体操作参考如下网址

https://blog.csdn.net/qq_44905590/article/details/103034017

 

小尺寸车辆创建蓝图

Blueprint类

静态网格添加,动画添加,和正常车辆蓝图操作相同。

 

重点

根据下面公式,在车辆蓝图,设置车轮黑色碰撞体的偏移量。

公式如下

Additional Offset :

      X: -x 乘 倍数 + x

      Y: y  乘 倍数 – y

      Z:-z  乘 倍数 +z

 

式中X、Y、Z 是车辆蓝图中Additional Offset

x y z是3Dmax中1单位=0.01米时,车轮的坐标

倍数是 3Dmax中设置的1单位长度,与1单位=0.01米时比值

例如3Dmax中设置1单位=0.002米,则倍数=0.01除以0.002=5

 

结果如图。

这样既保证了小车有足够的重量,黑色车轮碰撞体也与车轮静态网格重合。车辆运行完全正常,无奇怪现象。

 

使用上述方法,导入任意尺寸的车辆都可以正常工作,

### 导入外部车辆动力学模型CARLACARLA模拟平台中引入外部车辆动力学模型涉及多个方面的工作。通常情况下,CARLA自带了一定数量预定义的车辆及其物理属性设置;然而为了满足特定研究需求或更精确地仿真某些类型的汽车行为,则可能需要自定义这些参数甚至完全替换默认的动力学机制。 对于希望集成第三方库(如通过Python接口操作NVIDIA GPU状态监控工具`gputil`[^1])或其他形式的硬件加速功能来说,这并不是直接关联的任务路径。不过,在考虑增强CARLA中的车辆表现真实性时,可以采取如下方法来实现这一点: #### 方法一:修改现有Actor蓝图 可以通过调整现有的actor蓝图文件(.xodr,.json),加入新的物理特性描述符,从而改变已存在车型的行为模式。此过程需深入了解UE4引擎以及CARLA内部架构,并确保所做更改不会破坏系统的稳定性。 #### 方法二:创建全新的Vehicle Blueprint 利用Unreal Engine 4(UE4)的强大编辑能力构建一个完整的新型号车体蓝图,其中包含了来自其他来源的动力学数据集。之后再将其导出并与CARLA环境同步加载运行。这种方式提供了最大的灵活性但也伴随着较高的开发成本和技术门槛。 #### 方法三:API扩展与插件开发 如果上述两种方案都不能很好地解决问题的话,还可以尝试基于CARLA提供的开放API进行二次开发工作。编写专门用于处理特殊车辆运动规律的服务端脚本或者客户端应用程序逻辑,进而达到预期效果。此外也可以探索官方文档里提到过的传感器融合技术,或许能从中找到灵感启发。 ```python import carla client = carla.Client('localhost', 2000) world = client.get_world() # 假设已经有一个名为'my_vehicle'的新车辆蓝图被成功注册到了服务器上 blueprint_library = world.get_blueprint_library() vehicle_bp = blueprint_library.find('my_vehicle') spawn_point = carla.Transform(carla.Location(x=30, y=0, z=1), carla.Rotation(yaw=-90)) ego_vehicle = world.spawn_actor(vehicle_bp, spawn_point) try: while True: # 这里可以根据实际情况更新ego_vehicle的状态或者其他交互操作 pass finally: ego_vehicle.destroy() ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值