You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中基于Odometry时间戳同步Range Sensor数据的实现方案问询

异质传感器数据同步:里程计与测距传感器的插值对齐实现

核心思路

借助Pandas的索引重排与插值能力,将低频率测距传感器数据的时间轴对齐到高频率里程计的时间轴上,通过插值补全缺失的测距值,完成两路传感器数据的同步匹配。

步骤实现

1. 预处理时间戳格式

先清理时间戳中的逗号,转换为可计算的浮点型数值:

# 处理里程计时间戳
odometry_data['timestamp'] = odometry_data['timestamp'].str.replace(',', '').astype(float)
# 处理测距传感器时间戳
ranges_data['timestamp'] = ranges_data['timestamp'].str.replace(',', '').astype(float)

2. 设置时间戳为索引

将两个DataFrame的索引设为时间戳,为后续对齐和插值操作做准备:

odometry_data = odometry_data.set_index('timestamp')
ranges_data = ranges_data.set_index('timestamp')

3. 插值对齐测距数据

通过reindex将测距数据的索引替换为里程计的索引,再用interpolate完成缺失值的线性插值,同时处理首尾边界的缺失情况:

# 对齐到里程计时间轴并插值
interpolated_ranges = ranges_data.reindex(odometry_data.index).interpolate(
    method='linear',  # 线性插值适配连续变化的传感器数据
    limit_direction='both'  # 双向插值,覆盖首尾超出测距数据时间范围的情况
)

4. 合并得到同步数据

将插值后的测距数据与原始里程计数据合并:

# 合并两路数据
synced_data = odometry_data.join(interpolated_ranges)
# 可选:重置索引,将timestamp恢复为普通列
synced_data = synced_data.reset_index()

参数说明

  • method='linear':线性插值是传感器数据同步的常用方案,假设数据在采样点间呈线性变化,计算高效且符合多数场景需求;若需更平滑的结果,可替换为'spline'(样条插值)或'nearest'(最近邻插值)。
  • limit_direction='both':默认仅对中间缺失值插值,设置为both后会对首尾超出测距数据时间范围的里程计时间戳进行外插;若不想外插,可改为'nearest'直接取最近的已知测距值。

内容的提问来源于stack exchange,提问作者TantrixRobotBoy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 12:25:19