Если вы собираете значения отфильтрованного значения акселерометра, а также значения «IMU», значения акселерометра лучше всего подходят для обнаружения встряхивания, тогда как значения IMU (roll, pitch, yaw) лучше всего подходят для обнаружения наклона.
Если вы не заботитесь о том, на какой оси он встряхивается, то нормализуйте ось ', получив квадрат суммы их квадратов: sqrt(x^2 + y^2 + z^2) > 2000
. Это даст вам величину вектора ускорения. Это хорошая ценность для «общего ускорения», и это отлично подходит для обнаружения тряски.
Если вы хотите изолировать, на какой оси она встряхивается, то для каждой оси оценивайте, превышает ли ее абсолютное значение ускорения значение порога: abs(x) > 2000
, так как положительное или отрицательное значение оси является собственной величиной вектора ,
Затем используйте данные рулона, высоты тона и рыскания данных IMU для определения наклона Sphero.
Кроме того, если вы хотите оценить, если он несколько раз встряхнулся, просто оцените, будут ли эти значения выше этого значения, а затем ниже другого значения несколько раз. – ColdSnickersBar
Спасибо! Это было намного легче, чем я пытался. Я обнаружил, что для определения нормального тряски я использовал 'sqrt (x^2 + y^2 + z^2)> 2'. Попытка получить 2000, и моя рука почти упала – Slomojamma