GNSS 接收机
多星座 GNSS 接收机(AIASDGGnssSensor)支持同时仿真 GPS、Galileo、GLONASS、BeiDou 四大卫星导航系统,根据接收机天线在关卡中的位置合成伪距与伪距率观测量,通过加权最小二乘(WLS)解算经纬高、ENU 速度、DOP 精度因子与上报精度,并输出完整的逐历元、逐卫星观测记录。
1. 放置与地理锚点配置
- 设置场景地理原点(二选一):
- 推荐:在关卡中放置引擎自带的
AGeoReferencingSystemActor,设置场景原点的经纬高(Origin Latitude / Longitude / Altitude)。 - 配置指定:在
sensors.gnss中提供site_anchor字段(见下方 JSON 示例)。
- 推荐:在关卡中放置引擎自带的
- 放置接收机:将
AIASDGGnssSensor拖入关卡或挂载到载具 Pawn 上(Actor 的位置即为天线相位中心),确认SensorName(默认"gnss")。
2. JSON 配置示例
"sensors": {
"gnss": {
"site_anchor": {
"latitude_deg": 31.2304,
"longitude_deg": 121.4737,
"altitude_m": 15.0
},
"instances": [
{
"name": "gnss",
"enabled": true,
"preset": "single_frequency",
"fix_rate_hz": 10.0,
"mask_angle_deg": 10.0,
"constellations": ["GPS", "Galileo", "GLONASS", "BeiDou"],
"value": "both",
"horizon": {
"enabled": true,
"field_half_extent_m": 500.0,
"field_resolution_px": 1024
},
"nlos": {
"enabled": true
},
"acquisition": {
"enabled": true,
"start_mode": "hot"
}
}
]
}
}
3. 预设档位与环境模型参数
接收机精度预设(preset)
preset 值 | 定位精度量级 | 说明 |
|---|---|---|
ideal | 零误差基线 | 关闭所有观测噪声与大气残差,输出纯几何精确解 |
single_frequency | 米级(~1.5–3 m) | 车载/消费级单频接收机(含电离层/对流层残差与伪距噪声) |
dual_frequency | 亚米级(~0.5–1 m) | 双频消电离层组合接收机 |
rtk | 厘米级(~0.02 m) | RTK 载波相位差分固定解 |
环境遮挡、多径与通道捕获子模块
三个环境子模块可按场景需要独立开启:
| 子模块 | 关键字段 | 作用与适用场景 |
|---|---|---|
horizon(天际线建筑遮挡) | enabled: bool(默认 false)field_half_extent_m: 高度场半宽(默认 500 m)field_resolution_px: 分辨率(默认 1024) | 采集启动时通过正交深度烘焙场景 2.5D 高度场,自动计算每个方位角的遮挡仰角;低于天际线的卫星标记为 BLOCKED 并剔除出解算。室内、隧道、城市峡谷场景务必开启。 |
nlos(非视距多径反射) | enabled: bool(默认 false,需同时开启 horizon) | 对被建筑遮挡但对侧立面可反射的卫星计算镜像反射超程与信噪比($C/N_0$)损耗,并注入解算以复现城市峡谷多径拉偏效应。 |
acquisition(捕获与冷/暖/热启动) | enabled: bool(默认 false)start_mode: "hot" | "warm" | "cold" | 模拟接收机通道搜索、锁定与星历下载状态机(首次定位时间 TTFF:hot 约 1–5 s,warm 约 25–35 s,cold 约 30–60 s;支持出隧道后的失锁重捕)。 |
使用提示:
- 若采集时长较短(如
< 30 s),启用acquisition时请将start_mode设为"hot";"warm"和"cold"需要等待 18–30 s 星历下载完成后才会输出首个有效定位。- 城区开启
nlos时,请将value设为"both",使用data_groundtruth.jsonl中的真值位置评估实际定位误差。
4. 输出文件与标定工具
| 文件路径 | 格式与内容 |
|---|---|
{gnss}/data.jsonl | 每行一个历元的完整 JSON 记录(含定位解、DOP、逐颗卫星的仰角/方位角/伪距/信噪比/遮挡与通道状态) |
{gnss}/data.csv | 扁平化表格(时间戳、经纬高、ENU 速度、gdop/pdop/hdop/vdop、上报精度 accuracy_h/v/s、可见与入解卫星数) |
{gnss}/data_groundtruth.jsonl | "value": "both" 时输出的精确真值经纬高与 ENU 速度 |
{gnss}/gnss_params.yaml | 接收机参数配置、地理锚点信息与全程定位统计摘要 |
接收机参数标定脚本
采集完成后可运行内置标定脚本,检查上报精度(uere_*)与实测误差的一致性并生成推荐配置片段:
IADataSDG/.venv/Scripts/python.exe IADataSDG/Scripts/calibrate_gnss.py <capture_dir>