" 4 Концентрация на одной парадигме: Визуальное формошлепство. " - после прочтения статьи как раз сложилось ощущение, что все наоборот. Если бы они и дальше все силы вкладывали в мега-популярный Delphi, который их по сути и кормил, а не пытались конкурировать со всеми подряд. Визуальный IDE - это ж золотое дно, и если у тебя он лучший в мире. Переписывай компилятор под другие языки (не меняя базы), - опыт уже был, сделали же C++ Builder. Далее добавили бы C#, Java - и опять на коне. Можно быть в тренде, просто поддерживая новые технологии в старом продукте.
" это двухканальный фотодатчик, предназначенный для высокоточного измерения углового положения, скорости и направления вращения " - ну это вы слишком оптимистичны, 16 импульсов на оборот даже с большой натяжкой нельзя назвать "высокой точностью". Для демо-стенда в школу пойдет, но куда-то серьезнее вряд ли. Для меня высокая точность начинается с 20bit на круг. Да даже 3$ магнитные энкодеры дают 14bit, и зачем спрашивается изобретать велосипед?
Мне кажется, что такой режим производители и рады бы сделать. Стоп, да он был - простой сон без пробуждений со стороны системы (когда-то их можно было легко запретить). Но потом появились бредовые идеи от Microsoft о connected standby, которые они "спустили" производителям как обязаловку, и видимо производители имели трудности с реализацией, или с поддержкой со стороны ОС, в общем выпустили свои сырые аппаратные решения, которые теперь обновлениями не лечатся, режим настройкой не отключаются. Да, гибернация все еще работает, и для переноски в рюкзаке лучше ее выбирать. Только она каждый раз съедает 10-12 Gb ресурса записи SSD, и ее просто забываешь выбрать когда большую часть используешь сон.
LG Gram - классный ноут, но с уходом в сон там жуткие баги, по которым вообще никаких решений не предлагается. Самый неприятный - может из сна проснуться в какой-то режим со 100% нагрузкой на проц (экран так и не включается), высаживает батарею за 20 минут и если лежит где-то в рюкзаке, то прогревается как печка. А простой сброс после сна - это не страшно - просто вырабатывается привычка сохранять все документы. PS: весь треш был год назад. Тогда изучал этот момент, и пришел к выводу, что это связано с модным нововведением Windows "Connected standby", и настройкой Bios способа отключения не было. Сейчас такие случаи почти прекратились, может пофиксили. Но раздражает, что ноут полностью никогда не засыпает и может проснуться, когда ему вздумается, и отключить нельзя.
Ну вот так болезнь и начинается. Усилок уже поменяли, дальше ЦАП, дальше акустическое оформление помещения (для звука это даже важнее чем колонки), потом и до "теплых" проводов дойдете. Кстати, "пластаиковые" мини-колонки сейчас уже далеко не те что раньше. У меня есть дорогой усилок с дорогими колонками, но музыку я слушаю на JBL Flip 5 20 см размером - и это чертовски удобно и классно.
А почему кватернион в векторе состояния? Где вы такое увидели? Вроде как уже общепринятая практика держать там не кватернион (4 измерения), а ошибку поворота (3 измерения), которая уходит в кватернион и сбрасывается в 0 после каждого шага фильтра. Плюсов много, например кватернион сильно нелинеен и избыточен, меньше вектор состояния - меньше операций. Еще сталкивался с неприятной особенностью - зависимость шума от ориентации: при наклоне сенсора на 90 градусов ковариация и шум в ориентации вырастали на порядок. У меня был UKF и возможно, это его особенность, не знаю. Но обратите внимание. Еще не очень понятно как фильтр проработает 2 часа без коррекции. Ковариация будет бесконечно расти для всего вектора состояния, включая ориентацию, так как она завязана на акселерометр и вы не знаете истинных ускорений и не используете какого-то допущения об их природе. Разве что планируется брать эти данные от бортовой системы?
И вообще, какими реальными данными данными вы планируете обновлять фильтр на шаге обновления? или его вообще не будет, а только предсказание?
Согласен, однозначно не все так просто. Есть много людей, которые могут есть все подряд в т.ч. кучу сладкого, и никакого жира не откладывается. Сам такой всю жизнь. Спорта у меня много, но дело не только в нем (или вообще не в нем - были периоды длительного отдыха для восстановления после травм, и никакого прибавления веса в такие моменты не наблюдал). Но если вы любитель сладкого и не готвы мучать себя ограничениями, то спорт - это пожалуй самый верный способ оставаться в балансе и гармонии.
Почему-то вспоминаются голливудские сцены со злодеями "О да-а, теперь я повелитель вселенной". Но по моему доступ к силовым приводам рановато давать, если то, что "FOC делает рекуперацию при торможении" - это озарение. И оказывается, что сложнее реализовать систему без нее, если не хочется спалить источник питания или обмотки при резкой остановке.
На телевизоре LG лет 10 назад был такой пульт на гироскопах. Очень неплохо работал, если интерфейс рассчитан на курсор. Интересно, как с этим у современных Android TV? Текущий вариант пульта от Xiaomi очень минималистичен и в плане управления мультимедиа не хватает возможностей (клавиш). Но и от интерфейсов сейчас лишнюю кнопку или опцию не дождешься, минимализм в тренде, так что там и мышь не очень то нужна, все расчитывают на 5-позиционный джойстик.
Очень интересная статья, большое спасибо. Есть один вопрос: у вас на графиках неопределенность для углов Эйлера, но в векторе состояния и матрице ковариации -кватернион. Каким образом вы из него получили неопределенность для углов (в частности heading)? ChatGPT предлагает какой-то уж очень сложный способ через якобиан (а его - через частное дифференциирование формул перехода). Или вы такой же используете?
Да, мне тоже показалось, что расчет положения это на самом деле самое простое. В статье много накидано деталей про разные сенсоры и их потенциальные погрешности, но главная мысль - сенсоров сейчас очень много и даже на уровне потребительского сегмента GPS 2.5 метра и IMU с 1.9 градуса/час определение позиции с нужной точностью не проблема. А есть еще лидары, оптика, связь с башней, - ракета же не абсолютно в вакууме летит а позиционируется относительно башни, и все можно обсчитать там и просто передать на борт точные ориентацию и вектор смещения. Но вот динамически считать траекторию захода и подруливать такой огромной инерциальной системой, - это насколько сложные системы автоматического управления нужны. Ракета заходит на приличной скорости (иначе ползти как черепаха - топлива не хватит) и гасит ее, уже находясь в захватах, - вот это впечатляет!
Как то вы совсем примитивно изложили про фильтры. Обычно для разработчика задача сложнее. Что, если в программе не нужен заранее рассчитанный фильтр, а нужен настраиваемый через параметры? WinFilter и прочие калькуляторы вам тут не помогут. В своем проекте я делал через биквадратные FIR-фильтры где в базе 2nd order s-domain function (p0 + p1*s + p2*s^2)/(q0 + q1*s + q2*s^2) и разные типы фильтров заполняют коэффициенты p, q. Так можно сделать HPF, LPF, Notch, Lag compensator, band-pass и прочие. Далее переводим в decrete-time domain (одинаково для всех типов) для выбранной частоты сэмплирования и получаем рекуррентные соотношения. Для бОльших порядков можно каскадировать, чтобы не усложнять математику и ограничиться float (на простых микропроцессорах это оптимально)
Всегда найдется формат и человек, которого он не устраивает. Представляете, вы продавите под себя эти скобочки, а потом окажется, что остальные 9 программистов не переваривают их в таком виде. Уж проще привыкнуть к тому, что правила форматирования в разных проектах разные. Ну а вообще инструмент преобразования "туда-обратно" на лету был бы тут удобен. Интересно, есть ли такое в популярных IDE? Не встречал.
Тут есть несколько якорей в слове которые не поменялись совсем, или очень похожи на буквы. Мы так бегло читаем, потому что угадываем слово по этим якорям и контексту. Когда-то в детстве слышал байки про скорочтение, когда одну страницу читают за один проход взгляда по диагонали. Вот это прям чудеса.
Раньше, до того как я пробовал играть в VR, тоже считал что эти самодвижущиеся полы обязательны для нормального погружения. Теперь же они выглядят абсолютно не нужными, все гораздо проще. От проблемы когнитивного диссонанса они не избавят - нашему мозгу недостаточно перебирать ногами, когда глаза видят перемещение, нам нужно ускорение, а там оно все равно остается нулевым. К движению джойстиком на самом деле привыкаешь очень быстро. Неприятные ощущения даже при быстром беге, полетах, падении, прыжках - вначале они конечно есть и достаточно сильные, но проходят со временем. После месяца игры я (с сравнительно слабым вестибулярным аппаратом) уже никакого дискомфорта не испытывал. Тут наверное важна качественная оптика, в Meta Quest 3 в этом плане все хорошо - дисплеи с низкой задержкой, быстрым откликом пикселей (нет трейсов при резких поворотах) и почти не бывает лагов даже на сложной графике. Большое количество игроков в таких "low comfort" играх подтверждает, что проблемы с адаптацией не критичны.
Думаю потому что "озон штрафует"? И еще напрямую у производителя геморой еще тот покупать. Для покупки какой-то ерунды на заводе я один раз потратил 2 часа, пока бегал с бумажками между бухгалтерией, кассой, складом на не маленьком заводе.
Вот тут я не в курсе насколько он использует и разбирается в LUA. Знаю, что основная система обучения - это просмотр туториалов на ютьбе и попытка повторить самому. Скрипты он просто копирует и потом пытается разобраться, если что-то не работает.
panzerfaust предлагает не перегибать палку и дать детям постигать основы экономики, совмещая приятное (игра, творчество) с полезным (все таки есть шанс немного заработать, или хотя бы получить опыт, почему ничего не получилось).
" 4 Концентрация на одной парадигме: Визуальное формошлепство. " - после прочтения статьи как раз сложилось ощущение, что все наоборот. Если бы они и дальше все силы вкладывали в мега-популярный Delphi, который их по сути и кормил, а не пытались конкурировать со всеми подряд. Визуальный IDE - это ж золотое дно, и если у тебя он лучший в мире. Переписывай компилятор под другие языки (не меняя базы), - опыт уже был, сделали же C++ Builder. Далее добавили бы C#, Java - и опять на коне. Можно быть в тренде, просто поддерживая новые технологии в старом продукте.
" это двухканальный фотодатчик, предназначенный для высокоточного измерения углового положения, скорости и направления вращения " - ну это вы слишком оптимистичны, 16 импульсов на оборот даже с большой натяжкой нельзя назвать "высокой точностью". Для демо-стенда в школу пойдет, но куда-то серьезнее вряд ли. Для меня высокая точность начинается с 20bit на круг. Да даже 3$ магнитные энкодеры дают 14bit, и зачем спрашивается изобретать велосипед?
Мне кажется, что такой режим производители и рады бы сделать. Стоп, да он был - простой сон без пробуждений со стороны системы (когда-то их можно было легко запретить). Но потом появились бредовые идеи от Microsoft о connected standby, которые они "спустили" производителям как обязаловку, и видимо производители имели трудности с реализацией, или с поддержкой со стороны ОС, в общем выпустили свои сырые аппаратные решения, которые теперь обновлениями не лечатся, режим настройкой не отключаются.
Да, гибернация все еще работает, и для переноски в рюкзаке лучше ее выбирать. Только она каждый раз съедает 10-12 Gb ресурса записи SSD, и ее просто забываешь выбрать когда большую часть используешь сон.
LG Gram - классный ноут, но с уходом в сон там жуткие баги, по которым вообще никаких решений не предлагается. Самый неприятный - может из сна проснуться в какой-то режим со 100% нагрузкой на проц (экран так и не включается), высаживает батарею за 20 минут и если лежит где-то в рюкзаке, то прогревается как печка. А простой сброс после сна - это не страшно - просто вырабатывается привычка сохранять все документы.
PS: весь треш был год назад. Тогда изучал этот момент, и пришел к выводу, что это связано с модным нововведением Windows "Connected standby", и настройкой Bios способа отключения не было. Сейчас такие случаи почти прекратились, может пофиксили. Но раздражает, что ноут полностью никогда не засыпает и может проснуться, когда ему вздумается, и отключить нельзя.
Именно эту двойку использую уже очень давно. Notepad++ - шикарный.
Ну вот так болезнь и начинается. Усилок уже поменяли, дальше ЦАП, дальше акустическое оформление помещения (для звука это даже важнее чем колонки), потом и до "теплых" проводов дойдете. Кстати, "пластаиковые" мини-колонки сейчас уже далеко не те что раньше. У меня есть дорогой усилок с дорогими колонками, но музыку я слушаю на JBL Flip 5 20 см размером - и это чертовски удобно и классно.
А почему кватернион в векторе состояния? Где вы такое увидели? Вроде как уже общепринятая практика держать там не кватернион (4 измерения), а ошибку поворота (3 измерения), которая уходит в кватернион и сбрасывается в 0 после каждого шага фильтра. Плюсов много, например кватернион сильно нелинеен и избыточен, меньше вектор состояния - меньше операций. Еще сталкивался с неприятной особенностью - зависимость шума от ориентации: при наклоне сенсора на 90 градусов ковариация и шум в ориентации вырастали на порядок. У меня был UKF и возможно, это его особенность, не знаю. Но обратите внимание.
Еще не очень понятно как фильтр проработает 2 часа без коррекции. Ковариация будет бесконечно расти для всего вектора состояния, включая ориентацию, так как она завязана на акселерометр и вы не знаете истинных ускорений и не используете какого-то допущения об их природе. Разве что планируется брать эти данные от бортовой системы?
И вообще, какими реальными данными данными вы планируете обновлять фильтр на шаге обновления? или его вообще не будет, а только предсказание?
Согласен, однозначно не все так просто. Есть много людей, которые могут есть все подряд в т.ч. кучу сладкого, и никакого жира не откладывается. Сам такой всю жизнь. Спорта у меня много, но дело не только в нем (или вообще не в нем - были периоды длительного отдыха для восстановления после травм, и никакого прибавления веса в такие моменты не наблюдал). Но если вы любитель сладкого и не готвы мучать себя ограничениями, то спорт - это пожалуй самый верный способ оставаться в балансе и гармонии.
Почему-то вспоминаются голливудские сцены со злодеями "О да-а, теперь я повелитель вселенной". Но по моему доступ к силовым приводам рановато давать, если то, что "FOC делает рекуперацию при торможении" - это озарение. И оказывается, что сложнее реализовать систему без нее, если не хочется спалить источник питания или обмотки при резкой остановке.
На телевизоре LG лет 10 назад был такой пульт на гироскопах. Очень неплохо работал, если интерфейс рассчитан на курсор. Интересно, как с этим у современных Android TV? Текущий вариант пульта от Xiaomi очень минималистичен и в плане управления мультимедиа не хватает возможностей (клавиш). Но и от интерфейсов сейчас лишнюю кнопку или опцию не дождешься, минимализм в тренде, так что там и мышь не очень то нужна, все расчитывают на 5-позиционный джойстик.
Сам себе отвечу: в примере так и сделано, но в коде есть ошибка - компоненты Якобиана одинаковы для двух углов, должны быть разные.
Очень интересная статья, большое спасибо. Есть один вопрос: у вас на графиках неопределенность для углов Эйлера, но в векторе состояния и матрице ковариации -кватернион. Каким образом вы из него получили неопределенность для углов (в частности heading)? ChatGPT предлагает какой-то уж очень сложный способ через якобиан (а его - через частное дифференциирование формул перехода). Или вы такой же используете?
Да, мне тоже показалось, что расчет положения это на самом деле самое простое. В статье много накидано деталей про разные сенсоры и их потенциальные погрешности, но главная мысль - сенсоров сейчас очень много и даже на уровне потребительского сегмента GPS 2.5 метра и IMU с 1.9 градуса/час определение позиции с нужной точностью не проблема. А есть еще лидары, оптика, связь с башней, - ракета же не абсолютно в вакууме летит а позиционируется относительно башни, и все можно обсчитать там и просто передать на борт точные ориентацию и вектор смещения. Но вот динамически считать траекторию захода и подруливать такой огромной инерциальной системой, - это насколько сложные системы автоматического управления нужны. Ракета заходит на приличной скорости (иначе ползти как черепаха - топлива не хватит) и гасит ее, уже находясь в захватах, - вот это впечатляет!
Как то вы совсем примитивно изложили про фильтры. Обычно для разработчика задача сложнее. Что, если в программе не нужен заранее рассчитанный фильтр, а нужен настраиваемый через параметры? WinFilter и прочие калькуляторы вам тут не помогут. В своем проекте я делал через биквадратные FIR-фильтры где в базе 2nd order s-domain function (p0 + p1*s + p2*s^2)/(q0 + q1*s + q2*s^2) и разные типы фильтров заполняют коэффициенты p, q. Так можно сделать HPF, LPF, Notch, Lag compensator, band-pass и прочие.
Далее переводим в decrete-time domain (одинаково для всех типов) для выбранной частоты сэмплирования и получаем рекуррентные соотношения. Для бОльших порядков можно каскадировать, чтобы не усложнять математику и ограничиться float (на простых микропроцессорах это оптимально)
Всегда найдется формат и человек, которого он не устраивает. Представляете, вы продавите под себя эти скобочки, а потом окажется, что остальные 9 программистов не переваривают их в таком виде. Уж проще привыкнуть к тому, что правила форматирования в разных проектах разные.
Ну а вообще инструмент преобразования "туда-обратно" на лету был бы тут удобен. Интересно, есть ли такое в популярных IDE? Не встречал.
Тут есть несколько якорей в слове которые не поменялись совсем, или очень похожи на буквы. Мы так бегло читаем, потому что угадываем слово по этим якорям и контексту. Когда-то в детстве слышал байки про скорочтение, когда одну страницу читают за один проход взгляда по диагонали. Вот это прям чудеса.
Раньше, до того как я пробовал играть в VR, тоже считал что эти самодвижущиеся полы обязательны для нормального погружения. Теперь же они выглядят абсолютно не нужными, все гораздо проще. От проблемы когнитивного диссонанса они не избавят - нашему мозгу недостаточно перебирать ногами, когда глаза видят перемещение, нам нужно ускорение, а там оно все равно остается нулевым. К движению джойстиком на самом деле привыкаешь очень быстро. Неприятные ощущения даже при быстром беге, полетах, падении, прыжках - вначале они конечно есть и достаточно сильные, но проходят со временем. После месяца игры я (с сравнительно слабым вестибулярным аппаратом) уже никакого дискомфорта не испытывал. Тут наверное важна качественная оптика, в Meta Quest 3 в этом плане все хорошо - дисплеи с низкой задержкой, быстрым откликом пикселей (нет трейсов при резких поворотах) и почти не бывает лагов даже на сложной графике. Большое количество игроков в таких "low comfort" играх подтверждает, что проблемы с адаптацией не критичны.
Думаю потому что "озон штрафует"? И еще напрямую у производителя геморой еще тот покупать. Для покупки какой-то ерунды на заводе я один раз потратил 2 часа, пока бегал с бумажками между бухгалтерией, кассой, складом на не маленьком заводе.
Вот тут я не в курсе насколько он использует и разбирается в LUA. Знаю, что основная система обучения - это просмотр туториалов на ютьбе и попытка повторить самому. Скрипты он просто копирует и потом пытается разобраться, если что-то не работает.
panzerfaust предлагает не перегибать палку и дать детям постигать основы экономики, совмещая приятное (игра, творчество) с полезным (все таки есть шанс немного заработать, или хотя бы получить опыт, почему ничего не получилось).