![]() |
|
![]() |
#1 |
Junior Member
Регистрация: 27.10.2014
Сообщений: 26
Вес репутации: 0 ![]() |
![]()
Всем здравствовать! Решил я построить свою тележку, в дальнейшем ее превратить в пылесос. Начал я с ориентации в пространстве. Первое что поставило в тупик это поведение датчика дальномера HC-SR04. На готовом роботе все выглядело не плохо, я его заставил ездить и объезжать препятствия поставив ему 8 возможных условий 3 угла лево право и спереди он сканирует на дистанцию менее 20 см и поворачивает в зависимости от сложившейся ситуации. т.к угла 3 состояния у каждого угла 2 (больше или меньше) то условий 2^3 степени=8. написал алгоритм, все работает.
Стоило мне попробовать расширить задачу как полезли неутешительные цифры датчик постоянно "врет" и только благодаря нескольким измерениям робот не врезается (как я догадываюсь). Найденная на этом сайте информация, в частности библиотека CyberLib имеет внутри себя инструмент фильрации значений, проводя несколько измерений (по умолчанию 5) и сортируя их по совпадению. Это изменило ситуацию и я начал думать как сделать полноценную ориентацию в пространстве Мои изыскания по датчику http://cyber-place.ru/showpost.php?p=17611&postcount=15 Почитав далее о том как можно решить мою задачу наткнулся на это http://robo.com.ua/projects/robotai/r_ai_2_5.html Потом узнал что эту задачу решал еще Эйлер, вспомнил институтские выкладки по физике и математике, В общем нам нужно решать задачу при помощи графов. Нашел несколько описаний алгоритма и думаю скоро будут примеры кодов...... Последний раз редактировалось kulverstukas; 02.11.2014 в 16:51. |
![]() |
![]() |
![]() |
#2 |
Junior Member
Регистрация: 27.10.2014
Сообщений: 26
Вес репутации: 0 ![]() |
![]()
Обмусоливаю одну идею работы робота на "середине площади" то есть когда нужно её заполнение по максимуму . Идея такова. Есть некая площадь которая разбивается на квадраты (допустим 50х50 см) на это хватит памяти. например массив из 16 integer (int) чисел. единичка в каждом из этих чисел побитно будет указывать что квадрат заполнен "убран" и того 16х16 50 сантиметровых квадратов (8х8 метров площади). внутри квадрата есть свои переменные следящие за заполнением самого квадрата.
Сегодня сам алгоритм у меня получился. У робота есть кнопка выбора режимов, он сигнализирует повороты (правый, левый) разными тонами (нужно было для настройки) и он чередует квадраты левые с правыми. Теперь буду заниматься алгоритмом переезда робота из одного квадрата в другой (например из первого в пятый потом из пятого во второй). Видел как то видео как робот шустро ездит по картонным закоулкам и гасит свет (какие то соревнования) но в сети такого не нашел, может кто подскажет? Для уборки важность этой задачи в том чтобы стать в нужное положение начала заполнения ячейки, не убирать там где уже убрано. П.С. Дистанцию к алгоритму не подключил пока (то есть езда по квадратам в открытом пространстве без сканирования), и так с алгоритмом возился долго. |
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|