Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

Categories:

Учебник/курс "Робототехника 2020"

Меня попросили высказать соображения по поводу учебника/курса робототехники. Я про эту робототехнику довольно активно пишу последний пяток лет. Вот несколько примеров: "конференция по робототехнике в Сколково", 2013, https://ailev.livejournal.com/1062192.html, "учебный предмет "робототехника": как его сделать", это 2014 -- https://ailev.livejournal.com/1121023.html, "теннисная робототехника для инженерного бакалавриата и выше", 2015 -- https://ailev.livejournal.com/1159346.html, "робототехнические промыслы есть, ждём-с робототехнической промышленности", 2015 -- https://ailev.livejournal.com/1229527.html, "об "курс робототехники" и чему в нём учат "проекты"", 2015 -- https://ailev.livejournal.com/1211426.html, "об образовательную робототехнику, образовательную педагогику и системную робототехнику", 2016 -- https://ailev.livejournal.com/1278294.html, "эволюционная робототехника", 2016 -- https://ailev.livejournal.com/1288796.html, "обучение робототехнике: для какого системного уровня?", 2017 -- https://ailev.livejournal.com/1351873.html, "об определение робототехники и робототехников", 2017 -- https://ailev.livejournal.com/1333486.html, "NVIDIA как поставщик инфраструктуры для роботакси-стека", 2017 -- https://ailev.livejournal.com/1384766.html, "образовательные ступеньки к деланию роботов", 2018 -- https://ailev.livejournal.com/1432847.html, "роботы исчезают, а робототехники появляются", 2018 -- https://ailev.livejournal.com/1427635.html, "робототехника в 2018", https://ailev.livejournal.com/1448129.html, "учебная робототехника против покера на раздевание", 2019 -- https://ailev.livejournal.com/1479130.html. И это далеко не всё, я отсюда исключил по факту посты про робототехнику в рамках общего отслеживания происходящего в AI и довольно много про "учебную робототехнику" для самых маленьких (пытался учить своего сына в 2011-2012 годах программировать лего-робота).

Всего этого, наверное, вполне хватит для написания какой-то развёрнутой работы, но это довольно много труда, и мне не кажется, что это именно я сейчас должен делать. Так что я ограничусь просто несколькими заметками 2020 года, чтобы учесть тут и последние свои мысли -- после написания "Образования для образованных 2020" (https://system-school.ru/uptodate) и "Системного мышления 2020" (https://system-school.ru/sm2019).

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

2. Поскольку речь идёт о специализации системной инженерии, а сама системная инженерия -- это кругозорная дисциплина, и более того, системная инженерия по факту сегодня занимается роботами (скажем, ракеты и спутники SpaceX, или беспилотное электромобилестроение -- это же всё системная инженерия, и это же робототехника), то трудно сказать, чем они отличаются. Но отличия такие есть: системная инженерия в целом задаёт общий системноинженерный процесс (методологию разработки: что нужно разрабатывать требования, нужно разрабатывать архитектуру, проводить испытания, управлять конфигурацией и т.д.). Но вот дальше эти задачи нужно решать на разных системных уровнях, и вот тут для робототехники нужно дать кругозор. Учебник -- это одна кругозорная книжка, в ней трансдисциплина робототехники, вводящая описание тех методов, которыми решаются типовые проблемы при создании роботов. Прикладные дисциплины потом учатся отдельно. То есть учебник робототехники как учебник для робо-стека можно считать устроенным примерно так же, как я делал "Образование для образованных 2020" для интеллект-стека (там на системное мышление пара десятков страниц, на онтологику и коммуникацию пара десятков страниц, на вычислительное мышление пара десятков страниц -- чисто обзорная книжка, но зато в ней показано системное окружение этого всего, сформулированы функциональные требования и описано, как это всё взаимодействует. А потом какой-нибудь учебник системного мышления -- из пары десятков страниц это будет 600 страниц отдельного курса. И вычислительное мышление так же). Ну, или так же, как учебники системной инженерии (по паре десятков страниц про инженерию требований, архитектуру и т.д.. А потом какой-нибудь учебник по requirements discovery -- и там свои 500 страниц). То есть этот учебник затем должен быть поддержан примерно десятикратным объёмом прикладных курсов из помянутых в нём кругозорно дисциплин.

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

3.1. Алгоритмика механики, я бы даже нагло назвал назвал её robotic science (по аналогии с computer science) -- это underactuated robotics, алгоритмы для ходьбы, бега, плавания и манипулирования. Вот курс MIT на эту тему, 2020 год -- http://underactuated.mit.edu/. Это всё на тему решения парадокса Моравека, https://en.wikipedia.org/wiki/Moravec's_paradox.

3.2. Эволюционная парадигма в робототехнике: выход на императив развития, open endedness -- это продолжение работы подзаглохшего было http://www.evolutionaryrobotics.org/ в направлении последних иницитив в evolutionary RL типа https://eng.uber.com/enhanced-poet-machine-learning/. И помним, что эволюционные решения идут не только в плане синтеза алгоритмов движения, но и корпусов, механики и всего остального (типичное сегодня видение в рамках учебного процесса для робототехников -- это https://www.mn.uio.no/ifi/studier/masteroppgaver/robin/evolutionary-robotics.html).

3.3. Программно-аппаратные решения реального времени: ускорители вычислений, контроллеры (в том числе с не-фон-неймановскими архитектурами), многопоточность-многозадачность и распределённые вычисления, агентские архитектуры и прочая смесь computer science, software engineering и связанной с ними computer architecture. Вот когда вам нужно делать алгоритм из underactuated robotics, то вам требуется как-то соединить ROS, несколько контроллеров, ускорители на базе какого-нибудь Jetson AGX Xavier -- https://developer.nvidia.com/embedded/jetson-agx-xavier, сами алгоритмы на чём-то типа Julia. Вот этот прикладной курс позволит как-то охватить мозгом эту сложную software engineering задачу, причём с опорой на вычислительное мышление. А в учебнике робототехники нужно дать обзор этих проблем и подходов к их решению. И там же -- жизненный цикл софтовой части разработки, все эти agile (хотя это можно вынести и в отдельную дисциплину, но IMHO это существеннейшая часть software engineering, и выносить можно в прикладной курс, но держать место в обзорном курсе -- это обязательно). Квантовый компьютинг можно пока не давать, он стационарный ещё некоторое время будет, не робототехнический. А если речь идёт о вынесенных в облако вычислениях, то это IoT, а не робототехника. В робототехнике основные вычисления как раз on board.

3.4. Инженерия механической подсистемы. Жизненный цикл (практики механической инженерии): как создать механику -- точную, прочную и дешёвую. Грубо говоря, речь идёт о жизненном цикле мелкосерийного точного механического производства. У студента в голове должны появиться примерные оценки сроков и стоимости создания робототехнического шасси, достижимые характеристики, организациция работ в части механической инженерии. Скажем, сколько стоит собачка Boston Dynamics в её механической части, и за сколько времени-денег это можно разработать и потом сделать? А сколько стоит вариант её же на Raspberry Pi и за сколько можно это разработать из "просто пластмассы" (и какие там будут характеристики?) -- https://www.raspberrypi.org/blog/mini-raspberry-pi-boston-dynamics-inspired-robot/. Такое впечатление, что в механической инженерии прошла таки инструментальная революция, и цены точного механического производства таки обрушились (см. дискуссию с p2004r к https://ailev.livejournal.com/1524874.html).

3.5. Обучение роботов прикладной задаче. Не алгоритмика механики как в первом пункте, а о том, как ставить задачу робота на обучение -- как быстро и дёшево научить робота прикладной мелкой серии движений, это сегодня реальная проблема, нужно иметь кругозор в методах решения этой проблемы и понимать, где сегодня фронтир. Тут нужно дать обзор самих идей, например восстановление целей из наблюдения за поведением людей, или упрощённые методы выучивания целей из оценок людей, типа https://openai.com/blog/deep-reinforcement-learning-from-human-preferences/ с пониманием specification gaming типа https://deepmind.com/blog/article/Specification-gaming-the-flip-side-of-AI-ingenuity и обзором всего по этой линии. Тут же понимание естественного языка для общения с роботом, тут же проблемы объяснения действий (включая аргументацию, causal inference и всю эту сложную проблематику AI).

3.6. Безопасность (широко понимаемая, safety), защищённость (security) и этика (вся проблематика этики в AI плюс добавки, связанные с автономным движением) в приложении к роботам. Полноценный блок, тут есть что обсуждать (начиная с проблем использования роботов в военных целях и автономное убийство, и заканчивая проблематикой лицензирования медицинских роботов, через проблематику безопасности транспортных роботакси).

При этом всякие идеи насчёт антропоморфности и uncanny valley (включая промышленный дизайн в части эстетики) -- этого сюда не нужно, это совсем уж прикладные курсы, хотя и очень модные.

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

В принципе, ШСМ делает свою инфраструктуру образования так, что ежели появится прикладной уровень образования над уровнем интеллект-стека, то он мог бы быть поддержан Школой (сама Школа не будет разрабатывать прикладные курсы, но для внешних курсов -- почему бы и не выдать платформу, включая сервис подготовки студентов в части трансдисциплин интеллект-стека? Это же сильно поможет потом прохождению специализированных кругозоров и затем прикладных курсов). Робототехника тут хороший кандидат на "попробовать".

UPDATE: обсуждение в фейсбуке -- https://www.facebook.com/ailevenchuk/posts/10219196397074810
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 1 comment