roboforum.ru

Технический форум по робототехнике.

 

Платформа для отработки алгортмов будующего пылесоса

Наше хобби — конструировать и программировать.
Демонстрация готовых роботов и устройств построенных своими руками.

Платформа для отработки алгортмов будующего пылесоса

Сообщение julbu » 07 янв 2009, 23:07

Ну вот господа, сделал свою первую тележку :) Основная задача - отработка алгоритмов движения в замкнутом пространстве, для будущего пылесоса (жена просит). Код пока премитивный, набросал на скорую руку для проверки работоспособности. Обвес незатейливый: контроллер PIC16F876А с бутлоадером, драйвер двигателей L293D, драйвер шаговика ULN2003 и расширитель портов CD4028, датчик расстояния SHARP, есть радиоприемник 433мГц (чтобы была возможность самому порулить :) ). Есть пару энкодеров - светодиод и фототранзистор - установлены на просвет гусениц, и пока не используются. Управление двигателями - ШИМ. Вот пока ломаю голову, как сделать алгоритм обхода территории....пока остановился на двухмерном масиве, на манер карты, значениями ячеек массива - весовые значения, что-то вроде 0 - нет препятствий, 1 - препятствие со строны условно ЮГ, 2 - препятствие со строны ВОСТОК, 4 - препятствие по сторонам ЮГ-ВОСТОК, ну и т.д.
Видео тут: http://video.mail.ru/mail/julbu/1/4.html
julbu
 
Сообщения: 19
Зарегистрирован: 01 дек 2008, 23:49
Откуда: СПб

Re: Платформа для отработки алгортмов будующего пылесоса

Сообщение galex1981 » 07 янв 2009, 23:13

Сейчас дистанционное у него или автономное управление? Спереди что у него вращается из стороны в сторону? Как собираешься инициализировать массив направлений?
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4360
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Платформа для отработки алгортмов будующего пылесоса

Сообщение julbu » 07 янв 2009, 23:19

На видео автономное управление. Вращается датчик расстояния Sharp (GP2D120XJ00). По массиву: думаю брать одну ячейку условно равную размерам необходимым для полного разворота бота, изначально робот условно в центре масива, памяти думаю хватит, у меня комната небольшая :D
julbu
 
Сообщения: 19
Зарегистрирован: 01 дек 2008, 23:49
Откуда: СПб

Re: Платформа для отработки алгортмов будующего пылесоса

Сообщение RoboTok » 07 янв 2009, 23:20

julbu
Сзади и спереди можно сонары поставить и если сонар засёк объект ближе 60см, запускать датчик ИК и крутить им.
А задним сонаром следить за возможным откатом назад для объезда препятствия.

И вообще классно вышло, ждём от вас рассказа :good:
Аватара пользователя
RoboTok
 
Сообщения: 1060
Зарегистрирован: 04 фев 2008, 13:18
Откуда: Москва
прог. языки: PHP

Re: Платформа для отработки алгортмов будующего пылесоса

Сообщение galex1981 » 07 янв 2009, 23:24

Да здоровская тележка :good: , очень хотелось бы схему посмотреть....
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4360
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Платформа для отработки алгортмов будующего пылесоса

Сообщение RoboTok » 07 янв 2009, 23:25

julbu
ИМХО, бот должен знать начало отсчёта и от него строить карту.
По началу устранять ошибки координат и т.д.

Добавлено спустя 1 минуту 3 секунды:
galex1981 писал(а):....

Лучше программку ;)
Аватара пользователя
RoboTok
 
Сообщения: 1060
Зарегистрирован: 04 фев 2008, 13:18
Откуда: Москва
прог. языки: PHP

Re: Платформа для отработки алгортмов будующего пылесоса

Сообщение julbu » 07 янв 2009, 23:33

Схемы нет как таковой, да там ничего интересного и нет...типовые решения.
По алгоритму управления сейчас все примитивно:
1. Едем прямо на максимальной скорости.
2. Если появилось препятствие спереди на расстоянии ближе 15 см, переключаем шим на управление от расстояния (притормаживаем). Если ближе 7 см, останавливаем двигатели и вертим "башкой".
3. Сравниваем расстояни замеренные дальномером слева и справа, где большее расстояние, туда и поворачиваем на 90 гр.
4. Если расстояние слева и справа меньше 5 см, отьезжаем на корпус назад и поворачиваем по пункту 3.
julbu
 
Сообщения: 19
Зарегистрирован: 01 дек 2008, 23:49
Откуда: СПб

Re: Платформа для отработки алгортмов будующего пылесоса

Сообщение RoboTok » 08 янв 2009, 00:39

А почему PIC ?

Добавлено спустя 2 минуты 6 секунд:
А нельзя ли датчиком крутить заранее ?
Или вообще во время езды...
И почему так медленно крутится серва ?
Аватара пользователя
RoboTok
 
Сообщения: 1060
Зарегистрирован: 04 фев 2008, 13:18
Откуда: Москва
прог. языки: PHP

Re: Платформа для отработки алгортмов будующего пылесоса

Сообщение julbu » 08 янв 2009, 01:10

Я на пиках давно программирую, атмел не изучал, не было неоходимости. Крутится медленно т.к. там шаговик с редуктором, а во время езды крутить можно и нужно....но это следующий этап.
julbu
 
Сообщения: 19
Зарегистрирован: 01 дек 2008, 23:49
Откуда: СПб

Re: Платформа для отработки алгортмов будующего пылесоса

Сообщение Сергей » 08 янв 2009, 01:48

Мне у пиков не нравилась стандартная среда разработки, просто кусок.. А так прикольные камешки, шустрые. А щас можно вообще юзать PIC32. Так что зря вы так с PIC.
Сергей
 
Сообщения: 3741
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: Платформа для отработки алгортмов будующего пылесоса

Сообщение ALHIMIK » 08 янв 2009, 10:14

А из чего ходовая часть ?
Аватара пользователя
ALHIMIK
 
Сообщения: 997
Зарегистрирован: 05 окт 2008, 14:41
Откуда: СПб
прог. языки: C,Python

Re: Платформа для отработки алгортмов будующего пылесоса

Сообщение Denis_Wozniak » 08 янв 2009, 15:05

Тележка - супер, на такой платформе можно классную вещь сделать.

Я тоже как-то думал о таком роботе, но всё закончилось на одних, но очень не плохих раздумьях...


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

*псевдо рекурсивная функция - вы представляете алгоритм заливки какого либо пространства? если да то это не вызовет у вас труда...

Даа... Понаписал...

Удачи!..
Аватара пользователя
Denis_Wozniak
 
Сообщения: 175
Зарегистрирован: 31 дек 2008, 22:47
Откуда: Подмосковье, Ногинск
прог. языки: С, С++, Ну и начинал я в Visual Basic.

Re: Платформа для отработки алгортмов будующего пылесоса

Сообщение julbu » 08 янв 2009, 15:49

Спасибо, отличное решение. Так наверное и поступлю. Обход препятствий по часовой стрелке, только лучше будет тогда сделать векторное управление, т.к. на гусеницах уже стоят фотодатчики-энкодеры.
P.S. Ходовая: редукторы из чип-дипа, колеса и траки от какого-то китайского конструктора, остальное алюминиевые уголки, латунь, фторопласт и немного токарно-фрезерных работ.
julbu
 
Сообщения: 19
Зарегистрирован: 01 дек 2008, 23:49
Откуда: СПб

Re: Платформа для отработки алгортмов будующего пылесоса

Сообщение Master » 08 янв 2009, 16:07

Главное во время работы пылесоса дверь в комнату закрыть.
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Re: Платформа для отработки алгортмов будующего пылесоса

Сообщение Denis_Wozniak » 08 янв 2009, 23:08

Да, дверь точно нужно будет закрывать... Очень интересно что из этого получится... Буду ждать.

Я тут ещё крутой алгоритм придумал - тупой Randomize, и проверка врезался или нет. :D

А можно поточнее редукторы и сонар (и цену желательно), энкодеры - самодельные? радиоприёмник откуда?
Аватара пользователя
Denis_Wozniak
 
Сообщения: 175
Зарегистрирован: 31 дек 2008, 22:47
Откуда: Подмосковье, Ногинск
прог. языки: С, С++, Ну и начинал я в Visual Basic.

След.

Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

Mail.ru counter