?

Log in

No account? Create an account
Лабораторный журнал -- Day [entries|friends|calendar]
Anatoly Levenchuk

[ website | Лабораторный журнал ]
[ userinfo | livejournal userinfo ]
[ calendar | livejournal calendar ]

Об робототехнику: первый блин [25 Dec 2011|12:23pm]
Итак, мы приступили к курсу робототехники на основе RobotC и Lego Mindstorm NXT 2.0. Вот несколько разрозненных замечаний, вдруг кому пригодится (а я понял, что у меня по этой теме есть читатели):

1. Все инструкции и хелпы RobotC устарели, скриншоты соответствуют позапрошлым версиям софта, а инструкции по сборке -- предыдущим моделям набора Lego. Еще часть инструкций пропущена. Поэтому строгий совет: сначала сами разберитесь, потом только приглашайте позаниматься дитёнка. Ибо детки не будут терпеливо ждать, пока папа или мама поймут, как прорываться через очередной затык -- а этих затыков всенепременно будет.

2. Первый же затык: это переход от сборки лего-моделей на "кирпичиках" к сборке лего-модели "на осях". Как мне объяснила жена, в конце 90-х была дискуссия, на которой инженеры плевались на молодёжь: они после лего-тренинга могли что угодно собрать "из кирпичиков", но другие типы сборки у них просто отсутствовали в голове. Так вот: предлагаемая в RobotC тележка представляет собой некоторую особую задачу для сборки -- там нужно работать с осями и балками, а не кирпичиками и плоскостями. И дитятко, легко собирающий лего-модельки из более чем тысячи кирпичиков, да и хорошо ориентирующийся в других модульных конструкторах, вдруг затормозил. Заодно: некоторые детальки с тем же назначением в новом розничном наборе не соответствуют по форме и цвету изображенным в инструкции старым -- и без помощи взрослых с этим дитенку не справиться. И, конечно же, вместо сборки тележки из деталей нового типа при первых же встреченных препятствиях начинают собираться собственные конструкции, поэтому трудно сразу заметить, что сборка тележки прекращена, а строится "космический корабль" -- разве что звуковое сопровождение его полётов выдаёт борт-инженера.

3. Первая засада -- это конструкция #pragma для подключения датчиков. На скриншотах ее нет (там старая конструкция с const), а "мастер подключений сенсоров и моторов" сразу почему-то не работает. Помогает просто рестарт программы. После рестарта этот мастер вполне работает и генерирует #pragma -- по строчке на каждый датчик. Впрочем, легко можно генерировать эти строчки и без такого wizard, если помнить все идентификаторы. В #pragma указываются сенсор это или эффектор (например, Sensor) номер порта подключения (например, S1), имя датчика в программе (например, lightSensor) и имя датчика в драйверах (например, sensorLight).

Это только половина первой засады. Главная засада: это указать правильное имя датчика в драйверах. Фразу "датчик цвета может быть использован как датчик освещенности с активной подсветкой" нужно понимать буквально, и читать строчки из инструкции к NXT 2.0 -- а там написано, что для этого нужно использовать красный канал. Это означает, что в RobotC в визарде нужно указывать датчик цвета, а не датчик света! И тогда в #pragma у вас сгенерируется как имя датчика в драйверах sensorCOLORRED, а имя в программе пусть будет всё то же -- lightSensor.

4. Нужно таки уметь делать две операции с самим кирпичом, пользуясь кнопочками:
а) включить на кирпиче Bluetooth, а затем сделать его видимым. Без этого никакое спаривание с компьютером не работает (то, что кнопочки и пункты меню называются уже не так, как пишется в хелпах RobotC, не должно смущать -- с этим легко разобраться).
б) уметь откалибровать датчик света, для этого в меню кирпича нужно дойти до этого датчика и далее смотреть отсчеты на экране.

5. После КуМира (который вылизывался именно как учебный софт) RobotC убог, хотя набит фичами по самое не балуйся. Чтобы из него сделать именно учебную софтинку, нужно его переписать заново с нуля (заодно поменяв Си на что-то более приличное). С другой стороны, КуМир доработать до полноценной работы с NXT -- это тяжёлая работа, ибо нужно и firmware соответствующее делать, и с Bluetooth разбираться, и правильного уровня исполнителей делать (тот же RobotC предлагает полную линейку таких исполнителей -- от работы по портам и отдельным отсчетам датчиков до готовых управляющих команд типового робота).

6. Никакого внятного учебного плана по работе с роботами нигде нет. Практически нет задачников, есть только решебники, и все они по-английски, и все они не для третьеклассников, освоивших управляющие конструкции процедурного языка. Так что -- оставь надежду, всяк сюда входящий. Придется выпестовывать в себе дидакта. Вот что я думаю:
-- заставить пособирать конструкторы Technix, которые совсем по-другому устроены (http://technic.lego.com). Это предложение жены: в роботах нужно еще и как-то конструкторски мыслить, а для этого сначала нужен тренинг по сборке готовых моделей. Ага, тупой тренинг, чтобы конструкторская мысль была "в пальцах".
-- померять скорость передвижения робота (в метрах в секунду) по прямой. Тут нужно учитывать, что вещественные числа и понятие скорости в школе в третьем классе еще не проходили. Это можно делать очень по-разному, в разных старт-стопных режимах. Например, двигаться 10 секунд, затем измерить расстояние линейкой. Или двигаться от линии к линии на расстояние метр, замерив время таймером робота. Или замерить скорость, когда робот идет по времени. Или замерить время, когда робот уткнется датчиком касания в стенку, отъехав от стенки на 5 секунд и затем подъехав к ней назад (два разгона и одно торможение). Или посчитать расстояние, откалибровав через число оборотов колеса, и замерив время -- все это внутри робота. Или использовать хлопки в ладоши и датчик звука для старт-стопов. И так далее.
-- подъезды-отъезды от стенки, используя датчик расстояния: разные алгоритмы (думать о PID и его вариациях -- http://www.robotc.net/blog/2011/12/05/incredible-video-explaining-pid/).
-- эксперименты по трекингу линии, используя разные алгоритмы отслеживания, скорости, кривизну линий.
-- алгоритмы брожения по плоскости с обходом препятствий
Проходится:
-- управляющие конструкции (другой синтаксис)
-- одновременная работа с двумя моторами и несколькими датчиками (например, подъезд к стенке по кривой линии, останов на заданном расстоянии от стенки)
-- работа с реальным временем
-- математика-физика в количестве (вплоть до попыток объяснить число пи через задачу нахождения длины пути через число поворотов колеса)
-- зачатки статистики, погрешности и округления
-- вывод на дисплей

Этого на первый месяц должно хватить.
24 comments|post comment

Об митинги [25 Dec 2011|03:03pm]
Я на митингах давно уже не был, но я скажу. Я митинги лет сорок назад даже вёл: у меня был особо звонкий голос, и я умел читать выразительно, поэтому несколько лет подряд оказывался ведущим городских пионерских слётов -- то бишь говорил разными стишками в микрофон перед парой тысяч таких же несмышлёнышей, как и я. Потом я вёл дискотеки, и даже пребольшие -- профком РГУ умел собрать до двух тысяч человек на студенческие фестивали. Рэйвы и опенспейсы -- это ведь те же митинги, только на них приходят поглазеть не на политиков, а на других селебритиз, и поорать и посвистеть им в ответ на их явление народу. Речевки на митингах -- это тот же суфийский зикр, боевые военные кличи и визг дискотечной толпы, услышавшей давно знакомый хит, или увидевшей духовного лидера или певца. Киркоров, Маккартни или Навальный -- те же эмоции, те же действия, та же обстановка, хотя и разные мотивы в каждом случае. Ну, и обычные приметы молодежных тусовок: костюмы и прочие перформансы.

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

Мне кажется, что у митингов, как формы выражения общественного мнения и формы конфронтации кого бы то ни было с кем бы то ни было -- печальная судьба, примерно как судьба войны большими толпами стенка на стенку. Митинги -- это как война прошлых поколений другими средствами, если переврать известную максиму. Причем поколений очень и очень давних: когда "демонстрация" была чуть ли не важнее реальной битвы. Животные выходят в зону прямой видимости, чтобы демонстрировать друг другу боевые позы (а если демонстрации для устрашения не хватает, то дальше будет драка -- продолжение политики другими средствами). Люди так тоже делали -- недаром после цирковой и артистической одежды следующим нумером идет форма военных. Потом форма настоящих (т.е. дерущихся, продуктивных) военных стала маскировочной: ориентация на результативность, а не демонстративность победила. Потом форма военных стала вообще неважна: максируются они, или нет -- неважно, ибо они вдали от реальных боевых действий жмут кнопки, и их на поле боя не видно. Воюют не они, воюют технологии -- и тоже не против толпы людей, а против существенно распределенных небольших группок. Привет ван Кревельду.

Я думаю, что при реальных "боевых политических действиях" и нынешнем развитии средств дистантной работы реальные выходы стенка на стенку толп народа и ОМОНа исчезнут, а политические войны станут существенно распределенными -- при много бОльших вложениях в такие политические противостояния времени и прочих ресурсов с обеих сторон, нежели при толпомитинговом подходе. Политика будет очень скоро такой же: невидимо издали прилетели, видимо и зримо побомбили (что бы это ни значило -- выиграли выборы, заставили кого-то принять какой-то закон, бойкотировали какое-то важное мероприятие, сделали тайное явным с целевым информированием заинтересованных лиц, да мало ли что), опять разлетелись и тут же объявились в новом месте. Конечно, тут сразу речь идет и о промышленном лоббировании тоже, не только "гражданском обществе" и инициативах против фальсификаций на выборах. Просто нужно некоторое небольшое время, чтобы люди сориентировались и перешли к новым формам политической работы -- как с видеокамерами и интернетом на собственно выборах, или фотосъемках с воздуха при подсчете явившихся на те же митинги. Это уже потихоньку начинается, а разрастаться будет быстро. Конечно, речь не идет о сетевых политических голосованиях с накрутками: они не решают сами по себе ровным счётом ничего, как ровным счётом ничего не решают и митинги -- те же "голосования" приходом в определенное место и определенное время. Речь идет о новых формах организованных партизанско-политических действий, а не "голосований" и "демонстраций" -- уж не знаю, каковы эти формы могут быть.

Конечно, эти рассуждения верны только при переходе от иррациональной "на душевном порыве, эмоциях, речевках и танцах" политики к политике рациональной. Но при нынешнем состоянии общественной дикости вовсе не факт, что уровень общественной рациональности в политике хоть как-то вырастет. Что меня всегда удивляет, так это неравномерность рациональности по предметным областям. Люди, которые не верят во вредность черных кошек, вдруг оказываются верующими в какой-нибудь закон о минимальной зарплате, а физики начинают верить в приложимость физических законов к людским делам -- несмотря на давно известные аргументы. Логика и аргументы, которых требуют к приложению в одной предметной области, оказываются не у дел в области обсуждения общественного устройства. Митинги, увы, не являются мероприятиями по подъему рациональности -- они больше поднимают эмоциональность. Митинги не укрепляют разум, они укрепляют дух. Крепкие духом же часто меднолобы, их никакие аргументы не пробивают. Поэтому мне митинги стратегически не нравятся, как форма: если только эта форма не начнет как-то меняться -- но даже за политическими дебатами вместо цепочки разнородных докладов удобней следить через интернет, или смотреть их как футбол -- с друзьями в баре, вблизи от туалетов, а не в центре многотысячной толпы. В этом плане трансляции заседаний оргкомитета и кухня подготовки митинга интересны не меньше, чем последующий просмотр докладов "на публику" -- уж там-то реальных событий явно больше, чем в итоговых выступлениях.

Так что я не разделяю восторгов, я в печали. Свистнуто, конечно. Но кто кому что именно просвистел остаётся неясным. Последствия, конечно, будут -- но не от митинга. Последствия будут от причины, а не от следствия. Митинг -- это следствие, не причина. Хотя я уважаю людей, этот митинг организовавших -- "и много-много радости детишкам принесла", я много лет занимался организацией таких массовых мероприятий, и понимаю, насколько это сложно и неподъемно, но какую радость это доставляет рядовым участникам. Хорошее дело сделали, опенспейс с концертной программой для нишевой аудитории. Хотя мне все выступавшие там артисты противны, но я понимаю, что других не берут в космонавты.

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

Но я плохо пока понимаю, что делать лично мне, на что тратить цветы своей селезенки. Основным направлением мне тут кажется замена традиционно поддерживаемых государством инфраструктур (т.е. чего-то, обладающего свойством повсеместности -- школ, больниц, водопроводов и т.д.) частными организациями на таком уровне, на котором вопли о "все погибнем, если не будет патерналистского государства" будут казаться несерьезными. То есть ответы на политические вопросы должны быть еще и технологическими, а не только логическими, это мне понятно. Но непонятно, как сделать не столько "гражданское общество" на эмоциях и ощущениях, сколько "сознательное общество" -- иначе все "победы" будут как победы давней перестройки, на два-три года, а потом очередной "режим". Очень хочется, как в системной инженерии, решать проблемы не по мере их поступления, а еще на стадии проекта. Увы, дебютных идей пока нет, кроме тех, о которых я тут неоднократно писал: массовое (частное!) образование, опирающееся на философскую логику, новые технологии распределенной оргработы (стык между тонким переходом от community of practice к endeavour в форме enterprise, project и прочему, о чем пока плохо говорится по-русски).
60 comments|post comment

Механизмы и эффекты, стратегии и эко-системы [25 Dec 2011|11:41pm]
Мало кто знает, но у меня уже несколько месяцев висят неотвеченными некоторые комменты stepanbezusov про механизмы и конструкции. Ибо чутьё мне подсказывает, что он даёт ценный совет, но понять его совет я не в состоянии. И вот я встретил в Сети Mickael Denis, который ткнул меня в материалы современных американских военных -- и там нашлось любопытное на эту тему (http://www.slideshare.net/michaelwdenis/net-centric-warfare-evolution-of-strategy, слайд 2 из двух):

1. До 1980: функциональная ориентация. Что тебе дают на вход (inputs), то ты и есть. Мейнфреймы с терминалами, 1 одноуровневая архитектура.

2. 1985 -- 1995: процессная ориентация: думают о выходах (outputs), процессы отсчитывают "обратным проходом". Автоматизируют языками четвертого поколения и серверами с "толстым клиентом" -- двухуровневая архитектура.

3. 1990 -- 2005: ориентация на возможности (capabilities), думают о результате (outcome). Трехуровневая архитектура: сервер-брокер-тонкий клиент.

4. >2000: ориентация на намерение (effects), думают о причинности (causality). Многоуровневая архитектура -- сервис-ориентация.

Так вот, эта самая causality-причинность напрямую связана с механизмами, как следует из первого слайда.

Вполне возможно, что это не те "механизмы", о которых говорит stepanbezusov, и не та "причинность", которая меня привлекает в голдратовских картах действий и результатов и GORE-диаграммах. Но вполне возможно, что это как раз они -- или достаточно близкие к ним. Нужно будет крепко над этим подумать.

Сходите по ссылке, помедитируйте над этой парой слайдов (возможно, для лучшего понимания первого слайда вам также нужно освежить для себя идеи Бойда: www.newcode.ru/media/NeoCode.Boyd.pdf -- по-русски, спасибо kapterev).

Этот Mickael Denis сказал еще одну интересную вещь, которая в этом постинге оффтоп, но раз уж зашел разговор о стратегии -- чтоб уж два раза не вставать. Он заметил также, что стратегии любви выигрывают у стратегий войны. Стратегия делать что-то из чувства принадлежности к какой-то (а вот тут внимание: это относительно новый бизнес-сленг, если вы его еще не отследили -- обозначает что-то типа "расширенного предприятия", куда включаются в том числе и пользователи -- полный жизненный цикл какой-то системы) эко-системе всегда выигрывает у стратегии, в которой что-то делается из-за удовольствия победы над каким-то врагом.

Нет, это он всё не про наши митинги. Это он комментировал в профильном комьюнити LinkedIn айтишные и деятельностные архитектуры адаптивного управления кейсами...
6 comments|post comment

navigation
[ viewing | December 25th, 2011 ]
[ go | previous day|next day ]