多传感器离线&在线标定方案总结

自动驾驶为什么要传感器标定

传感器标定是自动驾驶感知&规划任务的基础。第一,各个传感器各自感知的结果需要统一到车体系融合表达,比如Mono3D感知的前方车辆和激光感知的前方车辆,都需要转换到车体系,才可以融合并输出给下游。第二,某些感知任务依赖传感器外参标定,比如视觉IPM变换,需要知道相机外参。第三,前融合任务,例如相机和激光前融合,也需要知道相机&激光的外参。所以传感器标定是一切感知任务的基础。

9bbd835597ead43a587953ef260d2204.png

为什么传感器标定很重要

传感器标定的精度决定了感知性能。比如方向角偏了0.5度,100m测距横向就会偏差100*tan(0.5度) = 0.87m,接近1m,可能贴着车道行使的车辆会被误判为侵入车道,引起避让甚至急刹动作。再比如激光和相机方向角偏差0.2度,侧方45度的激光点p(100, 100, 0) 在内参为M【2000, 0, 960, 0, 2000, 540, 0, 0, 1】的相机下,投影像素误差可以计算:deltaP = M*R*p - M*p,约有5个像素的误差,那么很多前融合的事情就做不了。

应用场景决定了传感器标定形式。首先肯定是车辆生产交付的场景,在厂房的标定,即精确又快速。但是做过自动驾驶的都知道,在前期研发阶段,并没有很理想的平台支持,很多事情都是一边干一边改,一年前采集的数据,车子早都拆了,现在要重新标定,手里只有一堆数据,那么只能利用数据标定,即所谓的无标靶标定。再比如交付用户的车辆,维修后传感器重新安装了,再送回高精度标定间肯定不现实,很多时候会是在4S店搭建简易标定环境进行标定,也有一些是直接在线标定,即车辆按照特定要求在开放道路行使,进行标定。

自动驾驶传感器标定任务有哪些

在初期阶段,一般需要维护测试车辆的标定,支持一些特定的标定需求,比如没有车辆的古老数据的标定,在标定间不完善的情况下快速标定一些传感器。在中期阶段,一般开始设计标定规范流程,让标定流程自动化,开发完善标定功能。后期阶段主要是测试和功能维护,中期和后期是互相演进的,没有绝对的界限。

a5c4b044e2c62caaedeadb5b58427fc7.png

主要的任务有:下线标定,车辆在产线上的最后一道工序,支持布置一些高精度标靶;在线标定,有一些地方也叫no-target标定,车辆售出后在用户手里,或者古老数据等,没有标靶,只能利用环境信息的标定,个人认为这个部分是最难的。售后标定(离线标定),售后维修的场景,支持布置一些简易的标靶和操作流程,当然在开发阶段也是同样的,很多时候环境局限,搭建高精度标定间很费钱,但是可以布置简易标靶,类似于售后标定,我统称为离线标定。

这个自动驾驶传感器标定能够学到什么

那么如果想系统的了解自动驾驶标定,或者是现在遇到了某个瓶颈,想了解一些方案,都可以参考这个课程。本课程首先介绍常用传感器的特点,其次针对常见的标定需求,介绍对应的标定方案,重点会介绍在线标定的方法。课程也会有大量的代码实践以及作业,在实践中才会体会更加深刻。

39d42cc4bf89330bf9e79aaa40abd256.pngd48aecbd4c12c5d29d6bfa934d078f72.png

0219faa2f5184d5d851aa201227219c5.jpeg

9ef0864aec010151cd526930254cbfed.png

d642fe72eea4da825dd260df6fe456ae.jpeg 8fc47072337af725374b76e0e53729b6.jpeg afc28bdeb2512bb5d3e2428b8635d762.jpeg db375b2cd505bc081cc12d6adb04b98c.jpeg

2e3e1e64d6bc1d34dcfdbc41fe49d122.png

888bf1ac541af4dc231440638d654219.png

c6dffa6521c9a7c23c279c714335e0a6.jpeg 1230d11a996f6855319fa76bc108ab60.png 95446a53940ce6c41e6f96d1b0ffb84d.jpeg

开课时间

2023年8月11日晚八点(周五),每周更新一章节。

课程答疑

本课程答疑主要在本课程对应的鹅圈子中答疑,学员学习过程中,有任何问题,可以随时在鹅圈子中提问。

3efdd22fb0b08e899c8e4beb23afc5f3.png
▲长按购买课程 (前50名购买,可享受早鸟价,优惠60元)
3909a2a7cfc95b4d60986f726e0692f5.jpeg
▲长按添加小助理微信:cv3d007,咨询更多
### 使用 STM32 标准库对标定压力传感器 对于使用 STM32 的标准库来标定压力传感器,通常涉及几个重要环节:初始化硬件接口、读取原始数据以及通过算法处理这些数据以完成标定过程。虽然提供的参考资料主要集中在心率血氧传感器和温湿度传感器的应用实例[^1][^2],但可以借鉴其中的一些通用方法应用于压力传感器。 #### 初始化硬件接口 为了能够与压力传感器通信并获取测量值,首先需要设置好相应的外设接口。假设使用的也是 I2C 或 SPI 接口,则可以在 `main.c` 文件中的 `MX_GPIO_Init()` 函数之后调用特定的初始化函数: ```c /* USER CODE BEGIN Includes */ #include "sensor.h" /* USER CODE END Includes */ int main(void) { /* ...其他初始化代码... */ MX_I2C1_Init(); // 如果采用I2C协议 HAL_Delay(10); // 短暂延时等待稳定 Sensor_Init(&hi2c1, SENSOR_ADDRESS); } ``` 这里假定了存在一个名为 `Sensor_Init` 的自定义函数用于初始化指定地址的压力传感器,并传入了之前已配置好的 I2C 句柄作为参数。 #### 获取未标定的数据 接下来是从传感器读取未经任何转换或补偿的真实物理量数值。这一步骤可能涉及到发送命令给传感器请求最新一次采样结果,随后接收返回的信息包解析成可用的形式保存起来供后续计算之用。 ```c uint8_t raw_data[RAW_DATA_LENGTH]; if (HAL_OK != Sensor_ReadData(&hi2c1, SENSOR_COMMAND_GET_RAW_PRESSURE, raw_data)) { Error_Handler(); } // 解析raw_data到实际意义的压力单位Pa或者其他适用单位 float pressure_value = ConvertRawToPressure(raw_data); ``` 上述片段展示了如何向传感器发出指令获得一组代表当前气压状况的字节数组,再经由辅助函数将其转变为浮点型变量表示的标准大气压强值(帕斯卡 Pa)或其他合适的度量衡体系内的表达形式。 #### 实施线性回归分析进行标定 当拥有了多组不同条件下测得的实际压力及其对应的传感器输出后,就可以利用最小二乘法拟合一条直线方程 y=ax+b 来描述两者间的关系。这里的 a 和 b 即为所需求解的目标系数;而 x 则对应于来自传感器的一系列输入信号强度,y 表达的是预期得到的理想化真值。 ```matlab % MATLAB伪代码示例 X = [input_signal_values]; % 输入信号数组 Y = [true_pressure_readings]; % 已知真实压力读数数组 p = polyfit(X,Y,1); % 计算一阶多项式的最佳拟合参数 p=[a,b] function calibrated_output = Calibrate(pressure_raw,p) calibrated_output = p(1)*pressure_raw+p(2); end ``` 此部分逻辑建议在 PC 上借助像MATLAB这样的工具先做离线仿真验证后再移植至嵌入式环境中执行在线调整操作。当然也可以直接编写 C/C++ 版本的相关运算程序集成进项目里去。 #### 应用校正后的模型预测新样本 最后,在完成了前期准备工作以后便能轻松地应用所建立起来的经验公式对任意时刻到来的新一轮观测做出快速响应——即把即时收到的那个未经修饰过的电信号代入先前训练所得的最佳匹配关系之中从而得出修正过的结果反馈回去显示出来或是进一步参与其它控制决策流程当中去了。 ```c void ProcessNewMeasurement(uint8_t* new_measurement){ float adjusted_result; uint8_t processed_new_measurement[PROCESSED_MEASUREMENT_SIZE]; if(HAL_OK == Sensor_ProcessData(new_measurement,processed_new_measurement)){ adjusted_result = Calibrate(ConvertRawToPressure(processed_new_measurement), calibration_parameters); Display_Pressure_Value(adjusted_result); } } ``` 以上就是基于 STM32 标准库实现压力传感器标定的一个基本框架介绍。需要注意的是具体实施细节会依据选用的具体型号有所差异,因此务必参照官方文档仔细核对自己手头上的器件特性说明文件来进行适当修改完善整个方案的设计思路和技术路线图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值