Да, у нас есть свой cli, правда он сделан через usb cdc. Очень удобная штука и мы её активно развиваем. Вполне вероятно, как-нибудь напишем об этом отдельно.
Думаю, достаточно будет показать ему парочку заклинаний) Только нужно быть аккуратнее, вдруг ему понравится и он бросит схемотехнику и уйдёт в DevOps)
А вообще, развести плату - это ведь лишь пол дела. Важно же ещё как она будет поддерживаться и эксплуатироваться. И, конечно, это зависит от спектра обязанностей конкретного начальника, но минимальное погружение в детали всё-таки должно присутствовать. И если для тех сотрудников, кто занимается написанием прошивки, наличие CICD экономит уйму времени, то почему бы его не внедрить?)
Ну вот у нас на линуксе и на маке получается примерно в пределах 10 секунд на полную сборку одной прошивки. Бегло почитал про IAR, боюсь при такой стоимости лицензии, проще действительно пересесть всем отделом на линукс или мак) Впрочем, может я не знаю каких-то деталей. Я так понимаю, у вас был какой-то опыт с IAR? Можете поделиться вкратце?
Куда глаза глядят всё-таки не получится. Органы управления самоката так устроены, что сам он не решает куда ему ехать - решает пользователь. Самокат может лишь сопротивляться (снижать скорость), ну или вообще не ехать (если случилась поломка). Хотя я как-то встречал похожее решение у коллег, но сомневаюсь, что оно пойдёт дальше концепта, по крайней мере в рамках кикшеринга.
Мы с Маджвиком тоже повозились, но его можно оптимально настроить (по-моему подбирая коэффициент усиления, точно не вспомню) и в случае с нашими датчиками и условиями эксплуатации, этот фильтр вполне сносно работает. Сдаётся мне, для устройства, которое постоянно испытывает ускорения, Маджвик может не подойти и придется искать еще какое-то решение. Хотя, если честно, я когда это видео у него на ютубе увидел, убедился, что этот фильтр не просто ориентацию в пространстве может определять, главное реализовать его правильно.
Да, без знания магнитного склонения, даже зная где магнитный север, географический точно определить не получится. Но если есть инофрмация о местоположении, хотя бы с точность до города, то используя модель можно определить и склонение, и наклонение. Есть, например, вот такой инструмент, ну а в нашем случае есть бэкенд, на который можно вынести подобные вычисления.
Я уже представляю себе кольца Гельмгольца, метра два в диаметре, и через них как штурмовики, конвеером едут самокаты - калибруются))
Знать бы, как это сделать. :)
Если углубиться в публикацию (4) из списка литературы в статье, то там как раз упоминается та самая матрица W, которая как я понял отвечает и за soft-iron и за неортогональность и за отличающиеся масштабирующие коэффициенты по разным осям.
А на какую точность компаса вы рассчитываете?
На самом деле не могу сказать что в данной ситуации мы на что-то рассчитываем, скорее отталкиваемся от того, что получаем. Очень трудно предсказать какая в итоге точность будет у того или иного алгоритма, когда речь идет о десятках и сотнях тысяч устройств, причем разных моделей и версий.
Фильтр Маджвика мы действительно используем, как раз для того, чтобы совместить показания гироскопа и акселерометра. Его изобретать не стали) Там все очень хорошо расписано, как у самого Маджвика, так и в множестве других источников.
Да!) Мы в эту сторону тоже активно смотрим. Вообще, это все можно назвать Sensor Fusion, и тут может быть всякий разный Fusion для всяких разных Sensors.
Для калибровки совмещать плоскость горизонта с системой координат магнитометра не нужно, там важны только относительные изменения положения магнитометра в пространстве. А вот для того, чтобы на его основе сделать компас — это просто необходимо. У ребят из nxp есть классный application note "Implementing a Tilt-Compensated eCompass using Accelerometer and Magnetometer Sensors", правда без vpn его не посмотреть, но там все прям хорошо расписано. Собственно, вот этот самый tilt-compensation делается при помощи акселерометра, а чтобы он не врал, к нему еще добавляют гироскоп. Причем они компенсируют негативные эффекты друг друга (дрейф и шумы). Чтобы их подружить, мы использовали фильтр Маджвика, на выходе он дает нам roll и pitch. И вот именно эти два угла ориентации в пространстве и позволяют нам докрутить плоскости магнитометра до глобальной системы координат и получить третий угол, то есть курс (yaw). Причем для его определения, мы используем только те две составляющие откалиброванных и повернутых показаний магнитометра, которые оказываются в плоскости горизонта.
Действительно, вектор магнитной индукции поля Земли не лежит в плоскости горизонта, а образует с этой плоскостью некий угол — он называется магнитным наклонением. И его можно учитывать при определении курса, но для этого используются более сложные алгоритмы определения углов ориентации в пространстве. Мы же прибегли к более простому, примерно такому, как я описал в п.1.
С неортогональностью примерно также, как и с soft-iron — несущественно, поэтому игнорируем) Ну и соосность всех трех датчиков воспринимаем как данность. Хотя мне кажется, что если расширить и без того расширенный фильтр Калмана, то и матрицу неортогональности он может определять и все остальное.
К сожалению, если датчик расположен внутри самоката, а в нашем случае так и есть, то и вращать его нужно вместе с самокатом. Плюс, если крепить датчик на вращающийся подвес, то встает вопрос прочности всей этой конструкции, а прочность — это очень важный момент, особенно если речь идет именно о шеринговом самокате.
Действительно в определенных зонах проблема с GPS стоит особенно остро. Причем как мы заметили, в Москве например, помимо тех двух видов устройств о которых вы написали, встречаются еще такие, которые таким образом подменяют gnss сигналы, что устройство не просто мнгновенно перемещается в другую локацию, а начинает постепенно двигаться в одном направлении (физически, естественно, оставаясь на месте). Так что да, способов попортить геолокацию существует множество, но как и всегда, есть немало способов ее улучшить. В случае с той же Москвой, очень хорошо помогает позиционирование по базовым станциям и wifi точкам. Такой сервис есть например у Гугла. Отвечая на ваш вопрос, сообщаю: работаем, как и прежде. Но в проблемных местах прибегаем к помощи дополнительных источников о местоположении.
Еще 64 нуля и можно будет выписать штраф в гугол рублей в гугл, просто чтобы красиво было.
Да, у нас есть свой cli, правда он сделан через usb cdc. Очень удобная штука и мы её активно развиваем. Вполне вероятно, как-нибудь напишем об этом отдельно.
Думаю, достаточно будет показать ему парочку заклинаний) Только нужно быть аккуратнее, вдруг ему понравится и он бросит схемотехнику и уйдёт в DevOps)
А вообще, развести плату - это ведь лишь пол дела. Важно же ещё как она будет поддерживаться и эксплуатироваться. И, конечно, это зависит от спектра обязанностей конкретного начальника, но минимальное погружение в детали всё-таки должно присутствовать. И если для тех сотрудников, кто занимается написанием прошивки, наличие CICD экономит уйму времени, то почему бы его не внедрить?)
У нас FreeRTOS.
Ознакомлюсь с вашей статьей, спасибо.
Ну вот у нас на линуксе и на маке получается примерно в пределах 10 секунд на полную сборку одной прошивки. Бегло почитал про IAR, боюсь при такой стоимости лицензии, проще действительно пересесть всем отделом на линукс или мак)
Впрочем, может я не знаю каких-то деталей.
Я так понимаю, у вас был какой-то опыт с IAR? Можете поделиться вкратце?
Чуть больше трёх сотен...
Куда глаза глядят всё-таки не получится. Органы управления самоката так устроены, что сам он не решает куда ему ехать - решает пользователь. Самокат может лишь сопротивляться (снижать скорость), ну или вообще не ехать (если случилась поломка).
Хотя я как-то встречал похожее решение у коллег, но сомневаюсь, что оно пойдёт дальше концепта, по крайней мере в рамках кикшеринга.
Кто-нибудь уже писал про Чёрное зеркало?)
Это же прям первый эпизод второго сезона, "Скоро вернусь" называется.
Его сняли 10 лет назад...
Мы с Маджвиком тоже повозились, но его можно оптимально настроить (по-моему подбирая коэффициент усиления, точно не вспомню) и в случае с нашими датчиками и условиями эксплуатации, этот фильтр вполне сносно работает.
Сдаётся мне, для устройства, которое постоянно испытывает ускорения, Маджвик может не подойти и придется искать еще какое-то решение. Хотя, если честно, я когда это видео у него на ютубе увидел, убедился, что этот фильтр не просто ориентацию в пространстве может определять, главное реализовать его правильно.
Да, без знания магнитного склонения, даже зная где магнитный север, географический точно определить не получится. Но если есть инофрмация о местоположении, хотя бы с точность до города, то используя модель можно определить и склонение, и наклонение. Есть, например, вот такой инструмент, ну а в нашем случае есть бэкенд, на который можно вынести подобные вычисления.
Я уже представляю себе кольца Гельмгольца, метра два в диаметре, и через них как штурмовики, конвеером едут самокаты - калибруются))
Если углубиться в публикацию (4) из списка литературы в статье, то там как раз упоминается та самая матрица W, которая как я понял отвечает и за soft-iron и за неортогональность и за отличающиеся масштабирующие коэффициенты по разным осям.
На самом деле не могу сказать что в данной ситуации мы на что-то рассчитываем, скорее отталкиваемся от того, что получаем. Очень трудно предсказать какая в итоге точность будет у того или иного алгоритма, когда речь идет о десятках и сотнях тысяч устройств, причем разных моделей и версий.
Фильтр Маджвика мы действительно используем, как раз для того, чтобы совместить показания гироскопа и акселерометра. Его изобретать не стали) Там все очень хорошо расписано, как у самого Маджвика, так и в множестве других источников.
Да!)
Мы в эту сторону тоже активно смотрим. Вообще, это все можно назвать Sensor Fusion, и тут может быть всякий разный Fusion для всяких разных Sensors.
Это всё очень интересные вопросы)
Для калибровки совмещать плоскость горизонта с системой координат магнитометра не нужно, там важны только относительные изменения положения магнитометра в пространстве. А вот для того, чтобы на его основе сделать компас — это просто необходимо. У ребят из nxp есть классный application note "Implementing a Tilt-Compensated eCompass using Accelerometer and Magnetometer Sensors", правда без vpn его не посмотреть, но там все прям хорошо расписано. Собственно, вот этот самый tilt-compensation делается при помощи акселерометра, а чтобы он не врал, к нему еще добавляют гироскоп. Причем они компенсируют негативные эффекты друг друга (дрейф и шумы). Чтобы их подружить, мы использовали фильтр Маджвика, на выходе он дает нам roll и pitch. И вот именно эти два угла ориентации в пространстве и позволяют нам докрутить плоскости магнитометра до глобальной системы координат и получить третий угол, то есть курс (yaw). Причем для его определения, мы используем только те две составляющие откалиброванных и повернутых показаний магнитометра, которые оказываются в плоскости горизонта.
Действительно, вектор магнитной индукции поля Земли не лежит в плоскости горизонта, а образует с этой плоскостью некий угол — он называется магнитным наклонением. И его можно учитывать при определении курса, но для этого используются более сложные алгоритмы определения углов ориентации в пространстве. Мы же прибегли к более простому, примерно такому, как я описал в п.1.
С неортогональностью примерно также, как и с soft-iron — несущественно, поэтому игнорируем)
Ну и соосность всех трех датчиков воспринимаем как данность. Хотя мне кажется, что если расширить и без того расширенный фильтр Калмана, то и матрицу неортогональности он может определять и все остальное.
Спасибо!
Похоже мы заново изобрели
велосипедквантование)Звучит как отдельная фича)
К сожалению, если датчик расположен внутри самоката, а в нашем случае так и есть, то и вращать его нужно вместе с самокатом. Плюс, если крепить датчик на вращающийся подвес, то встает вопрос прочности всей этой конструкции, а прочность — это очень важный момент, особенно если речь идет именно о шеринговом самокате.
Действительно в определенных зонах проблема с GPS стоит особенно остро. Причем как мы заметили, в Москве например, помимо тех двух видов устройств о которых вы написали, встречаются еще такие, которые таким образом подменяют gnss сигналы, что устройство не просто мнгновенно перемещается в другую локацию, а начинает постепенно двигаться в одном направлении (физически, естественно, оставаясь на месте). Так что да, способов попортить геолокацию существует множество, но как и всегда, есть немало способов ее улучшить. В случае с той же Москвой, очень хорошо помогает позиционирование по базовым станциям и wifi точкам. Такой сервис есть например у Гугла.
Отвечая на ваш вопрос, сообщаю: работаем, как и прежде. Но в проблемных местах прибегаем к помощи дополнительных источников о местоположении.