Выбирая робот-пылесос я столкнулся с тем, что большинство статей на эту тему: а) носят общий характер (смотрите -- снизу у робота пылесоса есть щёточки! они метут) б) являются обзорами конкретных моделей (мы вчера купили -- смотрите, а вот тут у него щёточки!), при этом опыт эксплуатации, как правило, небольшой.
Мне же было интересно всё противоположное. А именно -- специфика работы с точки зрения инженера и опыт длительной эксплуатации.
Поскольку соответствующего контента мало, я решил создать его самостоятельно. Заодно узнаю, действительно информации нет (тогда мои заметки всплывут в поисковике), или они просто тонут среди миллиарда общих статей, повторяющих друг друга.
Сегодня я расскажу о том, как робот-пылесос ищет базу. Я не знаю, как это происходит в подробностях, но я увидел достаточно, чтобы сделать разумное предположение. Конкретную модель я пока называть не буду, поскольку это не имеет значения для описания технологии.
Началось всё с того, что я хотел в точности знать, где у робота расположены ИК-датчики. Спереди на бампере у него был красный экран, сквозь который ничего не было видно. Я стал думать, как бы его просветить. Я вспомнил два метода и применил оба: 1) у фотоаппаратов (в т.ч. у камер телефонов) как правило плохие ИК-фильтры, поэтому они видят ИК-излучение; 2) у меня была камера наблюдения D-Link с ИК-подсветкой и ночным зрением.
С камерой ночного зрения получилось всё очень и нтересно, т.к. экран бампера оказался полностью прозрачным для неё, и я смог в подробностях увидеть все кабеля и микросхемы внутри. Но просмотр фотоаппаратом оказался более информативным для моих целей, поскольку фотоаппарат видел сквозь экран плохо, но он видел главное -- светодиоды (понятно, что датчик это не светодиод, но он должен быть где-то рядом). А у камеры ночного зрения была ИК-подсветка и я долго разбирался, где настоящий свет светодиода, а где блик от подсветки. Потом я просветил обоими камерами базу. Тогда-то я и увидел, как она устроена.
Смотря, как робот наводится на базу, папа сказал -- "мне кажется, тут используются космические технологии типа Союз-Апполон". Я сказал, что скорее авиационные. Потому что уж больно было похоже на заход по ILS. У меня в голове сразу предстала чудовищная картина приводного маяка в базовой станции -- и приёмника в пылесосе, который узнаёт с точностью до градуса угол по направлению на базу. И! По-видимому примерно так всё и работает.
Итак, в базе находятся три (!) ИК-светодиода. Есть ещё четвёртый -- сигнал питания, но он не ИК. Забудем про него.
Первый светодиод светит вверх. Над ним расположен конический рассеиватель. Это -- приводная радиостанция)). По ней робот примерно понимает, с какой стороны находится база -- и заходит на неё не по прямой, а по диагонали. Причём заход идёт небольшими шажками, а не непрерывной ездой -- он сначала немного поворачивает, а потом немного проезжает. Далее цикл повторяется. На основании этого я делаю вывод, что приводной диод ищется одним из боковых ИК-датчиков (расположены под 90 градусов к оси прямого движения), причём датчик принимает сигнал только в узком диапазоне углов. С этим и связан метод езды. Когда робот немного проезжает, он теряет базу из вида. После этого он поворачивается и вновь её обнаруживает.
Ниже расположены два светодиода для точной наводки. Расположены они вот так:
Мне кажется, что дальнейшие комментарии излишни, но я всё-таки немного напишу. Это не совсем ILS, это PAPI/VASI.
Когда робот обнаруживает оба сигнала от курсовых диодов, он перестаёт ехать боком. Он разворачивается передом к диодам и дальше заезжает по прямой, немного подруливая влево или вправо.
Светодиоды моргают с разной частотой, таким образом по принятому сигналу можно понять, который из светодиодов виден. При разных углах обзора видны разные светодиоды, потому что перегородка их закрывает. Если робот видит только один светодиод, то он знает, что расположен от базовой станции с определённой стороны -- и знает, куда ему надо двигаться. Если он видит оба светодиода, то он расположен точно по нужному курсу. "Посадка" заканчивается, когда на контакты питания приходит напряжение. Определил я это следующим образом.
Я просветил базу со всех сторон и обнаружил, что курсовые светодиоды видны и сзади. В качестве эксперимента я развернул базу жопой от стены и попробовал запарковать робот на неё. Он доехал до базы точно, а потом продолжал пихать её, даже когда она упёрлась в стену.
По-видимому, необходимость грубого и точного наведения связаны с тем, что контакты для зарядки имеют довольно небольшую площадь (около 1 на 1 см). Вот у роботов от Xiaomi, например, контакты для зарядки просто огромные. Я подозреваю, что они обходятся только грубой системой.
Вы только посмотрите, где разместили инструкцию по пользованию детской площадкой! От неё и так польза невелика, но... интересно, что думал повесивший о том, кто и каким способом будет читать эту инструкцию?
Дело было... несколько лет назад. Я сделал заказ в одном компьютерном интернет-магазине. Когда я получал товар в пункте самовывоза, я обнаружил на товаре наклейки nix.ru . Я спросил, что сие значит. Мне выдавальщик ответил, что им товар поставляет nix.ru, поэтому он лепит на них свои наклейки. Понятно, что все розничные магазины -- это перекупщики. Но перекупка из одного розничного магазина в другой -- нечто необычное.
По этой и по каким-то ещё причинам я решил написать свой первый отзыв на магазин в яндекс-маркете. Я детально изложил процесс покупки. То, что магазин -- перекупщик nix.ru -- было одним из ключевых пунктов, потому что из этого следовали нюансы с гарантийным обслуживанием (какие -- я сейчас уже не помню).
Отзыв был проверен модератором -- и забанен. Причина: не допускается в отзыве указывать названия других магазинов.
-- Слышу осенний листочек катится по асфальту. Стоп, кажется тут мимик! Надеть психоскоп! -- Смотрю на клумбу с яркими крупными цветами. Так, надо собрать в переработку. -- Бомж спит на скамейке. Обыскать? -- Открываю транскриптор. А, это был не транскриптор, а смартфон. -- Электрощиток. Nuff said.
Мама вышла во двор погулять. Там она встретила владелицу двух собак -- огромной и малюсенькой. Они поговорили.
Владелица: Большая собака -- кобель, а маленькая -- сука. Мама: И что, большая собака к маленькой не пристаёт? Владелица: Не, её только мячики интересуют!
Ещё в школе меня бесило, когда задаёшь преподу вопрос, он отвечает. А потом отвечает ещё раз другими словами. Ты говоришь "ага, всё ясно". А он третий раз ещё раз то же говорит. Да всё понятно уже!
Сейчас-то я думаю, что пусть это и бесит, но так об'яснять материал правильно. Потому что когда попреподавал, то понял, что даже если студент говорит, что ему понятно, то может оказаться, что на самом деле непонятно.
Но есть ещё один момент. Я обнаружил, что сам периодически отвечаю на вопросы подобным образом. Причём вопросы даже не с об'яснением чего-нибудь (где так делать и надо), а какие-нибудь бытовые типа "где лежит то-то?". Вот какие я обнаружил у себя мотивы: -- Хочется ответить подлиннее; -- Беспокоюсь, что человек мог не понять; -- Мне нравится, что я сказал, поэтому хочется сказать ещё разок; -- Хочется похвастаться, что много знаю, поэтому отвечаю дополнительно на то, о чём не спрашивали.
Это, конечно, ненормальные причины для удлинённых ответов. Единственная нормальная причина для повтора (помимо об'яснений учебного материала) -- это повтор информации о договорённости (например, когда и где назначена встреча).
Сестра читала книжку. В книжке умер её любимый персонаж. Она грустит.
Сестра: Буду читать эту книжку для разгрузки! *показывает книжку про серийных убийц* Я: Ты ещё почитай ту книжку про кремацию, очень по теме. Сестра: Насколько я знаю, в родной стране умершего персонажа практикуется ингумация. Я: Ух, какие ты умные слова знаешь! Хорошо, что я тоже их знаю.
Бывает, что машина спереди едет слишком медленно и её надо обогнать. Или в определённом месте надо сделать перестроение для дальнейших манёвров. Раньше я всегда тормозил с началом перестроения. Включаю поворотник, смотрю в зеркало -- а машина за мной уже давно включила и начала манёвр раньше меня. Приходилось ждать, пока она перестроится, потом меня обгонит, а потом уже я смогу поехать за ней. Такая смена мест, конечно, очень красива, но неудобна (мне).
Спустя какое-то время я научился соображать гораздо быстрее. Теперь я, включая поворотник, замечаю, что я начинаю манёвр одновременно с машиной, едущей сзади. Думаете, теперь я провожу манёвры синхронно с другими машинами? Иногда да. Но теперь я заметил другой эффект -- в 50% случаев задняя машина, заметив, что я уже начал манёвр, который собиралась делать она, отказывается от своей идеи, выключает поворотник и едет дальше по старой полосе.
Пытаюсь научиться готовить. Ничего достаточно интересного, чтобы этим хвастаться, я пока не сделал. Поскольку мой навык (был) на уровне "я неплохо ставлю чайник", приходится разбираться даже с тем, как делать простые действия. Или гуглить, или у кого-то спрашивать.
***
Написано: "откиньте макароны на дуршлаг". Что означает слово "откиньте"? Звоню сестре.
-- Как откинуть макароны на дуршлаг? -- Так. (деловито) Макароны сейчас находятся в кастрюле? -- Пока нет. Я решил озаботиться заранее.
***
Написано: отделите желток от белка. А как?
Загуглил. Методов много, но все какие-то странные. Самым подходящим мне показался метод "вылейте яйцо в блюдечко и извлеките желток рукой". Вылить оказалось довольно легко. А вот с извлечением возникли проблемы. Вы когда-нибудь играли в игровой автомат "достаньте мягкую игрушку клешнёй"? Я желток хватаю, а он сразу выскальзывает из руки! Потом мне удалось всё-таки желток схватить.
Поскольку я очень умный (IQ 120), я расположил исходное блюдце на одном конце стола, а целевое -- на другом. Это явилось ключевым моментом в дальнейших событиях. Как только мне удалось захватить желток, я его как можно быстрее понёс к целевому блюдцу. При этом я не успел отследить, что отделение желтка от белка, фактически, не произошло. То есть, я понёс через весь стол яйцо целиком, ухватив его за желток, а белок свисал соплёй снизу. Для меня было новостью, что с жидким яйцом такое вообще можно сделать.
Но желток и белок оказались плохо скреплены. Поэтому во время переноса под воздействием силы тяжести белок от желтка всё-таки отделился. К моменту, когда я донёс желток до целевого блюдца, белок уже упал и растёкся прямо посередине стола. Небольшая часть белка попала в целевое блюдце. Я его приподнял -- и остатки белка перетекли через бортик блюдца на стол и присоединились к общей луже. Таким образом, задачу отделения белка от желтка я, в целом, выполнил. Но какой ценой!
(потом я, конечно, научился осуществлять данную процедуру без подобных фейлов)
***
Самым неожиданном эффектом было то, что на работе (где я ем то, что изготовил) коллеги стали говорить что-то вроде "о, едой пахнет".
В Prey (2017) тусовался на электростанции. Там есть одна комната, весь пол в которой бьёт электричеством. Я кое-как допрыгал до угла, дальше надо было забраться наверх примерно на два человеческих роста. Прыжком туда не попасть. Неподалёку было место, куда прыжком забраться было можно, но с тем, чтобы в это место попасть, были определённые проблемы из-за того же пола.
Но тут меня заметил полтергейст. Полтергейст известен тем, что он кастует на игрока заклинание, которое бьёт его об потолок. Больно. А потолок тут был ооочень высоко. Поэтому полтергейст не смог меня расплющить. Зато он меня очень комфортно поднял туда, куда я так хотел попасть. Спасибочки.
Я думаю, что этот принцип очевиден, но всё-таки запишу его.
Первым этапом надо убирать крупную, легко собираемую грязь сухим методом. А вот вторым этапом уже можно использовать более мощные вещи, такие как влажная уборка и моющие средства.
Потому что иначе крупная грязь будет мешать убирать мелкую. Принцип применим почти во всех случаях, разве что кроме вытирание пыли с высоких полок, когда смахивание сухой пыли будет приводить к засыпанию этой самой пыли вам в глаза.
Пример -- с мытьём стекла у машины. Если сначала смахнуть щёткой верхний слой пыли, то с отмыванием нижнего будет гораздо меньше проблем.
Я писал 17 августа, что осталось 6 маршрутов. По предыдущей статистике их должны были закрыть примерно в течение месяца. Но нет, их закрыли вчера, все шесть сразу. Прошло 10 дней. Троллейбусное движение полностью прекращено.
Я очень удачно в субботу специально поехал кататься и сделал архивную фото- и видеос'ёмку.
Обещают сделать один (!) маршрут с двумя ретро-троллейбусами "в знак уважения". Но это не уважение, это -- насмешка, потому что это будет даже не экспонат, а аттракцион. Данью уважения был бы полнофункциональный маршрут Б, например.
Чего я во всей это истории не понимаю, так это почему же у меня всё-таки так бомбит? Ну ездил троллейбус, теперь ездит автобус, какая разница? А у меня внутри всё ворочается.
В нашем районе троллейбусов всегда было много. Они ездили во все стороны. Я пользовался ими с самого детства. Ездил на них в школу, в институт, в разные интересные места. Пользовался практически каждый день. "А куда он рога перекинет? Ага, перекинул налево, значит наш!"
Когда я ещё в начальной школе учился, мы ездили на дачу не на месяц, когда у всех отпуск, а на 2-3 месяца. После одной из таких поездок мы приехали, я выхожу из подземного перехода и вижу из-за стенки перехода торчащую штангу. И думаю -- ох, а что же это такое? :-О Остального троллейбуса видно ещё не было. Потом я вышел и увидел, что это такое. Оказывается, пока я жил на даче, я полностью забыл о троллейбусе. А тут вспомнил. Я был потрясён, что я о таком забыл.
Однажды штанга соскочила, а верёвка, которая к концу штанги была привязана, перекинулась через провод. Я не знаю, как это произошло. И вот водитель ходит вокруг и думает, что бы ему предпринять. Я в этот момент не ехал, а по улице шёл. Постоял, поглазел.
Однажды я виделся с очереlной своей неразделённой любовью. После этого сел на троллейбус и задумался. "Молодой человек, конечная!" -- "А, что?"
Однажды не было электричества и троллейбус встал. Водитель: "Да главное через мост переехать, там заправка". Я: "А что, можно бензин заливать?". Водитель: "Ага!". Врал он, конечно. Есть такие модели, в которые можно заливать, но это был не тот случай.
В старых ЗиУ (точную модель не помню) часто текла крыша. Поэтому в дождь часть сидений была свободной. И мокрой. Зато когда когда эти сиденья были сухие, на них было очень мягко сидеть.
На сиденьях некоторых моделей БКМ было написано "БЕЛКАМУНМАШ". Я думал, а почему "камун", а не "комун"? А это было по-белорусски написано. Ручки по бокам этих сидений были очень приятными на ощупь.
Когда я узнал о планах по закрытию, я стал участвовать в троллейбусном активизме. Я давал Кацу денег, раздавал листовки, ходил на митинги. Но в итоге никакого эффекта это не произвело.
Во многих городах троллейбус закрываются из-за нерентабельности, низкой наполняемости, отсутствия подвижного состава. Но в Москве с этим проблем никогда не было. Троллейбусы всегда ходили битком набитые. Закрытие московского троллейбуса -- политическое решение отдельного товарища по имени Собянин С.С. (обращаю внимание, что он также приложил руку к закрытию тюменского троллейбуса). В чём настоящая причина мы никогда не узнаем, но вот интересное расследование [ссылка на материал "Кто зарабатывает на уничтожении московских троллейбусов? (Спойлер: один из крупнейших подрядчиков мэрии) Расследование Ивана Голунова" удалена в связи с тем, что Медуза об'явлена нежелательной организацией в РФ]. В Москве ещё есть трамваи. Признаков их закрытия не наблюдается (кроме периодического об'единения маршрутов). Однако не следует думать, что трамваи в безопасности. Призываю всех заинтересованных лиц держать ухо востро.
Теперь если хочется кататься именно на троллейбусе, то у москвичей варианты такие: -- Химки (ходят от м. Планерная) -- Подольск -- Видное
Вот вам архивное фото, московский троллейбус за три дня до закрытия, 22 августа 2020 года:
В английских разговорных текстах постоянно встречается слово some. При переводах некоторые создатели видеороликов , зачитывающих треды с реддита, это слово постоянно переводят как "некоторый". Технически это правильно. Но мало того, что это англицизм, так ещё это слово почти не несёт смысловой нагрузки. В большинстве случаев это слово вообще можно пропустить.
Но даже если его оставить, есть же некоторые другие слова, которые в некоторых случаях лучше подходят. "Кое-какой", например.
Сравните:
"Мне осталось доделать некоторые дела." "Мне осталось доделать кое-какие дела."
Заметил, что когда светофор переключается на зелёный, периодически от какой-либо из соседних машин слышен звук заводящегося двигателя. Это происходит не часто, но случаи не единичные. Т.е. некоторые водители почему-то глушат двигатель на светофоре. А это всего минута работы на холостом ходу.
Причины такого поведения непонятны. Бензин что ли экономят?
Ручку двери на работе приделали на место. Захожу с утра, хочу взять ключи, а ключи от всех комнат, кроме одной, уже взял коллега. Тогда я говорю охраннику, что не буду ни одного ключа брать -- и иду дальше.
В середине дня последний невзятый ключ всё-таки понадобился. Спускаюсь к охраннику -- и он ничего не спрашивая сразу выдаёт мне нужный ключ. Я ему тоже ничего не говорил.
-- А... как вы догадались, зачем я пришёл? -- Телепатия!
Хотя умом-то понятно, что я к охраннику ни за чем больше подойти не мог, но такое угадывание с его стороны всё равно выглядело впечатляюще.
Играю в Prey (2017). Патроны тратить не хочется, поэтому использую переносные турели по максимуму.
На одном уровне засповнились два фантома. Они были в коридоре, а за ними дверь. А за дверью я. Я туда поставил турель. Подхожу к двери поближе -- она автоматически открывается. После этого турель видит фантомов и начинает стрелять. Но фантомы стреляют в ответ медленно летящими файерболлами. Одно попадание -- и турель подбита. Я пробовал разные тайминги открытия двери, чтобы фантомы не стреляли, а пытались подойти (такое иногда получается), но никак не выходило. Если отойти -- то дверь закроется, конечно, но через несколько секунд, а это очень много. Тогда я заметил, что я, когда хочу дверь открыть, подхожу к двери слева, а справа имеется кнопка. Эта кнопка не только запирает дверь, но и инициирует закрытие, даже если я рядом.
После этого я стал подходить к двери справа. Открываю дверь -- турель стреляет. Вижу, что фантом выпустил файерболл -- нажимаю кнопку, дверь закрывается. Файерболл разбивается о дверь, не повреждая её, но с моей стороны всё-таки видно, когда он прилетел. После этого я опять открываю дверь. Турель пережила стычку без единой царапины.
Это не полноценное исследование, поскольку тест проводился один раз.
Вопрос: если мы архивируем несколько файлов, некоторые из которых могут быть дубликатами, то архиватор опознает это (и уменьшит архив в кратное число раз) или будет каждый раз смотреть на файл как баран на новые ворота?
Взяли один файл и продублировали его четыре раза. Файл был размером примерно мегабайт и плохо жался. Архиватор WinRAR не смог опознать дубликаты и сделал архив длиной 4 мегабайта. А 7-zip в одноимённом формате -- смог! И сделал архив размером 1 мегабайт.
Но формат рар поддерживает информацию для восстановления, которая была нужна, а зип не поддерживает. Поэтому после тестов решили паковать файлы сначала 7-zip, а поверх уже паковать WinRAR с информацией для восстановления.
Назначение архивов в данном случае прямое -- хранение истории измеренных данных, которые большие по об'ёму и хорошо жмутся.
DC-DC-преобразователь это устройство, у которого на входе, скажем, 12 вольт постоянного, а на выходе 5 вольт постоянного. Или наоборот. Чаще всего это достигается путём ШИМ. Входное напряжение просто питает генератор, который выдаёт ШИМ-сигнал нужной скважности, который потом фильтруется (усредняется).
Я купил один такой преобразователь "для дома, для семьи". Он был выполнен в виде микросхемы. Читая даташит я выяснил, что ему нужна обвязка -- около пяти конденсаторов разного номинала и одна натуральная катушка.
Потом для совсем другой поделки я купил ещё один преобразователь. И у него было всего три ноги. И никакой обвязки. А потом случилось то, что при пайке я отломал ему ножку. Он был выполнен в виде пластиковой коробочки, залитой резиноподобной субстанцией. Мне стало интересно, смогу ли я припаять ножку обратно, поэтому я раскурочил эту субстанцию. Что же я обнаружил внутри? Я обнаружил текстолитовую ПЛАТУ миниатюрных размеров, на которой была микросхема, пяток конденсаторов и катушка.