套模板的网站,wordpress商务版,wordpress调用特定分类文章,科技感网页模板官方文档
全局坐标系
CARLA 基于 Unreal Engine 4.26 构建#xff0c;采用与之相同的左手坐标系。更多关于 Unreal Engine 坐标系的细节#xff0c;请参阅 Unreal Engine 官方文档。
对于站在原点、面朝 X 轴正方向 的观察者#xff0c;坐标轴关系如下#xff1a;
Z 轴…官方文档全局坐标系CARLA 基于 Unreal Engine 4.26 构建采用与之相同的左手坐标系。更多关于 Unreal Engine 坐标系的细节请参阅 Unreal Engine 官方文档。对于站在原点、面朝X 轴正方向的观察者坐标轴关系如下Z 轴向上UpX 轴向前ForwardY 轴向右Right在整个 CARLA API 中距离单位为米meters角度单位为度degrees。因此当 CARLA 与其他使用右手坐标系、弧度制角度、厘米或英制单位的应用程序交互时必须进行相应的单位转换。参与者Actor坐标系车辆、行人等参与者Actors拥有各自的局部坐标系用于维护传感器位置等局部一致的坐标关系。按照惯例CARLA 中的车辆坐标系定义如下车头指向X 轴正方向车辆右侧指向Y 轴正方向车顶指向Z 轴正方向坐标原点通常位于车辆包围盒在 X、Y 方向的中心附近Z 方向则非常接近包围盒的最低面。CARLA 行人的坐标系类似设定面朝X 轴正方向右臂指向Y 轴正方向头部朝向Z 轴正方向坐标原点通常位于静止姿态下包围盒的中心。通过 CARLA API 处理坐标CARLA API 提供了多个工具类用于处理坐标及坐标变换。Location位置Location对象用于定义坐标并在变换、生成或移动对象时使用。以下代码展示了如何创建一个表示X10m, Y10m, Z1m的位置对象# 使用位置参数的默认构造函数locationcarla.Location(10,10,1)# 使用关键字参数locationcarla.Location(x10,y10,z1)# 无参数构造默认原点locationcarla.Location()# xyz0可省略任意或全部关键字参数未指定的轴将被设为 0。Rotation旋转Rotation对象用于定义 CARLA 坐标系中的旋转。旋转以欧拉角Euler angles形式表示包含roll滚转、pitch俯仰、yaw偏航单位为度degrees。旋转按yaw → pitch → roll的顺序内旋intrinsic rotation应用。以下代码创建一个roll10°, pitch10°, yaw90°的旋转对象# 使用位置参数顺序pitch, yaw, rollrotationcarla.Rotation(10,90,10)# 使用关键字参数rotationcarla.Rotation(pitch10,yaw90,roll10)# 无参数构造默认无旋转rotationcarla.Rotation()# pitchyawroll0可省略任意或全部关键字参数未指定的角度将被设为 0。Transform变换Transform对象用于完整描述一个物体的位姿pose包含其 3D 位置和旋转。可通过Location和Rotation创建Transform# 定义位置和旋转locationcarla.Location(10,10,1)rotationcarla.Rotation(yaw90)# 创建变换transformcarla.Transform(location,rotation)该变换可用于生成参与者如车辆vehicleworld.spawn_actor(vehicle_bp,transform)可通过get_transform()查询参与者的变换并访问其位置和旋转属性print(vehicle.get_transform())print(vehicle.get_transform().location)print(vehicle.get_transform().rotation)# 输出示例# Transform(Location(x10, y10, z1.0), Rotation(pitch0.0, yaw90, roll0.0))# Location(x10, y10, z1.0)# Rotation(pitch0.0, yaw90, roll0.0)Transform对象提供实用方法用于对其他坐标应用变换transform()将局部坐标转换为全局坐标例如计算安装在车辆上的传感器在全局坐标系中的位置sensor_local_coordcarla.Location(1,0,0)# 传感器在车体坐标系中的位置vehicle_transformvehicle.get_transform()sensor_global_coordvehicle_transform.transform(sensor_local_coord)# 输出Vector3D(x10.0, y11.0, z1.0)inverse_transform()将全局坐标转换为局部坐标例如将世界中某物体的位置转换到车辆的局部坐标系常用于自动驾驶感知系统locationcarla.Location(1,0,0)# 全局坐标vehicle_transformvehicle.get_transform()transformed_locationvehicle_transform.inverse_transform(location)地理坐标Geocoordinates地理坐标是大地坐标geodetic coordinates以纬度latitude、经度longitude、海拔altitude表示地球表面位置。CARLA 地图的 OpenDRIVE 定义文件.xodr可在元数据中包含地理参考georeference。OpenDRIVE 标准中地理参考的详细信息请参阅相关文档。在 OpenDRIVE 文件中地理参考信息位于header标签内?xml version1.0 encodingUTF-8?OpenDRIVEheader...geoReference![CDATA[projtmerc lat_00 lon_00 k1 x_00 y_00 ellpsWGS84]]/geoReference.../header.../OpenDRIVECARLA 的Map对象利用此地理参考信息通过地图投影实现CARLA 世界坐标 ↔ 地理坐标的相互转换。geoReference中的参数定义了所用投影类型及 CARLA 地图中心XYZ0 点对应的地理坐标。将 CARLA 坐标转换为地理坐标carla_mapworld.get_map()locationcarla.Location(0,0,0)print(carla_map.transform_to_geolocation(location))# 输出示例# GeoLocation(latitude0.000099, longitude0.000090, altitude1.000000)将地理坐标转换为 CARLA 坐标geolocationcarla.GeoLocation(latitude0.000099,longitude0.000090,altitude1.000000)carla_mapworld.get_map()print(carla_map.geolocation_to_transform(geolocation))# 输出示例# Location(x10.014747, y11.016221, z1.000000)