Могу ли я использовать акселерометр для измерения скорости автомобиля на кривой?
Я делаю приложение, которое используется для измерения скорости, у него есть акселерометр, который измеряет компонентное ускорение по оси XYZ. Когда автомобиль движется прямолинейно, измерение проходит нормально, так как задействованы только линейные компоненты.
Мое сомнение возникло, когда автомобиль находится на кривой, я не уверен, может ли акселерометр правильно измерить в такой ситуации или если необходимо применить гироскоп для измерения любого недостающего компонента.
Фрагмент кода для измерения общего ускорения показан ниже, я измеряю ускорение по каждой оси и удаляю гравитацию, чтобы, наконец, вычислить скорость и скорость
float AccTotal_X = ((AcX - grav_X)*9.81);
float AccTotal_Y = ((AcY - grav_Y)*9.81);
float AccTotal_Z = ((AcZ - grav_Z)*9.81);
float Vx = vx_0 + AccTotal_X*dt;
vx_0 = Vx;
float Vy = vy_0 + AccTotal_Y*dt;
vy_0 = Vy;
float Vz = vz_0 + AccTotal_Z*dt;
vz_0 = Vz;
speed_dt = sqrt(pow(Vx,2)+pow(Vy,2)+pow(Vz,2))*3.6;
@Ghedim, 👍3
Обсуждение1 ответ
Ответ на этот вопрос я нашел в следующей статье SenSpeed: Зондирование условий вождения для оценки скорости транспортного средства в городских условиях
Согласно статье
Когда автомобиль делает поворот, он испытывает центростремительную силу, которая связана с его скоростью, угловой скоростью и радиусом поворота. Таким образом, используя акселерометр и гироскоп, мы можем получить тангенциальную скорость транспортного средства.
Поэтому просто с помощью акселерометра невозможно измерить скорость, когда объект делает поворот, необходим еще и гироскоп.
Уравнение для измерения тангенциальной скорости имеет следующий вид:
v = Rw (1),
Где v - тангенциальная скорость, R - радиус кривой, ω - угловая скорость.
Поскольку центростремительное ускорение задается a = w2R (2), переформулируя (2) и подставляя в (1), получается:
v = a/ω (3).
И a, и ω задаются акселерометром и гироскопом соответственно.
- В чем разница между акселерометром, гироскопом и датчиком магнитометра?
- Линейное ускорение от MPU 6050
- Правильный способ получить значения крена, тангажа и перемещения
- Снять гравитацию с акселерометра MPU-6050
- Arduino Nano IOT LSM6DS3 получить угол гироскопа в градусах
- Помощь с MPU-6050
- Как прочитать необработанные данные с модуля GY-85?
- Использование MPU-6050 без I2C
Какое оборудование вы используете? Большинство акселерометров также включают датчики поворота. Но есть большой диапазон в качестве этих вещей, от очень неточных за 5 долларов до очень точных за 60000 долларов., @PMF
Обратите внимание, что гравитация действует только в одном направлении. Вам не нужно умножать силу тяжести по всем осям., @PMF
@PMF, я использую MPU5060, у него есть как акселерометр, так и гироскоп, однако я просто использую акселерометр для измерения линейного ускорения, чтобы получить скорость., @Ghedim
@PMF о том, что сила тяжести умножается на все оси, потому что в зависимости от наклона датчика на плоскости сила тяжести будет присутствовать на одной или нескольких осях, @Ghedim
@GustavoDaSilvaGhedim Вы получаете точные результаты? Акселерометры обычно имеют смещение и шум, которые обычно делают их непригодными для вычисления скорости путем интегрирования их показаний., @Sacha
@Sacha для прямолинейных движений результаты имеют хорошую точность, однако проблема возникает, когда транспортное средство поворачивает влево или вправо, в такой ситуации разница между показаниями и истинной скоростью значительна, @Ghedim
Это, конечно, правильно. Но вы должны знать, в каком направлении идти вниз. Как правило, это достигается, когда устройство находится в состоянии покоя., @PMF
Вам, вероятно, лучше заняться физикой (или, может быть, математикой), так как вы входите в области интеграции углового ускорения и других сложных тем, которые далеко выходят за рамки этой стопки., @Majenko
Я думаю, что последняя строка страницы Википедии об угловом ускорении прекрасно подводит итог: **"В заключение, общая связь между крутящим моментом и угловым ускорением обязательно сложнее, чем для силы и линейного ускорения"**, @Majenko
Да, тебе нужен гироскоп. Вы не можете определить радиус кривой только с помощью акселерометра, но это очень важно., @Sim Son
@SimSon, спасибо за ответ, но знаете ли вы, как я мог бы представить это в уравнении или какой источник я мог бы найти, большинство источников, которые я читал, просто представляют линейный случай, там не было объяснений о линейном и круговом в одном и том же случае, @Ghedim
Пока автомобиль не скользит или не дрейфует, угол поворота автомобиля (гироскопа) равен ангелу, который он обходит вокруг центра кривой. То же самое относится к угловой скорости и ускорению. Уравнение центростремительно по отношению к импульсу: m*a=m*v^2/r или a=w^2*r, @Sim Son