Оглавление:
- Шаг 1: Необходимые детали
- Шаг 2: файлы и конфигурация камеры
- Шаг 3: Начальное тестирование Roomba
- Шаг 4: Пример кода MATLAB
Видео: Roomba, помогающий космонавту: 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
Этот проект выполнен с использованием Raspberry Pi 3 на борту iRobot Create Version 2. MATLAB используется для программирования робота, чтобы он следовал определенным инструкциям, используя его датчики и камеру. Датчики и камеры используются для выполнения определенных задач, которые будут следовать за космонавтом и предоставить ему / ей возможность связаться с его / ее домашней базой, если что-то пойдет не так.
Шаг 1: Необходимые детали
1. iRobot Create Version 2
IRobot Create - самая важная часть этого проекта, поскольку он программируется и может стать отличным представителем настоящего марсохода, который следует за астронавтами и помогает им в будущем
2. Raspberry Pi 3
Raspberry Pi использовался в качестве программируемого устройства для этого проекта. Код разработан для Pi, а прилагаемая версия Pi - 3 (модель B). Можно использовать и другие программируемые платы, такие как Arduino, однако для Arduino и большинства других плат потребуется кодирование, отличное от описанного в другом шаге
3. Модуль камеры Raspberry Pi
Единственное внешнее подключение к Raspberry Pi, необходимое для этого проекта, - это модуль камеры. Модуль камеры является неотъемлемой частью этого проекта, поскольку Roomba будет выполнять задачи только в зависимости от того, что он видит в камере
4. MATLAB 2018a
Вторая самая последняя версия MATLAB, 2018a, использовалась для кодирования, задействованного в этой настройке. Вероятно, что многие другие версии MATLAB будут работать с этим, поскольку программирование roomba существует уже некоторое время
Шаг 2: файлы и конфигурация камеры
1. Подключение Raspberry Pi и камеры к Roomba
- Pi может подключаться к iRobot напрямую через микро-USB. Это все, что нужно, чтобы его можно было использовать. Тем не менее, рекомендуется надежно разместить его на Roomba, как показано на рисунках в презентации.
- Камера имеет прямое соединение с Raspberry Pi, и настоятельно рекомендуется приобрести или изготовить что-нибудь, чтобы держать камеру прямо вверх. В камере нет смысла, если ее нельзя удерживать на месте, чтобы показать то, что видит Roomba.
2. Файлы
- После того, как все настроено и подключено, убедитесь, что робот перезагружен и готов к работе, удерживая кнопки «Spot» и «Dock» в течение 10 секунд вместе.
- Здесь в первую очередь нужен MATLAB. Сначала необходимо установить файлы для Roomba, и все, что нужно для этих файлов, - это запустить код, указанный по этой ссылке:
- https://ef.engr.utk.edu/ef230-2017-08//projects/ro…
Шаг 3: Начальное тестирование Roomba
Чтобы убедиться, что Roomba работает, необходимо выполнить множество первоначальных проверок.
1. Убедитесь, что вы подключены к той же сети Wi-Fi, что и Roomba. Без этого вы никогда не подключитесь через MATLAB.
2. Узнайте, какой номер назначен вашей Roomba, чтобы вы могли напрямую подключиться к выбранной вами Roomba. Например, если номер вашего roomba равен 30, вы должны подключиться к нему, набрав roomba (30) в командном окне в MATLAB.
3. Roomba можно управлять с помощью структур в MATLAB. Например, если вы установите в своем коде для roomba (30) переменную 'r', робота можно будет переместить вперед с помощью команды r.moveDistance (0.2, 0.1).
4. Roomba может передавать множество различных команд, и их можно увидеть, набрав «doc roomba» в командном окне.
5. Все датчики освещенности, неровностей и обрывов могут быть считаны с помощью команд, представленных в 'doc roomba', но способ иметь постоянное аккуратное меню для просмотра данных датчиков можно увидеть с помощью 'r.testSensors '.
6. После тестирования всего этого программное обеспечение робота для сбора изображений можно использовать для чтения и просмотра сделанных снимков. Базовым кодом для этого будет img = r.getImage и imshow (img);.
7. Значения RGB изображения можно найти с помощью кодов red_mean = mean (mean (img (:,:, 1)));
green_mean = среднее (среднее (img (:,:, 2))); и blue_mean = mean (mean (img (:,:, 3)));.
Шаг 4: Пример кода MATLAB
На этом этапе вы готовы использовать датчики и программное обеспечение для создания изображений, чтобы создать свой собственный полет на прототипе марсохода с помощниками человека. Наш пример - следовать за космонавтом, отслеживая белый цвет и двигаясь к нему. Робот подаст звуковой сигнал, если его датчики считывают высокие значения, чтобы астронавт мог сбросить робота, если он застрял, или пойти и поднять его и сбросить, если он застрял на скале. Однако он считывает эти ошибки только до тех пор, пока видит белый цвет. Не видя белого цвета, робот войдет в режим ошибки. Он запрограммирован на отправку двух разных типов электронных писем обратно на домашнюю базу в зависимости от того, что он видит. Если он видит цвет кожи космонавта, это явно нехорошо, поэтому он предупредит домашнюю базу, если у космонавта видна кожа с неисправностью костюма. Другое сообщение подготовлено, если космонавт просто исчезнет из поля зрения. Если на камерах не отображается белый цвет или цвет кожи, робот вращается и отправляет другое, но другое электронное письмо. Изображения, на которых Roomba не видит астронавта, будут отправлены вместе с сообщением в электронных письмах. Код нашего проекта показан ниже:
для i = 1:.1: 3 img = r.getImage; изображение (img) red_mean = среднее (среднее (img (:,:, 1))); green_mean = среднее (среднее (img (:,:, 2))); blue_mean = среднее (среднее (img (:,:, 3))); если red_mean> 110 && red_mean 110 && blue_mean 110 && green_mean0 || bump.left> 0 || bump.front> 0 r.beep () r.beep () r.beep () r.stop elseif cliff.left <10 || cliff.leftFront <10 || cliff.rightFront <10 || cliff.right700 || light.leftFront> 700 || light.leftCenter> 700 || light.rightCenter> 700 || light.rightFront> 700 || light.right> 700 r.beep () r.beep () r.beep () r.beep () r.beep () r.stop else для i = 1: 2 r.moveDistance (0.2, 0.1) r. setDriveVelocity (.3,.2) r.stop end end end end if green_mean <35 && blue_mean <35% отображается цвет кожи (необходимо отрегулировать в зависимости от цвета кожи космонавта) r.beep (); r.beep (); r.beep (); mail = '[email protected]'; % отправляет электронное письмо, подтверждающее, что костюм отключен psswd = 'yeah'; host = 'smtp.gmail.com'; порт = '465'; emailto = '[email protected]'; m_subject = 'тема'; m_text = 'тест'; setpref ('Интернет', 'E_mail', почта); setpref ('Интернет', 'SMTP_Server', хост); setpref ('Интернет', 'SMTP_Username', почта); setpref ('Интернет', 'SMTP_Password', psswd); props = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', почта); props.setProperty ('mail.smtp.host', хост); props.setProperty ('mail.smtp.port', порт); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'истина'); props.setProperty ('mail.smtp.auth', 'истина'); props.setProperty ('mail.smtp.socketFactory.port', порт); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'ложь'); sendmail (emailto, «Помогите!», «Снята форма космонавтов!», img); конец, если red_mean 135 || green_mean 135 || blue_mean 135 для j = 1: 2%, если белый цвет не может быть найден роботом r.turnAngle (360) mail = '[email protected]'; psswd = 'да'; host = 'smtp.gmail.com'; порт = '465'; emailto = '[email protected]'; m_subject = 'тема'; m_text = 'тест'; setpref ('Интернет', 'E_mail', почта); setpref ('Интернет', 'SMTP_Server', хост); setpref ('Интернет', 'SMTP_Username', почта); setpref ('Интернет', 'SMTP_Password', psswd); props = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', почта); props.setProperty ('mail.smtp.host', хост); props.setProperty ('mail.smtp.port', порт); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'истина'); props.setProperty ('mail.smtp.auth', 'истина'); props.setProperty ('mail.smtp.socketFactory.port', порт); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'ложь'); sendmail (emailto, «Помогите!», «Не удалось найти космонавта!», img); r.stop конец конец конец
Очевидно, здесь грязно, но после копирования его следует отполировать. Пароли и адреса электронной почты для этого, очевидно, должны быть предоставлены теми, кто занимается этим проектом.
Однако наш пример - лишь один из многих способов поиграть с этим роботом, чтобы он подошел всем. Есть много разных вещей, которые вы можете подстроить под себя.
Рекомендуемые:
Mars Roomba Project UTK: 4 шага
Mars Roomba Project UTK: ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: ЭТО БУДЕТ РАБОТАТЬ, ТОЛЬКО ЕСЛИ КОМНАТА УСТАНОВЛЕНА ОЧЕНЬ ОПРЕДЕЛЕННЫМ СПОСОБОМ, ЭТА ИНСТРУКЦИЯ СОЗДАНА ДЛЯ УНИВЕРСИТЕТА УЧАЩИХСЯ ТЕННЕССИ И ФАКУЛЬТЕТА И ПРЕДНАЗНАЧЕНА ДЛЯ ИСПОЛЬЗОВАНИЯ. написано и с
Roomba Explorer: 4 шага
Roomba Explorer: используя MATLAB и Create2 Robot от iRobot, этот проект будет исследовать различные области неизвестного местоположения. Мы использовали датчики робота, чтобы помочь маневрировать на опасной местности. Получая фотографии и видеопоток с Raspberry Pi, который
Localino отслеживает робот Roomba IRobot, отображает окружающую среду и позволяет контролировать: 4 шага
Localino отслеживает Roomba IRobot, наносит на карту среду и позволяет контролировать: в этом руководстве объясняется процедура отслеживания и управления Roomba iRobot в помещении с помощью системы локализации Localino для помещений, моста WiFi-UART и приложения для ПК. Подробное объяснение этой инструкции, объясняющее HIL-control
ROOMBA под управлением ARDUINO YUN через приложение Wi-Fi от STEFANO DALL'OLIO: 4 шага (с изображениями)
ROOMBA Управляется ARDUINO YUN Через приложение Wi-Fi от STEFANO DALL'OLIO: В этом руководстве я делюсь кодом для подключения ARDUINO YUN к Roomba, чтобы управлять Roomba через Wi-Fi. Код и приложение полностью созданы и разработаны мной Стефано Далл ' Olio.Мой Roomba - Roomba 620, но вы можете использовать тот же код для других Roomb
Roomba с MATLAB: 4 шага (с изображениями)
Roomba с MATLAB: в этом проекте используется MATLAB и программируемый робот iRobot Create2. Проверяя наши знания MATLAB, мы можем запрограммировать Create2 для интерпретации изображений и обнаружения сигналов. Функциональность робота зависит в основном от