Как стать автором
Обновить

Комментарии 72

В который раз испытал искреннюю признательность к своим учителям, которые обучили меня пунктуации и орфографии.
искренне прошу прощения, если задел чьи то чувства:(
вот потому еще живы редакторы и клинеры ;)
Очень хорошая идея! Сам придумал что-то подобное уже давно, даже сделал небольшой прототип, но дальше дело не пошло.
Скажите, как у вас реализовано фиксирование попадание по роботу?
Пьезодатчики простые. При достаточной настройке позволяет отслеживать попадания по корпусу, при этом не получая помех от допустим движения

А если в стенку врезаться с разгона? Или в любое другое препятствие.

тогда возможно срабатывание, это верно. Однако тут опять таки вопрос настроек, ну и программной защиты от ложных срабатываний. (например, если никто не стрелял, а датчик сработал, значит срабатывание ложное)
Для роботов так же критичны сильные удары об поверхности. Сколько зондов отдали свою электронную душу звездам из-за жестких посадок на поверхность планет/спутников… Так что оставить всё как есть — тоже хороший вариант.
хмм… вообще аргумент))

вопрос настроек в общем
Я от леговского майндстормовского языка программирования недоумеваю: почему нельзя было сделать среду программирования основанную на чём-то вроде Scratch?!
И тут то же эти дурацкие «гусеницы из блоков».
Какое отношение они имеют к программированию?
«Больших», промышленных роботов так программируют что-ли?
" на чём-то вроде Scratch?!" как по мне менее наглядная штука…

«Какое отношение они имеют к программированию?
«Больших», промышленных роботов так программируют что-ли?» а у нас должно быть как в больших роботах? Зачем?
Ну вот какая цель всех этих затей? Приобщить народ, молодёжь, детей к программированию? Ну или хотя бы познакомить с азами?
А что конструирование алгоритма в mindstorm, что в изложенной системе — никак не знакомит с реальным программированием. Я за 20 лет программирования с такой хренотенью первый раз встретился именно у Лего. Сильно удивился, что за чушь им National Instruments сделали, поплевался и «переделал» «кирпич» на RobotC.

А вот Scratch мне понравилась тем, что во-первых структурно — это вполне себе язык программирования. Алголоподобный наверное.
Во-вторых, там в простом и понятном вообще реализована событийная модель современных систем UI.
«Ну вот какая цель всех этих затей? Приобщить народ, молодёжь, детей к программированию? Ну или хотя бы познакомить с азами?»

Вообще ни разу. Цель создать новое хобби для любителей стратегических игр.
Детей конечно можно… ознакомить, с алгоритмами, но это вторично
Мне всякие скретчи раньше были глубоко фиолетовы, а вот теперь ребенок дорос до уроков информатики в школе и мне пришлось ему слегка помочь с программой ЛогоМиры. Такого адского ада я давно не видел, очень сильно опасаюсь, что мозг ребенка необратимо пострадает. Поэтому на мой взгляд чем ближе к реальным языкам программирования — тем лучше. Пусть лучше будет похоже на скретч, чем кубики и стрелочки…
И еще раз говорю. Наш проект не для обучения детей программированию.

С другой стороны, помню как мне преподавали блок схемы. И это было очень полезно. В нашем проекте по сути эти блок схемы и рисуются.
Постарайтесь чтобы вас не постигла такая же участь: https://www.kickstarter.com/projects/50656835/e-dow-smart-window-timer?ref=category_location
Забавная штука))

Но, надеюсь нет… у нас как минимум ролик круче))
Fix:
Во-вторых, там в простом и понятном ВИДЕ реализована событийная модель современных систем UI.
У меня вообще вызывают глубокие опасения реализации событийных моделей в системах реального времени. Это большое заблуждение IoTшников.
Зависит от реализации. Если грамотно реализована машина состояний с переходами по трансляции событий — проблем быть не должно, а вот если вешать обработку событий отдельно, да Time critical — уже грустно.
А в user interface никакого реального времени и не предполагается:)
Ну да, только до тех пор, пока по команде «Проехать 2м и остановиться» ваш робот не будет проезжать… 3 метра… А в следующий раз… 1,5 метра. Просто потому, что вдруг пришло 100 Bluetooth запросов и событие от таймера слегка задержалось в операционке…
Это не UI.
UI — это «нажата кнопка», «прокрутили список», «нажали правую кнопку мыши».
Знаете, это позволяет визуально проследить диаграмму состояний и ветвления алгоритма, воспринимать алгоритм в наиболее понятной неподготовленному человеку форме. Вы ведь диаграммы состояний больших да распределённых систем не в текстовом виде делаете?
А этот ваш скретч — тот же текстовый язык, только с цветным фоном, если в общем смотреть.
По большому счёту, мне кажется, хороший программист — это тот, кто может придумать хороший алгоритм для реализации задачи, а не тот, кто знает много названий функций. Мы же не про «простокодеров» говорим? Грамотный специалист более-менее свободен в выборе инструментов, а начала алгоритмов проще и понятнее изучать визуально, мне кажется, чем этим абстрактным текстом.
И да, управление системой в реальном времени несколько отличается от написания UI.

P.S.> Чего я только не программировал «так», включая роботов и промышленные установки ;)
Так дело в том, что эта «гусеница» — это и не диаграмма состояний.
Это… даже не знаю как назвать. Просто другая визуализация потока выполнения программы. Совершенно непривычная для программиста, работавшего с обычными средами программирования. Где — да, всё текстовое.

Вот раз Вы упомянули программирование промышленных роботов — Вам вопрос (сам я с этим не сталкивался): среды для этого рода программирования так и выглядят?
Иначе я вообще не знаю чем объяснить такой подход NI в Lego Mindstorm.
Погуглите IEC61131-3 и среды программирования для него — CodeSys, TwinCAT. Так программируют промышленных роботов, где не требуется супербыстродействие, но требуется четкий real-time и гибкость программы.
Для космических роботов, авиоционных систем управления, где частые изменения программы не требуются, но алгоритм должен быть отлажен на все 100% и ессно — real-time и достаточно шустрым используется Model-Based Design — продукты Matlab Simulink или Stateflow.
NI Labview и иже с ними находятся где-то посередине.
Ну, думаю, это визуальная развёртка алгоритма с наглядным представления работы, скажем так. «На этом ветвлении пошли по этой ветке и остались в том цикле, затем сработало вон то условие выхода». Получается работа по принципу потока данных, он же задаёт последовательность действий, синхронизацию и тактирование. Мне кажется, это не другая, а просто визуализация. Вы ведь в голове, а не в коде, алгоритм представляете древовидной или даймонд-структурой, не текстом? Когда в общем виде, без конкретики реализации.
Ведь среда (подпустим пафоса) лишь инструмент Творца, привязывать к ней алгоритм — это ограничение. Она нужна на этапе реализации.

А среды разные, многие пишут на C-образном, я пользуюсь пресловутым LabVIEW от National Instruments. Для меня он оптимальный по соотношению время/простота реализации сложных алгоритмов/качество кода. К тому же он заточен на написание параллельных синхронных/асинхронных алгоритмов, работу с промжелезом, матобработку сигналов, реальное время и т.д. В условиях отсутствия жёстких лимитов по вычмощностям и памяти — всё просто (хотя там вменяемые возможности по оптимизации), если ограничения драконовские — там уже, конечно, нужно изворачиваться или переходить на уровень ниже (C, asm), но это редкость. Плюс единообразие программирования ПЛИС и обычных контроллеров — тоже удобно. По концепции напоминает разводку платы, весьма наглядно. Да и машину состояний на сотню позиций, с распараллеливанием, синхронизацией, допустим, матмодели и реальности, визуально делать проще, чем текстом. А потом отлаживать — тоже удобно. Оно как-то интуитивнее получается.
Его минус — он платный (хотя, хммм, свободный обмен информацией никто не отменял), да переучиваться на принцип потока данных после C — затрата времени. А «по-старому» писать неоптимально и небезопасно может выйти.
Но вообще, конечно, пишут кто на чём привык ;)
Так что, если человек знает алгоритмику и уже привык к текстовому языку — он на нём эффективнее, особенно в краткосрочной перспективе, а вот если он пока не программист, но хочет понять логику алгоритмов, причинно-следственные цепочки в них и прочее — тогда визуальщина, мне кажется, лучше.
Да, я не конкретно роботами занимаюсь, а, в основном, автоматизацией экспериментальных несерийных установок, измерительных комплексов и прочего подобного.
Да, такими роботами, которых упоминал lingvo я не занимался, моё упущение, спасибо, кстати, за кругозор. Век живи — уже хорошо ;) Но то, где сталкивался (несерийные вещи) — там такого не применяли. Так что именно в обычных промроботах я дилетант ;) RTOS да C всякие видел. Но там нужны были точность и быстродействие, возможно, поэтому.
Сейчас вообще для разработки систем управления реального времени выгоднее брать не программистов, а тех, кто именно разбирается в объекте управления, немножко поднатаскав их по автоматической генерации кода. Контроллер у них получается гораздо быстрей и качественней и для процессоров и для ПЛИСов.
Ну, если в общем — у нас такая фигня и происходит :) АСУ-шники мы, если по специальности. Хотя программить умеем не только в разрезе СУ.
а как попадание отслеживаться будет? и выстрел что один? и вообще, может эмулятор есть? а то мне кажется, что это все вразнобой будет слепо тыкаться в углы и никуда не попадать
Пьезодатчики простые. При достаточной настройке позволяет отслеживать попадания по корпусу, при этом не получая помех от допустим движения…

Выстрелов у пушки будет несколько. Там что то типо обоймы. Сколько именно на данный момент сказать не могу, но думаю что то в пределах 3-5

Про слепо тыкаться в углы… ну тут уже зависит от игрока, насколько верно он составит алгоритм. И эмулятора соответственно нет
Хмм. Значит, программирование также в массы? Думаю, неплохая идея. Удачи с ней.
а спасибо))
Дыа… есть группа Вконтакте с очевидным названием. Подписываться туда
Кот, конечно, супербосс карты.

Вам нужно добавить на машинки некие индикаторы очков здоровья, явно видные при взгляде на машинку, типа светодиодиков, который горит зеленым обычно и красным если машинка подбита. А то зубочистка как-то несолидно по корпусу попала.
лампочки есть, просто качество видео не очень, не видно(

Но индикаторы конечно будут
А вот меня идея с «программированием» как-то отталкивает. — уж слишком похоже на «самые крутые» браузерные игрушки с дуэлями на таком же принципе (или чуть проще) — когда задается набор действий для человечка (типа ударить снизу, сделать блок, ударить ногой и т.д), а потом они «дерутся»
даже не представляю как вы то, с этим связали…

все таки там «Камень-ножницы-бумага», а у нас как бы полная «свободна мысли». Да и реальное время опять таки
То есть нельзя управлять напрямую? Только заранее программировать движения? Но ведь это примитивно и уже давно придумано.
то есть управлять напрямую было бы не примитивно?

Все было кем то придумано, а реализация есть?
Управлять напрямую с компьютера, имея интерфейс и обратную связь, не думаю что примитивно.

А вот программируемые игрушечные машинки, видел еще в 90тых годах. Например Электроника ИМ-11.
дык это же простые машинки на радиоуправлении, не?

Да, были такие, вот только там реализация все таки другая, да и в полноценное хобби ту штуку не превратишь. У нас же геймплей комплексный, расширяющийся.
А ещё можно использовать метки RFID. положил метку на пол. А на роботе считыватель. Например нужно пополнить боезапас/жизни/броню/топливо заехал на метку пополнил.
кстати неплохая замена для «завода» местами
Обозначенная в начале поста задача не решается таким путем — это еще одно нишевое решение, интересное крайне узкой прослойке пользователей. Обычным геймерам оно не интересно — слишком все медленно, сложно и не решается никакая задача, которая бы не могла решиться «виртуально». Программистам тоже как бы не очень интересно в силу чудовищной примитивности.

Отдельное «фи» за ультразвуковые сенсоры. Они-то и по одиночке-то работают так себе, а уж когда на квадратном метре есть три машинки с ультразвуком, количество ложных срабатываний будет крайне высоким.
Не согласен. Оно конечно да, нишевое решение, однако геймеров очень большое число само по себе, а тех кто любит когда «медленно и сложно» так же достаточно большое число. А когда по миру у тебя тысяч сто таких игроков, то и получается, что роботы займут вполне себе постоянное место в жизни этих людей… и их ни разу не мало. Так оно и решается.

Ложные срабатывания ведь можно отфильтровывать, не так ли? При том, способов у нас больше чем обычно, потому что мы знаем где находится тот или иной робот в любой момент… ибо все его телодвижения во первых задаются нами, во вторых на карте отображаются.
Другой вопрос, что фильтрация это ни разу не простой процесс, я согласен
А когда по миру у тебя тысяч сто таких игроков, то и получается

… очередной конструктор. Я не против конструкторов. Мне лишь не нравится пафос типа «мы нашли решение как сделать роботов массовым явлением!».

Ложные срабатывания ведь можно отфильтровывать, не так ли?

Ценой скорости. Т.е. делается 7+ измерений, берется медиана, в случае слишком большого разброса значений все измерения повторяются. В случае ультразвука это весьма неспешная процедура, поскольку существует проблема эхо — т.е. сигнал переотразившись от стенки вернется и попадет уже на следующий замер.

ИК-сенсоры стоят немногим дороже (~4$ против 1$), но решают огромное количество проблем.
Нууу… не совсем конструктор, у нас попроще. А на счет пафоса, я действительно считаю, что это сможет стать началом распространения роботов среди простых людей. Конечно, если все получится.

Вот только у ИК-сенсоров свои проблемы есть… на самом деле на «разведчике» у нас будут и ИК сенсоры, и ультразвук, дабы первоначальная постройка карты была наиболее точной. На других роботах уверен, что сможем справиться, одним ультразвуком.(плюс ИК приемники простые)
Было нечто подобное про гонки https://habrahabr.ru/post/146321/, но без программирования.
Лучше, ИМХО, все-таки реальное управление роботом. Этакие танки online но с реальными танками.
тогда действительно возникает справедливый вопрос… зачем нужны танки онлайн с реальными танками, если есть просто танки онлайн?
online управление реальными танками — это огромные возможности, во первых, многопользовательский режим, во вторых, это элементарно демонстрация работы игрушек, что поддерживает традиционные продажи.
в третьих, это возможность в будущем масштабировать игрушки вплоть до реальных прототипов, и уже обкатывать решение реальных задач.
в четвертых, покупать подобные игрушки домой, как правило не целесообразная трата денег, в моем доме с маленькими детьми, игрушки на радио управление живут максимум пару месяцев.
в пятых, для увлечение игрой необходим прогресс, динамика, легкий апгрейд техники и т.д., социальное окружение.
Визуальное программирование алгоритмов, это всего лишь один из множества возможных вариантов использования.
и т.д. и т.п. Я давно обдумываю это направление, но нет ресурсов плотно им заняться.
Рано или поздно это направление выстрелит, у вас есть реальный шанс оказаться на передовой нового направления. Современные возможности коммуникации дают широкую возможность онлайн управления игровыми объектами.
ну смотрите. Возможность удаленно управлять танками, это да, это прекрасно. По крайней мере в некоторых случаях. Например если проходит большой турнир в Москве, а мне из Томска туда ехать вообще лень. Но я все еще могу участвовать в турнире… и да, такое мы делать будем.

На счет покупать домой, ну вам виднее, однако подумайте о том, что вы сможет «подсадить» своих детей на программирование и на относительно сложное планирование. В общем наш проект дает вам кучу возможностей для развития ваших детей… при этом и вам самим это будет интересно, так что вообще прекрасно))

«всего лишь один из множества возможных вариантов использования.» согласен, однако для нашего проекта думаю это все таки наиболее оптимально.

«у вас есть реальный шанс оказаться на передовой нового направления» да мы имеем шанс во многом быть «первыми» ))
Было бы достаточно интересно если роботы могли бы собираться из модулей, причем не только человеком, но и автоматически. Этакими базами-заводами. Тогда и смысл в захватах точек появится.
Заводы у нас будут.

Модульность это по для начала дорого очень, если будем очень успешны на кикстартере, тогда постараемся добавить ее сразу, если не, то добавим потом.

Насчет собирать их прям на заводе, было бы классно, но это прям совсем дорого:( но тут опять таки… будут деньги, сделаем))
Как хобби, сейчас занимаюсь исследованием ультразвука. Нашёл один интересный проект с тем же самым копеечным датчиком что и у вас. При наличии даже небольшой избыточной вычислительной мощности, можно сделать сонар для 10-15 градусного угла, не прибегая к повороту датчика. https://www.hackster.io/graham_chow/spread-spectrum-phased-array-sonar-018e22
хмм… интересная штука. Потом ознакомлюсь подробней, спасибо.
Почему только снаряды? Нельзя использовать что-то изображающее лазерную пушку?
Как лазертаг в «мире людей».
Это даёт разные тактики. Например лазер снимает меньше здоровья, но зато «патроны» бесконечные.
К тому же, если разместить несколько датчиков на платформе, можно отключать определенные модули при попадании в соответствующий датчик.
Я считаю, что переносить механику из виртуального в реальное надо по максимум. А выстрел и звон попадания снаряда в противника, это прям очень важное и зрелищное событие.

Заменять его лазерным пиу пиу, которого не видно… ну вообще не очень.

Кроме того, реальные снаряды дают такие неплохие эффекты как например рикошет… реальный рикошет причем)) случайность в подобных играх много стоит, и добавляет кучу веселья

А отключать модули можно и от настоящих снарядов)
Игровой процесс не раскрыт: создается впечатление, что играть не во что. Потенциального игрока нужно заинтересовать чем-то, а что тут есть? Мой совет: смоделируйте игровую схватку и продемонстрируйте сам процесс сражения. Должна быть мотивация купить эту игру и опробовать её с друзьями (а вот про спасение робототехники можно не заливать — игра на этой идее не продвинется никуда), а захочется-ли моим друзьям ломать голову о том как объезжать виртуальные объекты и попасть выстрелом, когда у нас свободного времени 2-4 часа после работы?
Ну про 2-4 часа после работы… игра скорее про «собрались на выходных и устроили пару битв»

игровой процесс повторяет компьютерные стратегии, только управление другое, ну и… жизнь
Можно добавить то, чего нет в компьютерных стратегиях — возможность сделать что-то свое. Т.е. добавить возможность конструктора. Т.е. не у всех есть Юниты А и Юниты Б, чьи характеристики известны и предсказуемы, а есть возможность сделать свой юнит С, чьи характеристики никто не знает и не узнает до начала столкновения.
вот тогда будет интересно не только программистам, но и конструкторам — ведь на «встречу» можно принести свои танки. А для «уравнения» шансов сделать как в Мех-играх, когда «сверху» армия ограниченна массой. Т.е. договорной бой ограничен 20 кг техники. И можно принести два танка по 10кг, а можно 10 по 2…
правда мне нужно, что бы было интересно не программистам, а простым игрокам, а им заморачиваться с конструкторами не всегда хочется…

однако модульность определенную все равно надо вводить, это верно.
это как раз мнение простого игрока. В свое время переиграл во множество стратегий и «почти стратегий» — типа mechcommander, к которой, судя по описанию, ближе всего игра (это если не брать программирование, которое мне как раз в этом проекте и не нравится.). Так вот, больше всего мне не нравилось невозможность кастомизировать юнитов или придумать своих. Особенно это достает в сетевой игре против реального противника — когда тот точно знает, что может твой юнит и не суется под обстрел. А так хочется его удивить! В это был плюс mechcommander, т.к. мехов можно было кастомизировать как угодно.
для тех, кому не хочется ковыряться, должны быть стандартные, сбалансирование юниты.
Ну, как я и сказал, модульность мы вводить будем. Вопрос только в том сможем ли мы ввести ее сразу, или добавим потом. (это уже от результата сборов на кикстартере зависит).

Но скорей всего мы введем модульность для «геройских» роботов. Что бы сильно не увеличивать стоимость «порога входа» для новичков. А вот с героями уже можно будет удивлять сколько душе угодно))

З, Ы. Mechcommander шикарен был, ага))
Какое-то время назад загорелся робототехникой. Решил приобщиться и купил себе Lego Mindstorm (только не смеяться...), увиденный когда-то в журнале и так давно желанный и дорогущий до сих пор.
Запал прошел достаточно быстро когда стали понятны реальные проблемы и их уже описывали комментаторы выше — расходно, долго и не очень интересно на самом деле. Практически ничего, что не может предложить виртуальный мир в разы быстрее и дешевле. А то, что это все в «реальной жизни» аргумент не самый весомый, это скорее даже как шаг назад, что приходится тратить ресурсы на создание реальных моделей, хотя все можно симулировать на компьютере.
Слишком много временных ограничений, нужно и модуль перегрузить и батарейки заряжать регулярно. Набор действий достаточно ограниченный — то что робот может проехать вперед 2 секунды и помигать лампочкой как-то не вызывает уже восторг.
И все таки какая киллер-фича задумки которая привлечет массы? Почему была выбрана именно модель «разработка-загрузка алгоритма», а не непосредственно управление роботами например?
Фишкой может быть очень богатый набор преднастроек — то есть можно достать все из коробки и начать играть за 10 минут и не разбираться как мигать лампочкой пару часов. Кто-то и останется на таком уровне и будет своего рода «живая» настольная игра, но для продвинутых юзеров дать возможность прокачивать все что можно.
Кстати есть такая настолка — RoboRally, и там есть программирование и фигурки, но там обходятся без роботов совсем.
1. На компьютере можно моделировать что угодно, однако при этом настольные игры например живут неплохо. У реальности свои прелести.

2. Про какой нибудь танк в компьютерной игре тоже можно сказать «он может проехать вперед и помигать лампочкой»… однако из простых действий собираются большие комплексные игры. На это и надо смотреть.

3. Для непосредственного управления роботами есть машинки на радиоуправлении. В них больше недели вообще кто нибудь играет? А если делать управление рамкой, то это тоже самое что и на компьютере, так же переходить не будут.

4. Так собственно и так можно достать из коробки и играть сразу… только батарейку вставить. Как там и написано, и как показывается в ролике, алгоритм собирается в пару кликов.

5. RoboRally видел, но там по сути гонки… у нас стратегия, и да, роботы
Отстрелялись, но никакая дискуссия не получается…

Я бы проявил больший интерес к проекту, если бы это было более гибридное решение компьютерной и реальной игры, скажем управление было бы наподобие стратегий в играх, но просчет физики снаряда и рикошетов возьмет на себя уже реальный мир. Не верится, что будет очень интересно в период активной битвы размышлять категориями — «ехать вперед 2 такта, повернуть башню 35 градусов, 3 градуса вверх и стрелять», ну или может делать тогда turn-based.
Если делать такое же управление как и на компьютерах, зачем тогда переходить с компьютеров в реальность?

А на счет интересно… во первых это заставляет заранее продумывать свои действия. Во вторых это добавляет… паники! Когда ты накосячил в алгоритме, а противник уже готов твоего робота «пристрелить» тебе так или иначе придется судорожно собирать новый алгоритм. И хотя из такой ситуации алгоритм сложный не нужен, и это реально займет секунды, но ведь потом еще придется пережидать задержку. А это уже адреналина добавит. В стратегию. Адреналина. 7,62 была такая игра, там достаточно хардкорная стратегия, но в реальном времени, хоть и с активной паузой. Так в некоторых моментах напряжения больше чем в шутерах… и это в стратегии! У нас конечно немного другое, но я считаю, что такая система как у нас сделает такой же эффект как в 7,62.
Затем, что многие знают, как управлять роботами в компьютерных играх. А как в реальности управлять уже не особо, но стоило бы ожидать что-то похожее.
А зачем переходить в реальность с компьютеров — вот это как раз то, что вы должны объяснить своей целевой аудитории. А сейчас получается, что у вас управление главное отличие.
Управление это скорее дополнение.

Главное, что «войска» теперь настоящие. Их пощупать можно. И в противника можно запустить. И да противник то в живую рядом стоит/сидит.

Ну и так как это настоящие роботы им можно еще применений придумать. На кота поохотится, банки с пивом потаскать, гонки с препятствиями устроить… тут уже от фантазии игроков зависит. И если игроков, что то не устраивало в компьютерной игре, не хватало режимов допустим, там они не могли с этим ничего поделать. Тут же ради бога. Реальный мир все таки
вторая наша статья https://geektimes.ru/company/cygob/blog/281662/
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.