最近在調行車記錄儀的碰撞檢測,當前使用的方法是根據使用量程給出閥值,當某一瞬間的某一軸的加速度突變的絕對值大於閥值,則認為發生碰撞事件;
if (g_gsensorInfoSave.x != AXIS_INIT_VALUE) { x_diff = abs(gsensorValue.x - g_gsensorInfoSave.x); if (x_diff > x_range) { printf("gsensor event: Emerg.\n"); } } g_gsensorInfoSave.x = gsensorValue.x;
然后想看看網上有沒有其它方法,就有了以下的內容。
參考:車載碰撞和側翻算法實現
方法類似,上面的方法是計算出某一軸與自然坐標的夾角,當某一夾角大小發生突變達到指定閥值時,則認為發生碰撞或側翻;
x軸與自然坐標的夾角
double toDegrees_x(int x_val, int y_val, int z_val) { double rad2; double degree2; rad2 = atan((double)x_val / sqrt(y_val * y_val + z_val * z_val)); degree2 = rad2 * 180 / PI; return degree2; }
事件;