Оглавление:
- Шаг 1: материалы
- Шаг 2: Подключение
- Шаг 3: Логическое создание кода MATLAB для использования датчиков
- Шаг 4: Тестирование кода и робота
- Шаг 5: Распознавание ошибки
- Шаг 6: Заключение
Видео: Roomba Parking Pal: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
В этом проекте используется программируемая Roomba iRobot Create, MATLAB r2018a и MATLAB mobile. Используя эти три средства и наши знания кодирования, мы запрограммировали iRobot Create на интерпретацию цветов и использование встроенных датчиков для выполнения задач. Этот проект зависит от связи Raspberry Pi и MATLAB для выполнения этих задач.
Шаг 1: материалы
1. iRobot Create Robot
2. MATLAB r2018a
3. Raspberry Pi
4. Модуль камеры
5. Стойка стабилизатора камеры с трехмерной печатью.
6. Смартфон с установленным MATLAB Mobile.
7. Ноутбук / компьютер с установленным MATLAB.
Шаг 2: Подключение
Этот шаг касается подключения Raspberry Pi к роботу, во-вторых, подключения робота к вашему компьютеру и подключения смартфона к компьютеру.
Самая простая часть этого процесса - подключить Raspberry Pi к вашему роботу, поскольку Raspberry Pi крепится к верхней части робота. От робота идет шнур, и все, что вам нужно сделать, это подключить к Raspberry Pi сбоку.
Следующим шагом является подключение робота к вашему компьютеру, чтобы вы могли запускать команды, которые должен выполнять робот. Первое, что вам нужно сделать, это подключить компьютер к беспроводной сети, которую создает Roomba. Теперь рекомендуется использовать значок Set Path в MATLAB, чтобы установить путь, чтобы вы могли использовать функции на панели инструментов Roomba из MATLAB. Каждый раз, когда вы начинаете и заканчиваете использование робота, вы должны выполнить жесткую перезагрузку робота «Приветствие двумя пальцами», что означает, что вы удерживаете кнопки док-станции и точки в течение десяти секунд, пока не погаснет свет, указывающий на то, что нужно отпустить. Вы успешно выполнили этот аппаратный сброс, если слышите, как робот играет короткую шкалу. Затем вы должны подключиться к roomba, используя строку кода типа «r = roomba (x)», где «x» - это номер, назначенный вашему роботу.
Наконец, вам необходимо загрузить MATLAB mobile на любое мобильное устройство, которое вы будете использовать для этого проекта, и это приложение доступно как на устройствах Android, так и на устройствах Apple. После установки приложения вам нужно будет войти в систему, используя свои учетные данные. Затем вы должны подключить это устройство к своему компьютеру, используя вкладку с надписью «Еще» -> затем нажмите «Настройки» -> затем нажмите «Добавить компьютер». Появится экран, показанный на рисунках выше. Следующий шаг, который вы должны выполнить, - это просто подключить и забрать запрашиваемую информацию. После успешного подключения вы сможете вызывать функции, которые вы определяете на своем компьютере, на своем телефоне для управления роботом.
Шаг 3: Логическое создание кода MATLAB для использования датчиков
Код будет проще всего создать, когда большая его часть находится внутри цикла while, так что roomba может постоянно обновлять допустимые значения, на которые он смотрит. Если есть ошибка, MATLAB отобразит ошибку и место ее появления в коде, что сделает устранение неполадок относительно простым.
Разработанный в MATLAB r2018a, этот код использует стандартные наборы инструментов, набор инструментов iRobot Create, а также мобильный набор инструментов MATLAB. Roomba, используемый в этом примере, обозначен как 26, а r = roomba (26) нужно запустить только один раз, чтобы полностью связаться с roomba.
Код:
функция parkassist (x), если x == 1
r = roomba (26)% подключается к roomba
пока правда
r.setDriveVelocity (.05,.05)% устанавливает меньшую скорость движения Roomba.
bump = r.getBumpers% получает данные от датчиков удара
cliff = r.getCliffSensors% получает данные от датчиков обрыва
light = r.getLightBumpers% получает данные от датчиков светового удара
img = r.getImage;% считывает камеру робота
red_mean = mean (mean (img (:,:, 1)))% читает среднее количество красных пикселей
green_mean = mean (mean (img (:,:, 2)))% читает среднее количество зеленых пикселей
blue_mean = mean (mean (img (:,:, 3)))% читает среднее количество синих пикселей
если bump.front == 1% считывает передние датчики неровностей
r.stop% останавливает roomba
msgbox ('Path Obscured!', 'Parking Assistant Message')% отображает сообщение о том, что путь скрыт break% завершает цикл
elseif green_mean> 150
r.stop% останавливает roomba
cont = questdlg ('Продолжить?', 'Путь завершен')% отображает окно вопроса с просьбой продолжить
if cont == 'Да'
parkassist (1)% перезапускает код
еще
конец
break% завершает цикл
elseif red_mean> 140
r.turnAngle (45)% поворачивает румбу на 45 градусов
r.timeStart% запускает счетчик времени
пока правда
r.setDriveVelocity (.05,.05)% устанавливает скорость румбы
time = r.timeGet% присваивает время переменной
bump = r.getBumpers% получает данные от датчиков удара
cliff = r.getCliffSensors% получает данные от датчиков обрыва
light = r.getLightBumpers% получает данные от датчиков светового удара
img = r.getImage;% считывает камеру робота
red_mean = mean (mean (img (:,:, 1)))% читает среднее количество красных пикселей
green_mean = mean (mean (img (:,:, 2)))% читает среднее количество зеленых пикселей
blue_mean = mean (mean (img (:,:, 3)))% читает среднее количество синих пикселей
если blue_mean> 120
r.moveDistance (-0.01)% перемещает Roomba на заданное расстояние назад. song Play (r, 'T400, C, D, E, F, G, A, B, C ^', 'true')% воспроизводит возрастающую музыкальную гамму
msgbox ('Water Found!', 'Parking Assistant Message')% отображает сообщение о том, что вода была обнаружена. r.turnAngle (-80)% поворачивает roomba на 80 градусов
break% завершает текущий цикл
elseif light.rightFront> 25 || light.leftFront> 25% считывает датчики светового удара
r.moveDistance (-0.01)% перемещает комнатку назад на заданное расстояние
r.turnAngle (-35)% поворачивает румбу на 35 градусов
break% завершает текущий цикл
elseif cliff.rightFront <2500 && cliff.leftFront <2500% считывает оба датчика обрыва
r.moveDistance (-0.1)% перемещает комнатку назад на заданное расстояние
r.turnAngle (-80)% поворачивает Roomba на 80 градусов
break% завершает текущий цикл
иначе время> = 3
r.stop% останавливает roomba
Contin = questdlg ('Станция свободна, продолжить?', 'Сообщение помощника по парковке')% спрашивает, должна ли Roomba продолжать работу, если contin == 'Да'
r.turnAngle (-90)% поворачивает румбу на 90 градусов
parkassist (1)% перезапускает функцию
еще
r.stop% останавливает Roomba
конец
еще
конец
конец
elseif cliff.rightFront <2500 && cliff.leftFront <2500% считывает оба датчика обрыва
r.moveDistance (-0.1)% перемещает комнатку назад на заданное расстояние
r.turnAngle (-90)% поворачивает roomba на 90 градусов
elseif cliff.rightFront <2500% считывает правый датчик обрыва
r.turnAngle (-5)% слегка поворачивает румбу в направлении, противоположном датчику обрыва.
elseif cliff.leftFront <2500% считывает левый датчик обрыва
r.turnAngle (5)% слегка поворачивает румбу в направлении, противоположном датчику обрыва.
еще
конец
конец
конец
Шаг 4: Тестирование кода и робота
После разработки кода следующим шагом было тестирование кода и робота. Поскольку в коде можно сделать множество различных настроек, таких как угол поворота робота, скорость его движения и пороговые значения для каждого цвета, лучший способ определить эти значения для вашего робота - это проверить их и меняйте по мере продвижения. Для каждого рабочего дня мы постоянно меняли эти значения, поскольку некоторые из них зависят от среды, в которой работает ваш робот. Лучший способ, который мы нашли, - это поместить Roomba на тот путь, по которому вы хотите, чтобы он шел, и чтобы достаточно высокий барьер, чтобы камера не могла определять цвета, которые вам не нужны. Следующим шагом является запуск и отображение нужных вам цветов, когда вы хотите, чтобы он выполнил эту задачу. На ходу, если вы видите проблему, лучше всего вдавить передний бампер, заставив его остановиться, а затем изменить параметр, с которым у вас возникли проблемы.
Шаг 5: Распознавание ошибки
После завершения каждого завершенного проекта всегда есть источники ошибок. Для нас мы столкнулись с ошибкой из-за того простого факта, что робот не точно определяет угол, на который он поворачивается, поэтому, если вы скажете ему повернуть на 45 градусов, он будет неточным. Еще одним источником ошибок для нас было то, что иногда робот выходит из строя, и вам нужно выполнить его полный сброс, прежде чем он снова заработает. Основным последним источником ошибок для нас было то, что один и тот же код не будет иметь одинаковый эффект на разных роботов, поэтому вам, возможно, придется набраться терпения и соответствующим образом настроить.
Шаг 6: Заключение
Теперь у вас есть все инструменты, чтобы поиграть с Roomba, а это значит, что вы можете манипулировать кодом так, как хотите, для достижения желаемых целей. Это должно быть лучшая часть вашего дня, так что веселитесь и управляйте автомобилем безопасно!
Рекомендуемые:
Превращение Roomba в марсоход: 5 шагов
Превращение вашего Roomba в марсоход:
Roomba Bot the Bulider: 5 шагов (с изображениями)
Roomba Bot the Bulider: Bot the Builder - это румба с «грабберами». прикрепленный к передней части сможет перемещать предметы. Код с ним настроен на запись первого движения с помощью графического интерфейса пользователя, которым вы можете управлять одним щелчком мыши. После
MATLAB Controlled Roomba: 5 шагов
MATLAB Controlled Roomba: целью этого проекта является использование MATLAB, а также модифицированного программируемого робота iRobot. Наша группа объединила наши навыки кодирования, чтобы создать сценарий MATLAB, который использует многие функции iRobot, включая датчики обрыва, датчик бампера
MIDI Pod-Pal: 4 шага
MIDI Pod-Pal: *** ОБНОВЛЕНИЕ 22/4/21 г. ****** Я добавил полную схему, показывающую всю проводку, чтобы помочь в строительстве. *** Я не буду вдаваться в смехотворное количество Здесь, в части сборки, я хотел показать еще один пример создания MI на базе Arduino
От Roomba до вездехода всего за 5 шагов !: 5 шагов
От Roomba до Rover всего за 5 шагов! Роботы Roomba - это веселый и простой способ окунуться в мир робототехники. В этом руководстве мы подробно расскажем, как превратить простой Roomba в управляемый ровер, который одновременно анализирует свое окружение. Список деталей1. MATLAB2.) Roomb