`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Андрей Зубинский

Летающие вычислители, или об отличиях IT 2.0 от того, что было (2)

+55
голосов

У IT 1.0 есть одна отличительная черта, о которой знают разве что узкие специалисты, занятые или не-IT спецификой действительно больших инсталляций, или проектированием «абсолютно не вычислительных» узлов компьютеров. Попробую по возможности чётко эту черту показать, чтобы провести внятную границу, отделяющую новый мир IT 2.0.

Предположим, в рамках IT 1.0 мы нуждаемся в программной реализации какого-то полезного алгоритма, не важно в какой области, например, в логистике, – нам надо решить классическую задачу коммивояжера, грубо говоря, мы ищем способ с оптимальными затратами объехать N заданных пунктов. Учитываем ли мы при решении этой задачи (то есть, при программировании и сопутствующих инженерных нюансах) какие-то физические факторы реального мира реальных вычислителей, ресурсами которых будет решаться задача? Нет. Этих факторов не существует. Вибрации, вызванные, например, проезжающими по соседней (с помещением, где установлен компьютер) улице грузовиками, вибрации от вентиляторов системы охлаждения, нестабильности и специфика подсистем питания компьютера, магнитное поле, электростатика, условия и специфика распространения радиоволн, геометрия корпуса компьютера, материалы, etc, всё, что является абсолютной нормой классической инженерии, в мире IT 1.0 не существует. Это мир настоящих идеальных «сферических вычислителей в вакууме», высшую точку в котором поставила облачная виртуализация, дающая в распоряжение динамически изменяемый в зависимости от потребностей в ресурсах абстрактный вычислитель. То есть, мир IT 1.0 максимально абстрактен и «мягок» (soft[ware] abstraction), в нём есть система команд вычислителя (которую по сути никому, кроме очень узких специалистов, и знать не надо), есть «мягкие» (soft) инструментальные средства и, наконец, есть «мягкий» продукт – исполняемая программа, результат работы которой так же абстрактен и «мягок». Это исключительно абстрактный и очень мягкий (в первую очередь по отношению к занятым в IT 1.0 работникам) мир. Вполне возможно именно поэтому работники IT 1.0 тщательно и с завидным упорством придумывают себе невероятно чудовищные трудности, благо, абстрактность и мягкость (она же и податливость) неимоверно способствуют расцвету всевозможных ментальных девиаций (шучу, конечно, но что-то в этом есть кроме шутки). Больше того, мягкий абстрактный мир IT 1.0 вообще плохо изучен и даже теоретизирован, например, в нём никто не видел формальных методов синтеза «ключевого продукта» – алгоритмов (потому что это искусство), в нём нет чётких базовых критериев для оценки «потребительских продуктов» (например, попытки формализовать хотя бы понятие usability только всё усложняют), здесь никто не знает формальных механизмов сравнения инструментов (что даёт питательный корм страдающим нехваткой эмоций программистам, такого «бокса по переписке», как в нескончаемых спорах о языках программирования, не бывает ни на каких других «абстрактных рингах»), оценки затрат в этом мире заставят обзавидоваться самых продвинутых шаманов и служителей самых экзотических культов. В общем, в силу полной абстрактности мир IT 1.0 даёт невероятную свободу (иерархии абстракций в нём строятся как угодно), а в силу крайне плохой теоретизированности – ещё и сытное пастбище для любознательных и смекалистых (что куда более важно в этом мире, чем высокая теоретическая подготовка, потому и заковыристые вопросы хороших HRов часто крайне далеки от «конкретно компьютерной тематики», чтобы ни значило выражение в кавычках). 

Как бы подводя итог – граница мира IT 1.0 чётко очерчивает контур «абстрактной мягкости». Всего один шаг за пределы – и начинается совсем другой мир. Прямые преобразователи энергии и данных в перемещение полётом, те же мультикоптеры, – замечательная иллюстрация различий в двух мирах.

Итак, в предыдущей записи было немного о самых основах мультикоптеров. Из них очевидно, что реальный аппарат, относящийся к этому классу, без непрерывной обработки потоков собственных данных летать не способен. Давайте посмотрим на абстрактную модель того, что формирует и обрабатывает эти самые потоки данных в мультикоптере:

Летающие вычислители, или об отличиях IT 2.0 от того, что было (2)

 
Сенсоры ориентации – главный элемент, обычно это комплект из трёх «гироскопов», трёх акселерометров и трёх же магнетометров. Пока ничего не скажу о каждом элементе комплекта, просто поясню их назначения – «гироскопы» (позволяю себе неточность, и называю «гироскопом» целый функционально законченный узел, это не совсем технически точно, но иначе получится энциклопедия, а не запись в блоге) каким-то способом преобразуют изменения углов ориентации в пригодные для дальнейшей обработки сигналы (и их три, чтобы получать информацию для трёх осей евклидового пространства), акселерометры дают информацию о разности проекций векторов ускорений на оси евклидового пространства и проекций вектора гравитационного ускорения, трёхосевой магнитометр – источник информации о проекциях векторов магнитного поля на оси евклидовой системы координат. Эти три источника данных об ориентации мультикоптера (или чего угодно, пытающегося летать) в пространстве критически необходимы.

Данные навигации – ещё один источник. Если ориентационные данные связаны с условной системой координат пытающегося летать аппарата, то здесь речь идёт о планетарного масштаба системе координат и собственно координатах.

Локационные подсистемы далеко не всегда присутствуют в реальных конструкциях, но неизбежно будут появляться, кроме информации о своём положении, необходимы и данные о положении прочих объектов.

Дальше всё почти как обычно – управляющие системы, иногда одна общая, иногда – несколько, актуаторы (исполнительные электромеханические механизмы).

И, наконец, малозаметная ключевая система – механическая. Это вся несущая конструкции, с деталями исполнения и прочим, не будет здесь говорить много слов.

Вот теперь совсем пора об IT 2.0. Целевое назначение всего этого комплекта – летать. В нём всё неидеально, нет ни одной идеальной подсистемы, и летать оно всё должно в неидеальной среде и условиях. Поэтому ни о какой «абстрактной мягкости», как в IT 1.0, и речи быть не может.

Двигатели, крутящие винты, неидеальны. А всё, что неидеально и крутится, формирует биения. Конструктив всего этого устройства, несмотря на видимую элементарность, является механической системой. Которая характеризуется упругостью и ещё тьмой показателей. То есть, фундаментально биения (колебания) от вращающихся двигателей «распространяются» по всему конструктиву. И влияют на датчики, потому что они чувствительные (каким бы ни было их исполнение, они должны быть чувствительными). То есть, вместо красивых данных, которые чуть ли не норма в IT 1.0, управляющая подсистема может получить чудовищно зашумлённый сигнал, и от шумов здесь чистой цифровой обработкой сигналов не спастись, принципиальная работоспособность всего в целом зависит и от качества проектирования примитивного на первый взгляд «корпуса» (начиная от формы сечения и материала несущих балок, у каждой формы сечения – свои частотные характеристики, и заканчивая успешностью решения задачи демпфирования платформы с датчиками). Всё ещё несколько хуже – в реальных летающих конструкциях алгоритмика обработки данных, характеристики механико-электрико-аэродинамических подсистем и механизмы калибровки (т.е. уже особенности эксплуатации) всего в целом полностью взаимосвязаны и не существует, например, ни одного «самого хорошего алгоритма», ни одной «самой хорошей конструкции», ни единого «принципа эксплуатации».

Неидеальность двигателей и воздушных винтов – это ещё и ненулевая их масса. А «масса» – это «инерционность», которая, в свою очередь, означает, что для адекватных компенсаций быстрых случайных изменений положения мультикоптера в пространстве нужны не совсем простые алгоритмы управления частотой вращения двигателей. Или даже совсем непростые (помнится, кто-то в комментариях к предыдущим записям говорил о простоте задачи построения преобразователя напряжения питания, разочарую – только широтно-импульсная модуляция, PWM, фундаментальный для импульсных систем принцип, дико непростая область, средне-хорошая книга для профессионалов в ней – под 600 страниц, «без воды»). То есть, решение задачи преобразования команды «установить частоту оборотов N» в частоту оборотов N – далеко не такое простое, как кажется. И без этих алгоритмов самого низкоуровневого управления ничего летать не будет.

Теперь немного о самих сенсорах ориентации. Те, которые доступны для «флотов дронов» (а об этом уже вовсю идёт речь, и во многом благодаря доступности таких сенсоров), не просто не неидеальны. Они, по-хорошему, чудовищно отвратительны. Но дёшевы. Очень заманчиво дёшевы и принципиально работоспособны. Ко всем недостаткам (например, к фундаментальной нестабильности), их работа ещё и очень сильно зависит от температуры. В общем, даже исключительно дорогие сенсоры такого назначения, на которых не экономят, например, в крылатых ракетах, всё равно вносят ощутимую погрешность измерений, потому и крылатые ракеты оснащаются сложной подсистемой коррекции своей траектории, например, по радиолокационной карте земли. Для дронов, как машин мирного времени, задача коррекции проще – в мирное время в голову никому не приходит, что надсистемы вроде GPS могут не работать. Вот только возможности гражданских систем глобального позиционирования далеко не всегда соответствуют потребностям (например, прецизионной агрокультуры, есть такая область, где, точность обработки поля обеспечивает одновременно и снижение затрат на химикаты, и повышение качества и количества урожая), и даже в самых простых дронах частота обновления информации от GPS порядка раза в секунду является категорически недостаточной (4 Hz – уже немного лучше, но совсем хорошо – десятки герц).

А теперь будем собирать всё это крайне общее в какое-то целое. Сенсоры ориентации обычно выдают данные с частотой порядка 50-100 Hz, навигационные данные поступают с частотой единиц-десятков герц, соответственно, актуаторы (исполнительные механизмы) должны обладать адекватными возможностями и, конечно, программные подсистемы обязаны успевать всё это промолачивать через себя и формировать управляющие команды. «Опозданий» и «задержек» здесь быть не может, это чистый hard realtime – вычислительная подсистема обязана гарантированно обрабатывать и отрабатывать всё что должна за строго заданное время, ни на микросекунду (нано-, пико- etc) дольше. Соответственно, и системное ПО отличается от традиционного, но здесь как раз нового не так уж и много, потому что теория и практика встраиваемых систем – самостоятельная дисциплина с богатой историей и практикой. Разве что надёжность, о которой пока деликатно говорят немного. Мало кому понравится упавший на голову из-за сбоев в системном ПО с высоты 500 м шестикилограммовый дрон. Тут кое-что делается, потому что усилиями профессионалов дроны буквально «выгоняются» из игрушек в машины. Например, всерьёз изменяется подход к проектированию системного и управляющего ПО, появляются формально верифицированные операционные системы реального времени, моделирование управляющих алгоритмов с последующей генерацией кода реализации становится нормой.
Прочие возможные подсистемы мы вообще вычеркнем из этой цепочки рассуждений, иначе утонем навсегда. Все они необходимы в зависимости от дополнительных задач, стоящих перед разработчиками мультикоптера, и все они – такая же интегральная часть целого, что простоты решению задачи не добавляет.

В общем, я всё это вот к чему – в IT 2.0 всё очень меняется (а кто сомневается в наступлении эпохи IT 2.0, посмотрите внимательно на цепочки недавних историй в сегменте робототехники, там очень показательные приобретения и слияния происходят). IT 2.0 становится сугубо мультидисциплинарной, и в ней «мягкая» (soft, программная) составляющая – всего лишь одна из обширного списка очень жёсткой конкретики реального мира. Первый и главный пункт списка, о котором пока не было явно сказано ничего, очевиден – продукция IT 2.0 материальна. Поэтому фокусы с беззатратным тиражированием, совершенно нормальные в IT 1.0, здесь не действуют, здесь традиционный мир себестоимостей. Об этом почему-то забывают, а это очень важно, в таком мире только «обновлениями ПО» мало что можно исправить, в отличие от IT 1.0 с адекватной уровню её абстрактности agile-культурой. «Быстро слепили и исправляем в ходе эксплуатации» здесь категорически не сработает вообще, ни на одном этапе жизненного цикла продукта. Мульдисциплинарность на деле означает неизбежное торжество того, что в IT 1.0 было де-факто отброшено как основной и массовый метод разработки – моделирования. «Язык» UML – одна из попыток в IT 1.0, оказался в итоге нишевым (есть огромные и замечательные программные системы, созданные на базе UML-моделей, например OrCAD), и в очень многих подотрослях IT 1.0 от UML давно и старательно бегут, как от огня. В IT 2.0 всё не так, здесь с моделирования всё начинается, а код… код вообще может генерироваться (и генерируется) после уже натурных (а не вычислительных) экспериментов. Так что знаменитым в узким кругах специалистов Matlab (Scilab), Mathematica (и Wolfram System Modeler), LabView, ANSYS/AutoFEA и прочим для IT 1.0 специализированным пакетам, в IT 2.0 уготовлена роль чуть ли не основных инструментов. Без них категорически невозможно. Это очень серьёзная миграция, и она неизбежно случится, с приходом (тоже неизбежным, как бы там ни называлось получившееся в итоге) Internet of Things. И, конечно, IT 2.0 – это де-факто поглощение теорией автоматического управления IT 1.0. Не наоборот. Раз IT 2.0 имеет дело с объектами материального мира, а не с абстракциями, иначе быть не может.

Забавно, но классики кибернетики всё это давным-давно предусмотрели, только потребовалось прилично времени для появления доступной элементной базы и низкоуровневых технологий, чтобы кибернетика начала своё возвращение с новым, пока несуществующим, названием.

В общем, в IT 2.0 будет очень интересно, куда интереснее, чем в IT 1.0, в которой уже откровенно скучно (увеличение на пол дюйма диагонали экрана и утаптывание в габариты больших наручных часов вычислителя с экранчиком уже вызывают зевоту, даже несмотря на всю мощь информационной машины продвижения товара).

Откланиваюсь

+55
голосов

Напечатать Отправить другу

Читайте также

Яростно плюсую.

Вот что мне пришло в голову. ИТ.1 - изначально задумывалось как раз для решения задач реального мира и, попав в открытое плаванье сейчас возвращается к родным берегам реального мира :)

Все же, ТРИ гироскопа как-то меня повергли...

не надо повергаться, они одноосевые, вот их и три
если совсем точно и в контексте, это даже не гироскопы (потому они там в кавычках), но традиционно в MEMS-исполнении называются "гироскопами" :(
это MEMS-датчики угловых скоростей. часто их на одном кристалле интегрируют с ох... с интеграторами :( чтобы из скоростей получить значения углов.
всё это долго расписывать.
да и механический гироскоп не обязательно в полноценном кардане должен быть. может тоже быть одноосевым.

Думается, что на самом деле все несколько проще, не так страшно и особых революций, лично я, не вижу.
Мы, что в ИТ1.0, что в ИТ2.0 имеем тот же триплет: hardware(1)<-firmware(2)<-software(3).
Все остается, по сути, неизменным. Просто, для определенных областей применения, в ИТ2.0 происходит усложнение 1 и 2 до уровня 3 в ИТ1.0 и переход 3 в область нечеткой логики и искусственного интеллекта.
Возьмем тот же пример с дронами. Имеем упомянутое hardware - электронный блок чтения датчиков, преобразования, выдачи сигналов управления. Законченный и вполне универсальный. Имеем firmware, включающую в себя RTOS, и описанные Андреем алгоритмы переработки значений датчиков в сигналы управления, как-то - стабилизация, выполнение простейших действий типа старт/стоп/вверх/вниз/влево/вправо/итп. И уже как нечто, превращающее игрушку в полезную машину, некое вполне обычное software из ИТ1.0 реализующее бизнес-функции. Например, облет территории в заданное время, по заранее заданным навигационным точкам, произведение неких действий в этих точках, типа фотосъемки и так далее. Программист этого мягкого софта совсем не в курсе как там оно внутри все устроено. Он просто использует (условно) API на основе (2) для исполнения определенных действий в нужной ему последовательности. И он может быть вообще не в курсе, что такое "программирование" ))

Ближайший аналог из понятного мира - человек.
hardware - кости, мышцы, нервная система, мозг и т.п.
firmware - рефлексы, поведенческие паттерны и т.п.
software - высшая нервная деятельность - разум и прочее
И сейчас происходит, как верно отметил в заключении Андрей, замыкание очередного витка эволюционной спирали и выход на новый уровень абстракций привычных предметов. Но пока не видно существенных изменений в распределении ролей. Как уже 50 лет были инженеры/электронщики (1), системщики (они же embedded нонче) (2) - так они и остались сейчас, их всегда было мало, они довольно закрыты, у них дофига работы и холиваров на ДОУ они не затевают ))) И как была, так и есть огромная толпа "прикладных программистов" (3) с "ментальными девиациями" (с) Андрей :-D

На мой взгляд, когда ПП нонешнего уровня (3) превратятся из аникейщиков и формошлепщиков в психологов-воспитателей ИИ, вот тогда можно будет говорить о некой революции.

Хорошие примеры совершенно прикладных изделий по тематике автопилотов дронов:
http://ardupilot.com/
https://www.sparkfun.com/products/retired/8785

открою тайну
всегда читаю комментарии с конца
не следует думать, что пишущий о летающих роботах настолько дик, чтобы не знать об ардупилоте и прочем, что находится на первой странице поиска :)
(к слову, это очень хилые автопилоты, без вдохновения, есть куда более интересные и на более подходящей задаче элементной базе, например, на dsPIC, https://code.google.com/p/gentlenav/)

понимаете, абстрактные рассуждения - они хороши, но есть и некоторое очевидное движение "центра интересов", начинающееся от академической науки, и заканчивающееся технологической подготовкой производтства, вплоть до упаковки готовых изделий.
в своё время изменения в этой цепочке назывались "технологическими революциями", сейчас всё скромнее, чистая эволюция (потому и IoT вызывает столько всяких странных нареканий, все ждут какого-то "чуда").
в этой цепочке уже видны явные изменения.
это не значит, что "весь мир в труху", это смещение "центра тяжести интересов", просмотреть его - обидно.
IT 1.0 останется, как же ж без неё, нужны же ж рабочие станции, CAD/CAE/CAM/, логистика на всех уровнях, ERP.
но тут важнее, что системы управления жизненным циклом (PLM) по логике должны становиться более востребованными.
и вот, о чудо, - подтверждение: стабильный 12,5% рост продаж локально инсталлируемых PLM-систем и 25%+ рост продаж cloud PLM (а вот рост ERP - всего 3,2% по оптимистичным прогнозам).
также стабильно и завидно растёт рынок CFD (всяких моделирующих разные динамики потоков пакетов) - тоже 12%+.
это очень интересное явление, кто его просмотрит (из молодых и амбициозных) - много прогадает лет так... через пять, скажем.

С описываемой тенденцией согласен, но это пока только тенденция, которую игнорировать, имеющему моСк, конечно же глупо и лично я доволен, что правильно спрогнозировал примерно то же самое и уже перешел в нужный сегмент. )))
По прикидкам, сейчас, так примерно, 6-й год из стандартных 8-и летних циклов, т.е. подъем производства везде, что может объяснять рост продаж в определенных сегментах софтового и около рынка. А что Вы вкладываете в категорию "ERP софта" мне не совсем понятно, и я отнюдь не претендую на всеобщность, но судя по нарастающему спросу на формшлепщиков, джаваЕЕшников и прочих питонщиков, в индустрии обычного энтерпрайз софта падения сейчас уж точно не наблюдается.

(пишу в конце, согласно полученному тайному знанию) :-)
Уж поверьте, и не думал Вас обидеть ссылками на те автопилоты. Это было для читающих Ваши статьи в качестве иллюстрации, ибо люди ленивые и сами искать не будут, а в статье маловато иллюстративного материала. :)

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT