127

Hexapod SKYNET своими руками

Здравствуйте. Сегодня я бы хотел поделится своим инженерном шедевром - гексаподом SKYNET. Тут не будет технических подробностей и инструкций, просто хочу показать людям свое творение и услышать какую-нибудь критику или предложения. Если вы хотите больше технических подробностей, то я в ходе разработки публикую статьи на хабре (ссылки я оставлю в конце).

Hexapod SKYNET своими руками Hexapod, Робототехника, Программирование, Робот, Фанера, Видео, Длиннопост

Робот собран на базе микроконтроллера SAM3X8E (Arduino Due, только без Arduino - FW написано на чистом C). Возможно вы не поверите, но сделан он из фанеры 3мм с применением лазерной резки. Долго и нудно красил фанеру перманентным маркером (6 штук ушло), но результат порадовал.


Мощные фанерные лапы содержат в себе сервоприводы с моментом 20кг\см, что хватает для причинения болей в случайно попавших во время движения человеческих пальцах (поверьте моему опыту). Без проблем может тащить на себе 4л бутылку с водой и может сходить за вас в магазин (в теории). Собирается это чудо за 8-10 часов с учетом калибровки и настройки.


Электроника гексапода состоит из 2 частей: силовая плата для питания микроконтроллера и сервоприводов и плата управления, которая отвечает за коммуникацию по WIFI и подключение внешних сенсоров. Все печатные платы проектировались, разводились и изготавливались в домашних условиях своими руками (все они двухсторонние). Ниже на картинке плата управления. Она вставляется в Arduino Due, а та уже прикручивается к корпусу.

Hexapod SKYNET своими руками Hexapod, Робототехника, Программирование, Робот, Фанера, Видео, Длиннопост

Сердце гексапода - DC-DC понижающий преобразователь 12V - 6V на базе 8 LM2596S. Максимальный выходной ток в 24A позволяет подключать мощные приводы, при этом запас по току остается довольно большой. КПД преобразователя 85% при входном напряжении 12V и максимальной нагрузке.

Hexapod SKYNET своими руками Hexapod, Робототехника, Программирование, Робот, Фанера, Видео, Длиннопост

И конечно же немного видео.

Проект является открытым и активно развивается. Исходные коды прошивки, программ и чертежи доступны на GitHub:

- Прошивка (Atmel Studio): https://github.com/NeoProg2013/Skynet_firmware

- Программа управления (Qt Creator): https://github.com/NeoProg2013/Skynet_control

- Печатные платы (Sprint Layout): https://github.com/NeoProg2013/Skynet_PCB

- Чертежи (КОМПАС 3D V16): https://github.com/NeoProg2013/Skynet_blueprint

- Программа конфигурации (Qt Creator): https://github.com/NeoProg2013/Skynet_setup


Технические подробности (хабр):

- Часть 1: https://habr.com/ru/post/424867/

- Часть 2: https://habr.com/ru/post/424905/

- Часть 3: https://habr.com/ru/post/436748/

- Часть 4: https://habr.com/ru/post/444070/

- Часть 5: https://habr.com/ru/post/448058/


Если у кого-то будут вопросы или проблемы по сборке (если вы вдруг захотите), я буду рад на них ответить.


Баянометр ругался на кривые деревья :)

Найдены возможные дубликаты

+11

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

+2

Ты чего удумал, ирод???

Иллюстрация к комментарию
раскрыть ветку 1
0

О да, какие же эти репликаторы были жесткие...

+3

Очень терпеливый кот)

раскрыть ветку 1
+1

Ага. Я думал он хоть испугается

0
Охуенно. Шерстяной мешок недооценил только
0

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

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

Возможно, однажды займусь, как только появятся свободные средства и время

0

отличное хобби

0

Красавчик))

0
Добрый день, как с Вами связаться? Есть возможность монетизировать вашего робота, прошу ответить максимально оперативно.
раскрыть ветку 2
0

С того момента он очень сильно изменился

Иллюстрация к комментарию
0

Neoprog@bk.ru

0

Сколько ушло времени от идеи до видео? По факту результат офигенен.) Жаль, нельзя два плюса ставить.

раскрыть ветку 1
+1

8 месяцев разработки, где-то по 2-3 часа в день по выходным.

0

Я правильно понимаю что он может передвигаться только по ровной поверхности, и всякие препятствия например в виде камушков и ям могут уронить его?

раскрыть ветку 1
0

На данный момент да. Адаптация к ландшафту в планах

0

Автор, нереально круто! Но будь бдителен, вдруг за тобой из будущего придут)

Иллюстрация к комментарию
0

Очень круто,  видеокамеру на него, управление через веб-интерфейс и лазерную указку, чтоб можно было с котом играться удаленно))

раскрыть ветку 4
0

Камеру да, поставить нужно. А вот веб-интерфейс лишний мне кажется, приложения для андроида хватает более чем :)

раскрыть ветку 3
0
Ну я к тому, чтоб на работе можно было зайти на страничку поиграться с котом), с компа наверное поудобнее управлять. А вообще мне бы такая штука пригодилась, лазер по мощнее поставить и бегать по огороду жечь вредителей всяких в свободное время. Станцию для подзарядки поставить неподалеку чтоб как робот-пылесос приползал как разрядится.
раскрыть ветку 2
0

А почему на лапах звезды Давида?

0
Афигееееено оч круто!))))
0
Молодец
раскрыть ветку 1
0

Спасибо :)

0

молодец! круто! вот какраз тоже решил ардуиной заняться, с кодингом давно знаком, но всё на осях - надоело))

раскрыть ветку 2
0

Спасибо :)

раскрыть ветку 1
0

за инфу - отдельный сенкс!)

0

Оснастить его шариками из пенопласта (металлизированными по внешней поверхности), добавить генератор Ван де Граафа и коту хана.

раскрыть ветку 1
0

Не, кот хороший. Жалко ведь...

-1
Хочу такой!!! 👍
-1

и так - оно случилось!!!

родился скайнет-мозг


что дальше? Т800?

раскрыть ветку 1
0

До мозга пока далеко, но нейронная сеть там точно скоро будет :)

Похожие посты
47

Робот с реалистичным взглядом

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

P. S. Саккады - быстрые, строго согласованные движения глаз, происходящие одновременно и в одном направлении.

1263

В США тестируют робота-дельфина, которого не отличить от настоящего

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

В США тестируют робота-дельфина, которого не отличить от настоящего Робототехника, Робот, Дельфин, Гифка

Его длина почти два с половиной метра, кожа из медицинского силикона, он движется и реагирует на раздражители так же, как настоящее животное.

Специалисты надеются, что в будущем для развлечения посетителей живых дельфинов заменят роботы.

Отсюда: https://t.me/ofigenno/5258

1206

Из маленького танчика в танчик побольше или история одного проекта

Начнём с того, что на тот момент мне было 12-13 лет. Года два назад дело было. Весна, мне скучно. Младшему брату подарили на новый год р/у танки, а просто так играть наскучило. Сначала прикрутил к танку светодиод, чтобы в ночи веселиться, а потом уже и FPV. После этого танк стал похож на декорации к "Охотникам за приведениями". Такой вот пепелац:

Из маленького танчика в танчик побольше или история одного проекта Хобби, Электроника, Робот, Робототехника, Детство, Радиоуправление, Длиннопост

Было весело, но хотелось большего. В итоге раздербанил башню, утилизировал всю электронику, оставив только механическую часть. Поставил мозг APM c прошивкой APM rover, тк прогать не умел. Управлял сием творением с помощью стандартного FS-i6. Камеру установил на серву, чтобы ворочалась. С гордой надписью на боку работа "импровизируй, адаптируйся, преодолевай", я пошёл думать дальше

Из маленького танчика в танчик побольше или история одного проекта Хобби, Электроника, Робот, Робототехника, Детство, Радиоуправление, Длиннопост

К тому моменту меня начали посещать мысли, что эту штуку можно пристроить как проект. А до этого я ещё ездил на робофест, где вдохновился зрелищностью соревнований кубка РТК (если кратко, то это соревнования экстремальной робототехники). Так как база от игрушечного танка особой проходимостью не обладала, то я её переделал на 3д печатную

Из маленького танчика в танчик побольше или история одного проекта Хобби, Электроника, Робот, Робототехника, Детство, Радиоуправление, Длиннопост

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

Из маленького танчика в танчик побольше или история одного проекта Хобби, Электроника, Робот, Робототехника, Детство, Радиоуправление, Длиннопост
Из маленького танчика в танчик побольше или история одного проекта Хобби, Электроника, Робот, Робототехника, Детство, Радиоуправление, Длиннопост
Из маленького танчика в танчик побольше или история одного проекта Хобби, Электроника, Робот, Робототехника, Детство, Радиоуправление, Длиннопост
Из маленького танчика в танчик побольше или история одного проекта Хобби, Электроника, Робот, Робототехника, Детство, Радиоуправление, Длиннопост
Из маленького танчика в танчик побольше или история одного проекта Хобби, Электроника, Робот, Робототехника, Детство, Радиоуправление, Длиннопост

Рама ничем особо не примечательна, кроме дырок в полу и понтовой ручки, подвеска на балансирных тележках. Катки пластиковые, с нормальными подшипиниками. По 6 штук катков на сторону. Ещё сделал механизм, поднимающий весь манипулятор путем наклона того на 45 градусов. (штука крайне ненадёжная).
В таком виде робот поехал на региональный этап кубка РТК, где из 8 мест я занял пятое

А уже потом меня поперло на аморты (видимо, пересмотрел выпуски GMBN про подвеску). Делались они на основе пружинок из-под ручек. В средние тележки засовывал по одной пружине в передние и задние - по 2-3

Из маленького танчика в танчик побольше или история одного проекта Хобби, Электроника, Робот, Робототехника, Детство, Радиоуправление, Длиннопост

Средний аморт

Из маленького танчика в танчик побольше или история одного проекта Хобби, Электроника, Робот, Робототехника, Детство, Радиоуправление, Длиннопост

И попытка сделать длинноходный амортизатор в порядке бреда

Из маленького танчика в танчик побольше или история одного проекта Хобби, Электроника, Робот, Робототехника, Детство, Радиоуправление, Длиннопост

Вид сбоку.
Ходовая с амортами ехала мягко, ровно, проходимость хорошая. Но жёсткости нет. Что катки люфтят, что аморты, что сами тележки. + вся система слишком сильно отдаляет вал редуктора от центра гусеницы. Ещё, как видно на фото, я переделал манипулятор. Дешёвые сервы за 200 рублей плохо справлялись с нагрузками, поэтому позже были заменены. В таком виде я зарегистрировал робота на соревнования, которые не случились. Заявка висит, а робот уже другой.

Проблемы с жестокостью и расстоянием до центра решил переработкой ходовой. Теперь это не полноценная подвеска, а виброгаситель, хоть и имеющий приличный ход

Из маленького танчика в танчик побольше или история одного проекта Хобби, Электроника, Робот, Робототехника, Детство, Радиоуправление, Длиннопост
Из маленького танчика в танчик побольше или история одного проекта Хобби, Электроника, Робот, Робототехника, Детство, Радиоуправление, Длиннопост

Катки посадил на 2 подшипника, которые впрессовывал. Они стали больше, прочнее, жесче. Надёжность выросла, как и моя самооценка после реализации сией конструкции

Из маленького танчика в танчик побольше или история одного проекта Хобби, Электроника, Робот, Робототехника, Детство, Радиоуправление, Длиннопост
Из маленького танчика в танчик побольше или история одного проекта Хобби, Электроника, Робот, Робототехника, Детство, Радиоуправление, Длиннопост
Из маленького танчика в танчик побольше или история одного проекта Хобби, Электроника, Робот, Робототехника, Детство, Радиоуправление, Длиннопост

Чутка подредактировал манипулятор, заменил сервы, поставил вторую камеру, и теперь оно выглядит так. За кадром осталась ещё куча мелких и не очень доработок, но основу я показал. Смешное название я 2,5 года назад придумать не смог, так что пепелац зовётся гордо: Первопроходец 1,4
А сейчас мне 15, жду соревнований, товарищи

Показать полностью 15
85

Модульные линейные роботехнические актуаторы

Наткнулся на ютубе на человечка, который придумал модульные линейные актуаторы, из которых можно собирать разные виды роботов и манипуляторов. Не знаю, насколько нова и актуальна эта идея, но я прям залип на его видосиках. Если что, это не рендеры :)

Серийный vs параллельный робот:

Модульные дельта-роботы:

Motion-платформа с 6 степенями свободы:

4-осевой дельта-робот:

Показать полностью 2
50

Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления

Разработчики находятся в достаточно трудной ситуации. С одной стороны начальство требует дойную корову, которая стабильно работает как автомат калащникова и приносит денежку. C другой стороны таких дойных коров уже изобретено достаточно и в целом все они похожи друг на друга с точки зрения наличия новых уникальных механик и их развития.


На первый взгляд все кажется просто.  Вот, на самом деле, почему нельзя просто создать какую-то новую механику, даже много новых механик и улучшать их пока они не устроят? Если что, неудачные механики можно выкинуть :)


<<Для начала в игре существует только одна core-механика. И для ее реализации, поверьте, придется уйти в работу с головой. Создавать нексолько механик = создавать несколько разных игр. А это равносильно усложнению своей жизни. Вместо шлифовки одной механики вы должны распылиться на 10, а потом оставить из них только одну, а остальные выкинуть. Печально выкидывать результаты работы, правда?>>


Разработка игры с новой механикой - это примерно то же самое как работа над открытием или даже процесс поиска клада. Отлично, если вы опытный кладоискатель. Такие кладоискатели знают, что клад вряд ли спрятан в песочнице на детской площадке и не будут его там искать, тратить на это время. Потому что в свое время они уже наступали на эти грабли и ничего там не нашли. То есть существуют механики, которые заведомо неудачны / непригодны для игр. Конечно, все можно адаптировать, видоизменить, подогнать. Но все же существуют вещи которые не следует делать.


Вот рассмотрим очень простой пример такой механики на мобильной игре.

Допустим у нас есть персонаж в мобильной игре и наша задача управлять им. Мы видим персонажа сверху (2D). Как бы в сделали его управление?

Это очень щепетильный вопрос. Управление - это задача задач, которую решают в процессе разработки.

(1) Если вы будете приказывать персонажу идти за пальцем, когда он опущен на экран, то ваша рука будет перекрывать экран и вы будете смотреть на свою руку;

(2) А если персонаж будет идти в противоположную о пальца сторону, то будет ли удобно такое интвертирование управления?

(3) Если персонаж будет идти в точку, которую вы кликнули, то сможет ли он увернуться от летящей ракеты? Не перекроется ли экран рукой, когда вы смените направляение движения персонажа? Это управление точно удобно?

(4) А если просто... Джойстик и все тут! Не перекроет ли джойстик экран? Сколько экранного пространства он занимает (допустимо ли это)? Удобен ли он? Функционален? Позволяет ли он погрузиться в атмосферу игры?


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

Да, вот такими задачами и занимаются дизайнеры: сделай то, не знаю что, пойди туда, не знаю куда и чтобы все было круто и никак иначе.


Оптыный дизайнер (опытный кладоискатель) способен быстро оценить все "за" и "против" каждого из пунктов [1-4]. Новичок же, очень вероятно, будет экспериментировать и постигать тайны управления с нуля :)



Надеюсь теперь стало очевидней, что разработка новой механики - это работа.
Это работа и она не всегда увенчивается успехом. Не всегда даже опытному дизайнеру удается создать новую механику. И это часто зависит не только от дизайнера, но и от команды, от возможностей платформы для которой все разрабатывается.
Дизайнер создает тех. задание, отдает ее на реализацию дизайнерам и программистам, через какое-то время получает результат. Если результат устраивает, то это успех. Если результат не устраивает, то процесс повторяется до того момента, пока инвестору все это не надоест или пока команда не замучается "пробовать". Да, людям не нравится работать, а потом выкидывать свою работу. Особенно, когда ты старательно работаешь и не один месяц. Да, ты получаешь зарплату, но где удовлетворение от проделанной работы? Так и свихнуться недолго, если каждый день все рабочее время выкапываешь, а потом закапываешь выкопанную яму.


Вот потому-то все и идут на ухищрения. Зачем пидумывать что-то новое, когда старое хорошо работает? Возможно нужно немного изменить старое и все будет хорошо?


То, что я написал, касается многих вещей. Не только core-механики. Другие вещи могут быть подвержены этому.


//===


В процессе работы над персонажем всплыло множество моментов, которые требовали такой хорошей  и основательной проработки как со стороны дизайнера-программиста, так и со стороны дизайнера по механикам.



В процессе разаработки, было принято решение показыват игроку тело персонажа, чтобы он мог видеть себя своими глазами. Почему нет? Это добавляет атмосферы, смотрится круто.


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


С другой стороны, если персонаж стоит одной ногой на выступе обрыва, то все его тело должно как-то отреагировать на то, что вторая нога в воздухе. А если центр тела персонажа смещен в сторону обрыва, то тут уж 100% нужно это как-то отобразить на персонаже.

Мы справились с этой задачей, сбоку это выглядит так (скрины специально не содержат текстур, дабы не наспойлерить):

Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост

По части влияния смещения тела на механику движения: удалось добиться стабильности и минимизировать влияние анимации ног на перемещение игрока.


Ноги опускаются процедурно. Пришлось водключить инверсную кинематику и совместить ее с процедурной анимацией движения всего персонажа. О том как мы анимировали персонажа можно ознакомиться здесь: Процедурная анимация движения персонажа


Получилось весьма недурно :)



Руки.

C руками, как и со всем остальным, отдельная история. И она длинная.

Что требуется от рук? Чтобы они не пересекали стены, чтобы держали пушку. И чтобы это все выглядело нормально. Бывшый мой босс всегда ставил задачу примерно так. Он перечислял все требования до мельчайших и в конце добавлял: "И да, сделайте все это так, чтобы выглядело круто. Просто сделайте так, чтобы все было круто и не заставляйте меня говорить что получился отстой."


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

Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост

Подключенные первые варианты рук/манипуляторов выглядел примерно так:

Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост

Здесь один из вариантов ранних анимаций. Главное не внешний вид, а принцип работы:

Пробовали такие варианты:

Один манипулятор наехал на другой. Да, такое часто встречалось и приходилось много работать над исключением самопересечения манипуляторов.

Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост

Тесты инверсной кинематики. Чисто математика:

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

Инверсная кинематика  в чистом виде (IK):

Еще немного инверсной кинематики для тех кому понравились видео:

Здесь эксперименты того как смотрится перемещение обьекта манипуляторами (как манипуляторы ведут себя при перемещении аюстрактного куба):

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

Манипулятор мы разделили, условно, на руку (манипулятор) и пушку. Пушка выполняет свои функции, а рука дополняет пушку. Не в воздухе же ей висеть.


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

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


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


Некоторые скетчи из процесса разработки игры выкладываю здесь:

https://twitter.com/CGAleksey

https://www.instagram.com/cgaleksey/



--

Надеюсь статья понравилась и вы почерпнули из нее что-то новое.

На сегодня у меня все.

Спасибо за внимание!

Показать полностью 17 8
2130

2 года разработки - AIWM Hexapod

Два года разработки с 0, вот прям с чистого чертежа в КОМПАС 3Д. Всю электронику, прошивку, программу управления, механику, математику и дизайн - всё сам и всё с нуля. Наконец-то я сделал это - проект достиг версии 1.00. Не буду голословным, результат работы показан на видео. Надеюсь всем понравится :)

Вот тут можно узнать о ходе разработки подробнее. Там есть ссылки на различные этапы разработки.

https://habr.com/ru/post/493304/

1946

Прикладной робот Кеша для повседневных задач

Я – инженер из Новосибирска, за время карантина разработал робота-платформу для прикладных задач. Зовут его «ТанкоЖук «Иннокенний». И я прошу посильной помощи в реализации проекта.

Иннокентий – относительно доступная мощная полноприводная платформа с электроприводом и встроенным подъемником. Она рассчитана на работу с грузом до 100кг, хотя на тестах перевозила и поднимала больше двухсот. Скорость невелика – немногим более 5км/ч. Запас мощности позволяет перевозить достаточно тяжелые для человека грузы и расширять функционал навесным оборудованием, например, газонокосилкой, снегоотбрасывателем, щетками для уборки улиц.

Управляется робот смартфоном по блютус. Если один смартфон закрепить на нем, то вторым можно управлять через интернет, используя видеосвязь. Это гипотетически позволит Иннокентию работать доставщиком или уборщиком, будучи управляемым удаленно, в том числе инвалидами.

Уже ведутся работы над функцией автоматического следования за хозяином и следующим этапом – движение по заранее заданной траектории.

Планируемая розничная стоимость – не более 120т.р.

Кто может – поддержите, пожалуйста, разработку.


Сбор средств ведется на BoomStarter

https://vk.com/beetletank

95

Робот для сбора чаевых на Arduino

Привет, Пикабу! Хочу поделиться своим результатом сборки робота-вымогателя, исходники автора проекта также приложу. 


Наткнулся на проект на просторах YouTube, есть вариант сборки при наличии 3D-принтера и без. Решил собрать такого в подарок для бара.


Исходники (они есть и под видео, дублирую сюда для удобства):


Видео с оригинальным проектом

Файлы для печати (можно поддержать автора и купить коммерческую лицензию, но файлы одинаковые)

Прошивка

Вариант без печати

О моем опыте:


Я столкнулся с тем, что при печати на поверхности были сильные дефекты, недоэкструзия в частности. При том что ранее печатал куда более сложную модель и там все было отлично. Возможно мой пластик либо отсырел, либо уже старый, а может проблема и в модели, так как мои собственные и тестовые модели печатаются отлично при тех же настройках и тем же пластиком. Но базовая версия корпуса (есть изначальная и обновленная) отпечаталась уже нормально.



Было:

Робот для сбора чаевых на Arduino Arduino, Своими руками, Робот, Технологии, Программирование, Видео, Длиннопост

Стало: Не без дефектов, но поправить уже можно.

Робот для сбора чаевых на Arduino Arduino, Своими руками, Робот, Технологии, Программирование, Видео, Длиннопост

Также хочу отметить, что если вы используете китайскую версию сервопривода MG90S - внутренний вкладыш-накопитель (файл - inner_body) может не поместиться и при установке деформирует корпус. В разработке моделей для печати я пока не очень силен, для себя решил проблему уменьшив масштаб модели вкладыша на 3%. Установилось корректно, щель есть, но монеты в нее не проваливаются.

Показать полностью 2
60

Как мы Scratch-программирование в "картон" запихивали.

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


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


Но также нас просили связать игру не только со школьной программой и учебниками, но и с изучаемыми детьми на начальном этапе языками и средами программирования, а именно Scratch и Python. Все таки игра у нас нацелена на детей 7-10 лет и именно эти среды и языки были наиболее востребованы.


Можно глянуть изначальную таблицу разработки, где видно что мы прорабатывали не только их:

Как мы Scratch-программирование в "картон" запихивали. Голем, Настольные игры, Программирование, Робототехника, Обучение, Длиннопост

Разработка карт команд на языках программирования (а именно ими вы задаете программу для вашего робота-Голема) началась еще в 2017 году. Взяв за основу актуальную на тот момент версию Scratch (вторую), мы перерисовали основные команды в виде блоков среды:

Как мы Scratch-программирование в "картон" запихивали. Голем, Настольные игры, Программирование, Робототехника, Обучение, Длиннопост

А вот как выглядела эта же карта Цикла (только на 2 повтора) на Python:

Как мы Scratch-программирование в "картон" запихивали. Голем, Настольные игры, Программирование, Робототехника, Обучение, Длиннопост

Затем мы отдали PDF файлы в тестирование родителям и преподавателям .... и в итоге дети стали путаться. Они и раньше путались, но больше в положении Роботов и их ориентации на поле, но не в командах (максимум в сложных циклах и условиях с сенсорами). Сейчас же дети банально путали команды, так как некоторые приступали к игре ранее, чем осваивали среду Scratch и не спасали даже поясняющие значки.


Python команды мы решили не трогать, а вот к блокам пришлось добавить текстовое пояснение. За всеми тестами почти прошел 2018 год, неудачный запуск предзаказа в его конце, наступление 2019 года, а с ним… переход на 3-ю версию Scratch (тут ругнулся дизайнер).


Нам пришлось запасаться новой цветовой картой блоков и заново перерисовывать все карты, попутно улучшая их (и убирая котенка Scratch, так как нам не разрешили его добавить).


Результат можно увидеть на этом примере. Слева карты «классической» Битвы Големов, а справа Scratch-представление:

Как мы Scratch-программирование в "картон" запихивали. Голем, Настольные игры, Программирование, Робототехника, Обучение, Длиннопост

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


Единственное, что нам грамотно посоветовали, это увеличить контрастность цветов (сделав фон светлее и цвета блоков поярче) и увеличить размер инфографических дублирующих значков.


Новая редакция получила название "Битва Големов. Карточная Лига Пароботов" и кроме изменения карт команд, мы переработали принцип построения игрового поля, механизмы построения роботов и внесли другие изменения, что позволило нам игру уложить в психологический потолок для запуска игры «до 1000 рублей». И как и по другим нашим играм, издавать мы ее будет через краудфандинг и будем рады, если вы поддержите игру (на фото я с тестовым прототипом коробки).

Как мы Scratch-программирование в "картон" запихивали. Голем, Настольные игры, Программирование, Робототехника, Обучение, Длиннопост

P.S. Мы очень надеемся, что и эта редакция будет успешной, а Python (а скоро и Java) карты команд, как и" «классическую» теперь версию Битвы Големов мы решили сделать свободно распространяемыми и скачиваемыми.

Показать полностью 4
60

Собираем ШестиНог’а Часть 0

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

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

Железо по прежнему 1 arduino nano, 18 сервоприводов tower pro MG996R (точнее их дешевые клоны-уже писал что это никак не сопоставимо с оригиналом, но дешево) 4 аккумулятора 18650 2х2 (7.4В 4.8 Ач) несколько преобразователей напряжения. И шилд расширения шим выводов или еще одна arduino nano (не решено, но опробовано и так и так).

Обещанная терминология лап.

Собираем ШестиНог’а Часть 0 Arduino, Шестиног, Робот, Hexapod, Тригонометрия, Длиннопост

Чаще применяются 3 части Coxa, Femur, Tribia. Я назову Плечо, Предплечье и Лапа.

Про код. Чаще встречаешь в сети из легко доступного код который может совершить конкретные действия в конкретном механизме заранее известного размера, что весьма печалит ибо всегда хочется совершать и свои движения. Постараемся написать именно такую функцию которая может передвигать лапу в любом направлении по «рисунку» на координатной плоскости (по сути по описанию промежуточных точек, в массиве, с координатами X Y Z)

Про термины. Нам понадобятся функции sin(A), cos(A), tan(A).

sin(A) отношение противолежащего (относительно угла) катета к гипотенузе

cos(A) отношение прилежащего (относительно угла) катета к гипотенузе

tan(A) отношение противолежащего катета к прилежащему или синуса к косинусу угла.


Еще нам понадобится формула отыскания угла в непрямоугольном треугольнике .


Про переменные. Переменные которые мы заведем (что то будет заведено не переменными а "задефайнено"=#define эта штука запоминает первую часть описания и меняет на вторую во всем коде, не занимает место в оличии от переменных и в нее удобно поместить вещи которые не нужно менять, наши габаритные параметры лап). Первые из переменных это координаты в пространстве x, y, z, по ним зададим точки в пространстве по которым будем перемещать лапы.

Углы которые будем считать q_0 угол плеча, q_1, q_2-угол сервопривода лапы, A-угол сервопривода предплечья, F.

Еще величины использующиеся при расчете r_1 длина предплечья, r_2 длина лапы, vinos_r_1 расстояние от оси Z (оси поворота плеча, корневой сервы) до оси поворота предплечья (второго сервопривода). Дело в том что эта величина всегда перпендикулярна оси Z и она не участвует в геометрии треугольника, не учесть мы ее не можем, так как точки 1 и 2 сервопривода (плечо и предплечье) нельзя совместить в одной точке, но учесть ее оказалось не сложно.

Собираем ШестиНог’а Часть 0 Arduino, Шестиног, Робот, Hexapod, Тригонометрия, Длиннопост

Вот так я для себя отобразил углы и стороны треугольника сопоставив с размерами между осями сервоприводов

Собираем ШестиНог’а Часть 0 Arduino, Шестиног, Робот, Hexapod, Тригонометрия, Длиннопост

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


Пишем код. Все что нам нужно определить заранее (известные величины: длина предплечья, лапы, вынос) выставим это все в начале скетча


#define PI 3.1416

#define rad2deg(x) ((180.0/PI)*(x))// перевод в градусы

#define r_1 56 //мм

#define r_2 90 //мм

#define vinos_r_1 30 //мм

#define Plecho_1_pin 3

#define PredPlecho_1_pin 4

#define Lapa_1_pin 5

Заведем перменные

float x_mass[]={-40,-30,-20,-10,0,10,20,30,40}; //перемещение вперед, назад координата X

float z_mass[]={-15,-25,-40,-65,-75}; //перемещение вверх, вниз назад координата Z

float y_mass[]={90,90,90,90,90,90,90}; //расстояние от оси поворота плеча до точки касания лапой земли не будем пока что менять

Инициализируем приводы

Servo Lapa1;

Servo Plecho1;

Servo PredPlecho1;

Заводим первую функцию сетап

void setup() {

Plecho1.attach(Plecho_1_pin ); // к ардуино 3

PredPlecho1.attach(PredPlecho_1_pin); // к ардуино 4

Lapa1.attach(Lapa_1_pin); // к ардуино 5

}

void loop () {

raschet_uglov (); //функция расчета углов

ugol_per_prav (); //функция вывода углов в сервоприводы

delay(1000); //для тестов поставим задержку чтобы лихорадочно не дергаться

}

Посмотрим теорию по расчету углов треугольника.

Смотрим сюда Вики и на картинки


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


Теперь пишем сами функции расчета углов и вывода их в сервоприводы.

void raschet_uglov ()

{q_0 = atan((x_mass[0])/( y_mass[0])); // угол плеча

float L = sqrt(sq(x_mass[0])+sq(y_mass[0]));

float _V_ = L-vinos_r_1;

float _L = sqrt(sq(_V_)+sq(z_mass[0]));

float q_2 = acos(z_mass[0]/_L);

float r_1sq=sq(r_1);

float r_2sq=sq(r_2);

float _Lsq=sq(_L);

F = (r_1sq+r_2sq-_Lsq)/(2*r_1*r_2); // расчет угла смотрим вики, расчет углов треугольников

q_1 = (r_1sq-r_2sq+_Lsq)/(2*r_1*_L); // смотрим вики, расчет углов треугольников

F = acos(F); // угол лапа

q_1 = acos(q_1);

A = (rad2deg(q_2)-rad2deg(q_1));} // предплечье

Теперь выводим эти углы в сервоприводы

void ugol_per_lev ()

{ Plecho1.write(90+rad2deg(q_0));

PredPlecho1.write (A);

Lapa1.write(rad2deg(F));}


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

П.С. Прямо этот текст не проверял, но все рабочее 100% (просто выдернуто из общего скетча) пишите в комментариях если что не так.

П.П.С. В следующей части будет железо и подключение всего что связано с лапами. Чтобы не было дыма из ардуино, 3 мощных привода нужно запитывать уже от отдельного источника.

Показать полностью 2
40

WCB: 2 WAVE #1

WCB: 2 WAVE #1 Arduino, Новосибирск, Робот, Соревнования, Я у мамы инженер, Электроника, Программирование, Wi-Fi, Длиннопост

Всем привет!

С недавнего времени в Новосибирске проводятся соревнования, которые называются Wi-Fi Control Battle (WCB). Их суть заключается в том, что командам нужно из набора деталей и электронных компонентов за 20 дней собрать и запрограммировать робота с Wi-Fi, написать приложение на смартфон для управления своим роботом, после чего сразиться с другими командами в полевых битвах по нескольким дисциплинам.

WCB: 2 WAVE #1 Arduino, Новосибирск, Робот, Соревнования, Я у мамы инженер, Электроника, Программирование, Wi-Fi, Длиннопост

Оригинальный формат нашего WCB идет в разрез с традиционными форматами, которые все привыкли видеть на соревнованиях по робототехнике в Новосибирске и России, когда робота программируют на выполнение одной задачи, ставят на поле, и он ее решает (или нет). В последнем случае, после того, как робот вышел на площадку, от человека уже ничего не зависит, а ведь самые интересные сюрпризы всегда преподносит человеческий фактор. В наших соревнованиях роботы управляются операторами непосредственно во время состязаний, и это добавляет им зрелищности. В этом смысле соревнования больше походят на знаменитые Robot Wars, но мы уничтожаем не роботов, а воздушные шарики, в этом есть свои плюсы. При этом на этапе подготовки от участников требуются специальные инженерные навыки, которые до этого можно было редко где продемонстрировать, поскольку задача нетипичная для соревновательной робототехнической сферы.

WCB: 2 WAVE #1 Arduino, Новосибирск, Робот, Соревнования, Я у мамы инженер, Электроника, Программирование, Wi-Fi, Длиннопост

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

Прямо сейчас проходит вторая волна WCB, и все желающие приглашаются к голосованию за понравившийся ролик: vk.com/arduinonsk?w=wall-89723599_755%2Fall

Показать полностью 2
1962

99 онлайн-курсов для инженеров и программистов

В комментариях к прошлой записи (http://pikabu.ru/story/99_besplatnyikh_onlaynkursov_kotoryie...) многие говорили о том, что нужно больше курсов по IT. Ловите! Заботливо собраны совместно со всеми, кто в этих темах разбирается лучше меня:) Делитесь своими любимыми курсами в комментариях!


Для начинающих

1. Как выиграть соревнования по программированию: секреты чемпионов https://www.edx.org/course/how-win-coding-competitions-secre... (Университет ИТМО, язык курса: английский)

2. Информатика для втузов https://openedu.ru/course/ITMOUniversity/COMTEC/ (Университет ИТМО, язык курса: русский)

3. Основы программирования https://www.edx.org/course/programming-basics-iitbombayx-cs1... (Индийский технологический институт Бомбея, язык курса: английский)

4. История, технология и безопасность Интернета https://ru.coursera.org/learn/internet-history (Мичиганский университет, язык курса: английский)

5. Информационные технологии и программирование https://pushkininstitute.ru/school/external_courses/238 (Казанский национальный исследовательский технический университет имени А. Н. Туполева, язык курса: русский)

6. Введение в программирование (C++) https://stepik.org/363 (Высшая школа экономики, Академия Яндекса, язык курса: русский)

7. Комбинаторика для начинающих https://ru.coursera.org/learn/kombinatorika-dlya-nachinayush... (Московский физико-технический институт, язык курса: русский)


Математика и логика

8. Высшая математика. Линейная алгебра и элементы топологии https://openedu.ru/course/mipt/HIGHMATH2/ (Московский физико-технический институт, язык курса: русский)

9. Высшая математика. Алгебра: введение в теорию групп https://openedu.ru/course/spbu/MATGR/ (Санкт-Петербургский государственный университет, язык курса: русский)

10. Дискретная математика https://www.coursera.org/learn/discrete-mathematics (Шанхайский университет Джао Тонг, язык курса: английский)

11. Высшая математика. Математический анализ https://openedu.ru/course/mipt/MATAN/ (Московский физико-технический институт, язык курса: русский)

12. Курс математического анализа (первый семестр) https://openedu.ru/course/msu/CALC1/ (МГУ имени М. В. Ломоносова, язык курса: русский)

13. Математический анализ. Теория функций одной переменной https://openedu.ru/course/msu/CALCSV/ (МГУ имени М. В. Ломоносова, язык курса: русский)


Разработка ПО

14. Программирование на C# https://openedu.ru/course/urfu/CSHARP/ (Уральский федеральный университет, язык курса: русский)

15. Постановка задачи на разработку ПО https://stepik.org/1128 (Mail.Ru Group, язык курса: русский)

16. Программирование для всех (начните с Python) https://ru.coursera.org/learn/python (Мичиганский университет, язык курса: английский)

17. Функциональное программирование: базовый курс https://openedu.ru/course/ITMOUniversity/FPBC/ (Университет ИТМО, язык курса: русский)

18. Программирование на языке C++ https://stepik.org/7 (Санкт‑Петербургский академический университет, язык курса: русский)

19. Функциональное программирование на языке Haskell https://stepik.org/75 (Санкт‑Петербургский академический университет, CS центр, язык курса: русский)

20. Базы данных https://openedu.ru/course/spbu/DTBS/ (Санкт-Петербургский государственный университет, язык курса: русский)


Разработка мобильных и веб-приложений

21. Программирование и разработка веб-приложений https://openedu.ru/course/ITMOUniversity/PWADEV/ (Университет ИТМО, язык курса: русский)

22. HTML, CSS и Javascript для веб-разработчиков https://ru.coursera.org/learn/html-css-javascript-for-web-de... (Университет Джона Хопкинса, язык курса: английский)

23. Веб-программирование https://openedu.ru/course/ITMOUniversity/WEBDEV/ (Университет ИТМО, язык курса: русский)

24. Основы Веб-дизайна и Программирования https://ru.coursera.org/learn/duke-programming-web (Университет Дьюка, язык курса: английский)

25. Как создать сайт за выходные (проектно-ориентированный курс) https://ru.coursera.org/learn/how-to-create-a-website (Государственный университет штата Нью-Йорк, язык курса: английский)

26. Основы адаптивного веб-сайта; Программирование с помощью HTML, CSS и JavaScript https://ru.coursera.org/learn/website-coding (Голдсмитс, язык курса: английский)

27. Java для Android https://ru.coursera.org/learn/java-for-android (Университет Вандербильта, язык курса: английский)


Алгоритмы

28. Математическая логика и теория алгоритмов https://www.lektorium.tv/mooc2/26749 (Томский государственный университет систем управления и радиоэлектроники, язык курса: русский)

29. Алгоритмы программирования и структуры данных https://openedu.ru/course/ITMOUniversity/PADS/ (Университет ИТМО, язык курса: русский)

30. Алгоритмы: теория и практика. Методы https://stepik.org/217 (Computer Science Center, язык курса: русский)

31. Алгоритмизация вычислений https://ru.coursera.org/learn/algoritmizacija-vychislenij (Высшая школа экономики, язык курса: русский)

32. Анализ алгоритмов https://ru.coursera.org/learn/analysis-of-algorithms (Принстонский университет, язык курса: английский)

33. Алгоритмы https://www.edx.org/course/algorithms-iitbombayx-cs213-3x-0 (Индийский технологический институт Бомбея, язык курса: английский)

34. Основы алгоритмов https://ru.coursera.org/learn/algorithmic-toolbox (Калифорнийский университет в Сан-Диего, Высшая школа экономики, язык курса: английский)

35. Основы структур данных https://www.edx.org/course/foundations-data-structures-iitbo... (Индийский технологический институт Бомбея, язык курса: английский)


Компьютерная безопасность и сети

36. Протоколы мобильных и конвергентных сетей https://openedu.ru/course/ITMOUniversity/NETPRO/ (Университет ИТМО, язык курса: русский)

37. Разработка безопасных приложений для Android https://www.futurelearn.com/courses/secure-android-app-devel... (Саутгемптонский университет, язык курса: английский)

38. Инфокоммуникационные протоколы https://openedu.ru/course/ITMOUniversity/PRTFDN/ (Университет ИТМО, язык курса: русский)

39. Кибербезопасность и десять сфер её применения https://ru.coursera.org/learn/cyber-security-domain (Система университетов штата Джорджия, язык курса: английский)

40. Безопасность программного обеспечения https://ru.coursera.org/learn/software-security (Мэрилендский университет в Колледж-Парке, язык курса: английский)

41. Актуальные угрозы компьютерной безопасности https://www.lektorium.tv/mooc2/26538 (Лаборатория Касперского, язык курса: русский)

42. Информационная безопасность https://ru.coursera.org/learn/information-security-data (Лондонский университет, язык курса: английский)

43. Основы кибербезопасности https://www.edx.org/course/cybersecurity-fundamentals-ritx-c... (Технологический институт Рочестер, язык курса: английский)


Дизайн и продукт

44. Геймдизайн: по ту сторону игры http://universarium.org/course/618 (WARGAMING, язык курса: русский)

45. Геймификация https://ru.coursera.org/learn/gamification (Пенсильванский университет, язык курса: английский, русские субтитры)

46. Принципы геймдизайна https://ru.coursera.org/learn/gamedesign (Университет штата Мичиган, язык курса: английский)

47. Разработка, осуществление и анализ экспериментов https://ru.coursera.org/learn/designexperiments (Калифорнийский университет в Сан-Диего, язык курса: английский)

48. История дизайна видеоигр https://www.edx.org/course/video-game-design-history-ritx-ga... (Технологический институт Рочестер, язык курса: английский)

49. Прототипирование и дизайн https://ru.coursera.org/learn/prototyping-design (Миннесотский университет, язык курса: английский)

50. Основы графического дизайна https://ru.coursera.org/learn/fundamentals-of-graphic-design (Калифорнийский институт искусств, язык курса: английский)

51. Введение в геймдизайн https://ru.coursera.org/learn/game-design (Калифорнийский институт искусств, язык курса: английский)


Машинное обучение

52. Введение в машинное обучение https://www.coursera.org/learn/vvedenie-mashinnoe-obuchenie (Высшая школа экономики, язык курса: русский)

53. Машинное обучение https://ru.coursera.org/learn/machine-learning (Стэнфордский университет, язык курса: английский)

54. Основы машинного обучения: обучение на конкретных примерах https://ru.coursera.org/learn/ml-foundations (Вашингтонский университет, язык курса: английский)

55. Нейронные сети https://stepik.org/401 (Институт биоинформатики, язык курса: русский)

56. Машинное обучение https://www.udacity.com/course/machine-learning--ud262 (Kaggel, язык курса: английский)

57. Нейронные сети для машинного обучения https://ru.coursera.org/learn/neural-networks (Торонтский университет, язык курса: английский)

58. Вычислительная нейробиология https://ru.coursera.org/learn/computational-neuroscience (Торонтский университет, язык курса: английский)

59. Анализ данных на практике https://openedu.ru/course/mipt/ANDATA/ (Московский физико-технический институт, язык курса: русский)

60. Введение в анализ данных https://www.udacity.com/course/intro-to-data-analysis--ud170 (язык курса: английский, русские субтитры)


Теория вероятности и статистика

61. Введение в теорию вероятностей https://openedu.ru/course/mipt/PROBTH/ (Московский физико-технический институт, язык курса: русский)

62. Базовая статистика https://ru.coursera.org/learn/basic-statistics (Амстердамский университет, язык курса: английский)

63. Эконометрика https://openedu.ru/course/hse/METRIX/ (Высшая школа экономики, язык курса: русский)

64. Статистический анализ https://ru.coursera.org/learn/statistical-inference Johns (Университет Джонса Хопкинса, язык курса: английский)

65. Построение выводов по данным https://ru.coursera.org/learn/stats-for-data-analysis (Московский физико-технический институт, язык курса: русский)

66. Введение в статистику https://www.udacity.com/course/intro-to-statistics--st101 (язык курса: английский)

67. Основы статистики https://stepik.org/76 (Институт биоинформатики, язык курса: русский)

68. Статистика вывода https://www.coursera.org/learn/inferential-statistics (Амстердамский университет, язык курса: английский)


Графы

69. Теория графов https://ru.coursera.org/learn/teoriya-grafov (Московский физико-технический институт, язык курса: русский)

70. Методы и алгоритмы теории графов https://openedu.ru/course/ITMOUniversity/AGRAPH/ (Университет ИТМО, язык курса: русский)

71. Веб-графы и методы работы с ними https://openedu.ru/course/mipt/WEBGRAPH/ (Московский физико-технический институт, язык курса: русский)

72. Случайные графы https://openedu.ru/course/mipt/GRAPHS1/ (Московский физико-технический институт, язык курса: русский)

73. Теория кодирования https://openedu.ru/course/mipt/TEORCOD/ (Московский физико-технический институт, язык курса: русский)

74. Алгоритмы на графах https://ru.coursera.org/learn/algorithms-on-graphs (Калифорнийский университет в Сан-Диего, Высшая школа экономики, язык курса: английский)

75. Теория графов https://openedu.ru/course/mipt/GRAPHTH/ (Московский физико-технический институт, язык курса: русский)


Робототехника

76. Управление мехатронными и робототехническими системами https://openedu.ru/course/ITMOUniversity/ROBCTR/ (Университет ИТМО, язык курса: русский)

77. Строим роботов и другие устройства на Arduino. От светофора до 3D-принтера https://www.coursera.org/learn/roboty-arduino (Московский физико-технический институт, язык курса: русский)

78. Конструирование роботов и устройств на Arduino https://ru.coursera.org/learn/arduino (Московский физико-технический институт, язык курса: русский)

79. Линейные системы автоматического управления https://openedu.ru/course/ITMOUniversity/LINACS/ (Университет ИТМО, язык курса: русский)

80. Основы программирования роботов https://pushkininstitute.ru/school/facultative/external_cour... (Московский государственный университет приборостроения и информатики, язык курса: русский)

81. Введение в робототехнику: заставьте роботов двигаться https://www.futurelearn.com/courses/making-robots-move (Квинслендский Технологический Университет, язык курса: английский)

82. Контроль мобильных роботов https://ru.coursera.org/learn/mobile-robot (Технологический институт Джорджии, язык курса: английский)

83. Инновации в промышленности: мехатроника и робототехника https://www.coursera.org/learn/innovations-in-industry-robot... (Национальный исследовательский Томский государственный университет, язык курса: русский)


Физика и астрономия

84. Астрономия: исследуем время и пространство https://www.coursera.org/learn/astro (Аризонский университет, язык курса: английский)

85. Астрономия https://www.lektorium.tv/mooc2/26284 (Центр Педагогического Мастерства, язык курса: русский)

86. Астрофизика: от звезд до границ Вселенной https://www.coursera.org/learn/astrofizika (Санкт-Петербургский политехнический университет Петра Великого, язык курса: русский)

87. Основы астрономии https://openedu.ru/course/msu/BASTRO/ (МГУ имени М. В. Ломоносова, язык курса: русский)

88. Физика как глобальный проект https://www.coursera.org/learn/physics-global-project (Национальный исследовательский ядерный университет «МИФИ», язык курса: русский)

89. От атомов до звезд: как физика объясняет мир https://www.edx.org/course/atoms-stars-how-physics-explains-... (Национальный исследовательский ядерный университет «МИФИ», язык курса: английский, русские субтитры)

90. Звёздная астрономия https://postnauka.ru/courses/43956 (МГУ имени М.В. Ломоносова, язык курса: русский)

91. Ядерная физика https://openedu.ru/course/spbu/PHYSNU/ (Санкт-Петербургский государственный университет, язык курса: русский)

92. Элементы атомной и ядерной физики https://www.coursera.org/learn/elementy-atomnoj-i-yadernoj-f... (Национальный исследовательский ядерный университет «МИФИ», язык курса: русский)


Электроника и радиотехника

93. Современная промышленная электроника https://openedu.ru/course/spbstu/MODIEL/ (Санкт-Петербургский политехнический университет Петра Великого, язык курса: русский)

94. Введение в электронику https://www.coursera.org/learn/electronics (Технологический институт Джорджии, язык курса: английский)

95. Основы электротехники и электроники https://openedu.ru/course/urfu/ELB/ (Уральский федеральный университет, язык курса: русский)

96. Линейные электрические цепи https://openedu.ru/course/ITMOUniversity/LINCIR/ (Университет ИТМО, язык курса: русский)

97. Электронные материалы и приборы https://www.edx.org/course/electronic-materials-devices-mitx... (Массачусетский технологический институт, язык курса: английский)

98. Электрические машины https://openedu.ru/course/ITMOUniversity/ELMACH/ (Университет ИТМО, язык курса: русский)

99. Электродинамика https://openedu.ru/course/urfu/ELECD/ (Уральский федеральный университет, язык курса: русский)

Показать полностью
30

Проект "Недовольный пылесос"

Что-то меня потянуло на пылесосную тематику.

Где-то 6 лет назад мною был приобретен робот-пылесос Румба. Сначала он не сильно прижился: на съемной квартире ему мешала пылесосить не самая удачная, но единственно возможная планировка мебели. Высланный в Калининград к родителям тоже стоял голодный и пылился, потому что мама мыла пол быстрее, чем тот пачкался. Окончательно пылесос осел со мной в Дании, освоился, резво пылесосил большую комнату и кухню и провожал меня на работу, за что был назван Бобиком.


А потом, в один из долгих зимних датских вечеров мне пришла в голову идея научить Бобика разговаривать. Идея простая: пылесос едет, натыкается на препятствие и говорит недовольным голосом "понаставили тут". Или "позасирали тут", если натыкается на грязь.


Идея простая, но реализация оказалась далеко не такой тривиальной. Дальше всякие технические детали.


Собственно, имелось следующее:

1. Сам пылесос Румба 500й серии и спецификация интерфейса, через который можно было общаться с пылесосом (через серийный порт)

2. Миникомпы (ардуино, распберри пай и свифт), с которых планировалось запускать программу для контроля сенсоров и проигрывания аудио записей

3. Куча проводов, макетная плата и прочие радости юного инженера

4. Паяльник - мой любимый инструмент. Ну и олово

5. Мультиметр - тоже ничего, но ни в какое сравнение с паяльником не идет


Чего не хватало:

1. Динамик для проигрывания аудио записей. И как выяснилось позже, набор для создания аудио усилителя, потому что по умолчанию динамик слишком тихий, чтобы перекрыть 70 Дб пылесоса

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


Неделя была потрачена на поиск и закупку трансформаторов со всевозможными емкостями, проводов, резисторов, динамика и прочего барахла.

Проект "Недовольный пылесос" Инженер, Робототехника, Программирование, Видео, Длиннопост

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


Первым делом надо было разобраться с аудио усилителем. В интернете нашелся прекрасный сайт с не менее прекрасными схемами. Простите за шакальную картинку

Проект "Недовольный пылесос" Инженер, Робототехника, Программирование, Видео, Длиннопост

Заработало почти с первого раза, хоть и выглядело довольно убого. Тем не менее до 80 Дб звук дотянулся, что было уже вполне достаточно. На фотке как раз убогий вариант.

Проект "Недовольный пылесос" Инженер, Робототехника, Программирование, Видео, Длиннопост

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

Проект "Недовольный пылесос" Инженер, Робототехника, Программирование, Видео, Длиннопост

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


На этом потерялось довольно много времени, и в итоге было принято решение заставить распберри общаться не с пылесосом, а с ардуино (хорошо иметь больше двух миникомпьютеров). И тут это зараза и попалась. Ардуино слал распберри сообщение в стиле "Привет, лох, чо как там?", а распберри предлагал.. ВВЕСТИ ПАРОЛЬ. Всего-то надо было поменять настройки. Заработало. Счастье.


Ну а дальше дело техники - небольшая программка, которая считывает сенсоры и проигрывает аудио файл. Что самое смешное, упертости на то, чтобы отладить программу, мне не хватило. Сапожник без сапог. Бампер-сенсор работал как надо, а вот с грязью как-то не срослось. В итоге на видео будет пылесос, который недоволен перманентно :) И, само собой, прошу прощенья за вертикальное видео.

Если кому-то захочется повторить в домашних условиях - готова предоставить больше инструкций :)

Показать полностью 4 1
30

Знакомьтесь: шагающий робот Марти

Знакомьтесь: шагающий робот Марти. Его создали инженеры из Эдинбурга для обучения детей программированию и инженерному делу. Деньги на реализацию проекта авторы собирают на Indiegogo.

Пластиковые детали корпуса робота напечатаны на 3D-принтере. Файлы с чертежами разработчики выложили в открытый доступ, поэтому каждый может их распечатать и самостоятельно собрать робота.

Для управления роботом используется микроконтроллер ARM Cortex M4. Также можно использовать любую версию одноплатного компьютера Rapsberry Pi или Beaglebone Black и платы Arduino.

http://edurobots.ru/2016/06/shagayushhij-robot-marti/

Знакомьтесь: шагающий робот Марти Arduino, Робот, 3D печать, Программирование, Видео
Похожие посты закончились. Возможно, вас заинтересуют другие посты по тегам: