Парни зачем вы делаете роботов? Тем более таких?
Вы же наверняка видели на youtube или по ящику соревнования RoboCup, GrandChallenge, RoboOne и т д. Вы же видите, что то что вы создаете, не приближает вас к супертехнологиям будущего! Сейчас вы сосредотачиваетесь на том какой контроллер выбрать, как создать редуктор, как написать процедуру управляющую по UART.
Мысли вроде «ну я хочу создать себе друга, который бы ездил по комнате» просто смешны. В них нет конкретной цели. Всё кончится тем что будет доработана какая-нибудь игрушка на колесах или гусеницах, на макетной плате напаяна мега8 (16, 32 ряд продолжить) с подпрограммой – повернуть налево при ударе, отъехать с поворотом и т д. Те кто пройдут этот путь либо бросят это занятие видя бесперспективность (денег не приносит, а со временем и удовлетворения), либо примутся клепать усовершенствованную модель киберурода.
Нейронные сети, база знаний, анализ изображения, ориентирование на местности, отработка антроподобной механики – до решения таких задач руки не дойдут практически ни у кого. А ведь наверняка самые продвинутые из вас именно об этом мечтали.
Проблема в том, что объем знаний необходимый для создания хорошего робота один человек за приемлемое время осилить не может.
Ну и конечно если нет цели проекта – он умрет.
Я не разрушаю ваши мечты, просто не хочу, чтобы вы шли по ложному пути.
Я думаю всем понятно что потенциал знаний о робототехнике в нашей стране (я не о промышленной, а о той которая всем здесь интересна) колеблется где-то около нулевой отметки. И так и будет продолжаться если это не будет никому интересно кроме вас. Сейчас ваше хобби вроде филателии, т.е. слово почти все это знают, но что там происходит людям не интересно, по телевизору не обьявляют о выпуске новой серии марок, большинство людей не назовет самые крутые почтовые марки и так далее.
Если вы хотите заниматься этим всю жизнь то сразу нужно определить можно ли с помощью этого заработать деньги (ну некоторым хватит и славы). Я лично прибыльных проектов не вижу , даже для тех людей которые решили подзаработать в виде продажи каких то наборов готовых печатных плат и шасси для юных горе-роботостроителей. Да есть венчурные проекты, но эти проекты должны быть либо зрелищными, привлекать внимание людей (некоторые я перечислил вверху), либо быть ориентированны на практическое применение (космос, экстремальные условия, военные).
Я не считаю себя истиной в последней инстанции, это мое мнение, выработанное со временем (ну и некоторыми попытками). Может я говорю тривиальные вещи, ну и пусть – высказывайтесь и вы!
Собственно я предлагаю объединить усилия для создания команды роботов для участия в каком-нибудь состязании международного класса.
Причем в команде должен быть прописан некий устав, должны быть распределены роли участников на разных стадиях проекта и состязаний.
Т.е. нормальное разделение труда. Один занимается – механикой, один - электроникой, один – софтом, один - интеллектом. Могут быть и другие члены команды, все зависит от крутости проекта.
Правильная IMHO последовательность действия для хорошего проекта построения робота(ов):
1. Четко поставить цель. (например: победить на RoboCup в гуманоидной лиге).
2. Сбор требований. Скорость, производительность, механика, точность, алгоритмы, телеметрия, сбор данных и т д. Источники для требований могут быть правила соревнований, видео с Интернета, участие в соревнованиях, форумы, но только не книги на тему «Как сделать робота самому».
3. Проектирование. Рисование эскиза, расчет механики, выбор платформы, выбор инструментария разработки, проектирование встроенного ПО.
4. Разработка. Если у вас не хватает знаний в механике, в цифровой или аналоговой электронике, разработке встроенного ПО - подумайте может привлечь ещё людей в проект. Используйте по возможности разделение труда.
5. Тестирование и отладка. После комнатных испытаний, для данного вида продукции сделать вывод о том годится она к применению или нет можно сделать только не иначе как использовать её по заданной цели.
Ошибки на мой взгляд которые не стоит допускать юным роботостроителям:
1. Не делайте вручную печатные платы!
Если есть деньги заказывайте у фирм (в конце концов 100$ сейчас не такие большие деньги). Если нет, постарайтесь найти заводской набор, который бы вас устраивал.
2. Не делайте вручную те механизмы которые можно купить (редукторы, сервоприводы).
3. Если вы начинающий - не изучайте микроконтроллеры AVR (кроме AVR32).
Выбирайте ARM7, ARM9, ARM11 эта архитектура сейчас доминирует на рынке и будет доминировать ещё долго. И по возможностям, цене (ARM7) и производительности эта линейка процессоров гораздо лучше.
4. Не начинайте разработку без четко поставленной цели!
5. Потратьтесь на необходимый инструментарий отладки, если разрабатываете электроннику то Осцилограф обязателен, Если встроенный софт то JTAG - вы сэкономите время в разы! я повторяю в разы! то над чем вы мучались год с этими инструментами вы сделаете за квартал!
6. Выбирайте платформу под которую существуют нормальные инструменты разработки (хорошая IDE, поддержка отладчиков, объектно-ориентированные языки, нормальные компиляторы, Board Supporting Package и Toolchains для linux платформ). Причем постарайтесь скачать весь софт до покупки железа (ну там в пиринговых сетях поищите).
7. Не пытайтесь найти хорошую литературу в наших магазинах по этой тематике, и не ждите что её переведут. Ищите PDF файлы в пиринговых сетях, по электронике, программированию, искуственному интеллекту, робототехнике на английском языка. Изучайте микроконтроллеры по Datasheet'ам а не по нашей переведенной литературе.
8. Опять же по возможности покупайте все те компоненты, которые можно купить. Я понимаю что здесь мало миллионеров, но время - деньги. То что точно не стоит делать самому, я уже описал выше.
Со временем я могу расширить этот список, сейчас просто больше ничего не придумалось.