Пакет SDK для .NET (бета-версия)

Добро пожаловать обратно!

В Части 1 этой серии мы опубликовали список общих навыков и приложений для роботов, которые вы можете изучить. Часть 2 продолжается сбором ссылок на навыки и образцы кода, поддерживаемые организацией Misty Robotics. Изучаете ли вы использование Misty REST API, JavaScript SDK или .NET SDK (бета-версия), эти примеры — отличное место для начала работы.

Мы размещаем эти образцы на GitHub в репозиториях JavaScript-SDK, .NET-SDK и REST-API, а также в репозиториях отдельных навыков в организации MistySampleSkills. Когда вы найдете что-то, что можно попробовать, вы можете загрузить код, перейдя на верхний уровень репозитория GitHub и нажав кнопку Клонировать или загрузить.

Краткое примечание о категориях ниже. Большинство примеров REST API запускаются в вашем веб-браузере (мы используем теги сценария HTML для встраивания клиентского кода для подписки на соединения Misty WebSocket и выдачи запросов REST при загрузке страницы). Примеры, в которых используется SDK Misty для JavaScript, требуют, чтобы вы загружали файлы навыков в Misty через веб-страницу Skill Runner, а если вы используете SDK для .NET, вы можете предпочесть развернуть свой код в Misty непосредственно из Visual Studio. Подробнее о различных способах кодирования Misty можно прочитать в документации для разработчиков.

Мы делаем все возможное, чтобы поддерживать эти образцы в актуальном состоянии. Пожалуйста, создайте задачу на GitHub, если у вас возникнут проблемы!

ОТДЫХА API

В этом разделе рассказывается о навыках и примерах кода, созданных с помощью Misty’s JavaScript SDK. Вы можете запустить большинство этих навыков, не внося никаких изменений в файлы навыков, но некоторые примеры требуют, чтобы вы завершили процесс тренировки лица и обновили соответствующие метки в коде навыка, прежде чем навык начнет работать. Мы загрузили файлы навыков с комментариями к коду, чтобы помочь разработчикам, которые плохо знакомы с платформой, и обычно вы можете найти дополнительную информацию о примере кода в связанном с ним файле README.

.NET SDK от Misty все еще находится на ранней стадии разработки, и мы ожидаем, что список примеров C# со временем будет расти. В настоящее время вы можете найти набор поддерживаемых Misty навыков .NET в репозитории .NET-SDK на GitHub. В этом репозитории есть пример проекта C# под названием IntroSkillsTask, который включает библиотеку навыков C#, которые вы можете изучить, чтобы узнать о пакете Misty для .NET SDK.

«audioLocalization» — показывает, как использовать события локализации звука. Мисти начинает записывать и локализовать звук, а также распечатывает степень поступления речи для отладки слушателей. (Эти сообщения отображаются в консоли JavaScript на веб-странице Skill Runner).
«bumpSensor» — показывает, как использовать события датчика удара. Мисти воспроизводит разные системные аудиофайлы по умолчанию, когда вы нажимаете ее датчики удара.
«Датчики ударов» (учебник) — код пошагового руководства, в котором вы узнаете, как с нуля освоить навык работы с датчиками ударов. (Как и в других примерах bumpSensor в этом списке, Misty воспроизводит разные звуки при нажатии на каждый датчик удара.) Вы можете прочитать руководство «в документации для разработчиков».
• «capTouch» — показывает, как использовать события емкостного сенсорного датчика. Коснитесь разных частей головы Мисти, чтобы услышать, как робот издает разные звуки.
• «Соответствие» — этот навык позволяет эффективно использовать емкостные сенсорные события. Когда он работает, Мисти перестает включать моторы шеи, когда вы касаетесь ее головы, поэтому вы можете вручную поместить ее голову в любое удобное для вас положение. Когда вы отпускаете датчики, Мисти снова включает моторы шеи и возвращает голову в исходное положение.
«driveCircle» и «driveSquare» — показывает, как использовать команды Мисти DriveArc и DriveHeading для вождения Мисти по кругу или квадрату. Эти команды используют данные инерциального измерительного блока Мисти (IMU) для перемещения робота в нужном направлении. Измените пример кода, чтобы настроить скорость передвижения Мисти или размер формы.
«Движение головы и рук» (учебное пособие) — пример кода для учебного пособия. который учит, как использовать различные команды движения головы и рук. Вы можете прочитать полное руководство в «документации для разработчиков».
• «Hello World» (учебник) — пример кода для серии руководств Misty’s Hello World. Когда он бежит, Мисти двигает головой и руками, воспроизводит звуки, дышит своим светодиодом, вращается на своих гусеницах и начинает узнавать лица. Вам нужно научить Мисти узнавать вас и обновить код навыка, указав метку, связанную с вашим лицом, прежде чем запускать этот навык. Полную серию руководств читайте в «Документации для разработчиков».
«EmoteCapTouchLED» — базовый пример, показывающий, как запрограммировать Мисти, чтобы она выражала свою индивидуальность. Мисти воспроизводит разные звуки и меняет выражение на своем дисплее, когда вы касаетесь ее головы и подбородка. (Вам потребуется настроить код навыка, чтобы выбрать звуки, которые Мисти воспроизводит при активации различных емкостных сенсорных датчиков.)
«externalRequest_getAudio» — показывает, как получить данные из Интернета для использования. в ваших местных навыках. Этот навык позволяет Мисти загрузить аудиофайл с URL-адреса в Интернете и воспроизвести его через свои динамики.
• «externalRequest_getData» — показывает, как использовать сторонние REST API в своих навыках. В этом примере Мисти получает информацию о местной погоде из Weatherstack API и выводит текущую погоду в консоль JavaScript на веб-странице Skill Runner. «Ознакомьтесь с учебным пособием» для пошагового руководства.
«Распознавание лиц» и «Распознавание лиц» — показывает, как использовать распознавание лиц и события узнавания. В первом навыке Мисти реагирует, когда обнаруживает любое лицо; во втором Мисти по-разному реагирует на знакомые и неизвестные лица.
• «Распознавание лиц» (учебник) — пример кода для подробного руководства по использованию распознавания лиц в ваших навыках. Полное руководство читайте в «документации для разработчиков».
• «FaceRecEmote» — еще больше удовольствия от распознавания лиц. Когда этот навык работает, Мисти по-разному реагирует на разные лица. Вам нужно будет обучить робота на одном или нескольких лицах и обновить этот код с помощью меток, которые вы назначаете каждому из них. Вам также нужно будет определить, какие аудиофайлы Мисти должна воспроизводить для каждого лица.
"hazardNotification": показывает, как использовать данные из уведомлений об опасности в ваших навыках. При выполнении этого навыка Мисти распечатывает список всех сенсоров, находящихся в опасном состоянии, для отладки слушателей. Этот пример полезен при программировании Мисти для обхода препятствий и обхода высоких уступов во время автономного исследования.
«lookAround». Этот навык показывает, как вы можете использовать события таймера для циклического перебора уникальных шаблонов поведение. Когда он работает, Мисти непрерывно двигает головой случайным и реалистичным образом.
«LooksAtFace»: показывает, как вы можете использовать данные событий распознавания лиц для подачи команд, заставляющих Мисти двигаться. голову и поддерживать зрительный контакт с лицом, которое она обнаруживает в поле зрения.
«Мисти-Многоличность» — еще один базовый пример программируемой личности Мисти. Мисти показывает разные эмоции, меняя изображение на экране и проигрывая звуки при нажатии на разные датчики удара.
«MistyReads_AzureTutorial» — код навыка, который интегрируется с функциями Microsoft Azure и Microsoft Cognitive Services, чтобы дать Мисти возможность читать рукописный текст. Вы найдете код для Misty и облачных функций Azure по этой ссылке, а также есть руководство по их использованию «в блоге Misty».
• «mistySeesYou» – При выполнении этого навыка Мисти поднимает руки, издает счастливый звук и меняет изображение на экране каждый раз, когда видит лицо.
«Воспроизвести аудио» (обучение) — код для учебник, демонстрирующий, как получить доступ к звуковым активам Мисти и воспроизвести звуки через ее динамики. Прочтите полное руководство в «документации для разработчиков».
«propertyTest»: тесты свойств позволяют отфильтровывать нежелательные сообщения о событиях, чтобы ваши функции обратного вызова событий срабатывали только при соблюдении определенных условий. (например, при нажатии определенного емкостного сенсорного датчика или при срабатывании определенной опасности). Чтобы помочь вам понять, как они работают, в этом примере показано, как применять тесты свойств к прослушивателю событий времени прохождения и игнорировать нерелевантные данные о расстоянии.
• «randomLED» — еще один пример как вы можете использовать события таймера для циклического прохождения шаблонов поведения. На этот раз Мисти каждую секунду меняет светодиод на груди на новый случайный цвет.
• «Запись звука» (учебное пособие) — пример кода для учебного пособия, показывающего, как использовать API Мисти. для записи звука. Вы можете прочитать полное руководство в «документации для разработчиков».
• «recordVideo» — демонстрирует, как использовать Misty API для создания новой видеозаписи.
«RoamLook» — Мисти просматривает шаблон передвижения с включенным распознаванием лиц. Увидев знакомое лицо, она приветствует человека и выражает радость. Увидев неизвестное лицо, она фотографирует человека и сохраняет его в своем локальном хранилище.
• «serialReadWrite» — этот ресурс включает в себя код навыка JavaScript и код скетча .ino. для программирования Misty для отправки и получения сообщений в Misty Backpack для Arduino и обратно. Рюкзак может связываться с Мисти через аппаратный или программный последовательный порт; файлы скетчей .ino по этой ссылке показывают, как использовать оба варианта.
«takePicture» — показывает, как закодировать Мисти, чтобы сделать снимок с помощью ее RGB-камеры и сохранить его в локальном хранилище. , и покажите картинку на ее дисплее.
«timeOfFlights» — демонстрирует, как использовать сообщения о времени полета в вашем коде навыка. Когда этот навык работает, Мисти реагирует, когда обнаруживает объект на определенном расстоянии от своих диапазонов датчиков времени полета.
• «Time-of-Flight» (учебное пособие) — пример кода для учебного пособия, в котором вы узнаете, как закодировать Мисти, чтобы она менял свой светодиод, двигалась вперед и останавливалась, когда ее время истекло. -датчики полета обнаруживают препятствие на определенном расстоянии. Полное руководство можно прочитать в «документации для разработчиков».
«События таймера» (учебное пособие) — пример кода для руководства по использованию событий таймера для циклического перебора шаблонов поведения. Как и в приведенном выше примере случайного светодиода, этот навык случайным образом меняет цвет светодиода Мисти через определенный интервал времени. Прочтите полное руководство в «документации для разработчиков», чтобы узнать больше о событиях таймера.
• «Триггер навыка» (учебник) — знаете ли вы, что сообщения о событиях от датчиков Мисти могут запускать другие навыки, чтобы бегать? Эта ссылка содержит пример кода для учебника, в котором показано, как это сделать. Полное пошаговое руководство читайте в «документации для разработчиков».
• «TurnToSound» — когда этот навык работает, Мисти использует данные локализации звука для расчета команд движения и поворачивается в направлении речи, которую она обнаруживает.
« wakeWord» –показывает, как регистрироваться для событий с ключевыми фразами, чтобы запускать действия, когда Мисти слышит свое слово для пробуждения.
• «Бродить» – при выполнении этого навыка Мисти случайным образом исследует ее. окружающей среды, используя данные датчика удара и времени полета для обнаружения препятствий на ее пути. (Обратите внимание, что Мисти едет по-разному на разных типах полов. Вам может потребоваться настроить этот код навыка для лучшей производительности в вашей среде.)

Мы рекомендуем вам прочитать больше о проекте IntroSkillsTask Документация для разработчиков Misty, но вот краткое введение. Вы захотите начать с клонирования репозитория .NET-SDK на компьютер с установленной Windows 10 и Visual Studio. Откройте файл Misty.Skill.IntroSkills.sln в Visual Studio и обновите метод LoadAndPrepareSkill в файле кода StartupTask.cs, указав имя навыка из каталога SkillLibrary, чтобы развернуть этот навык в Мисти. SkillLibrary включает следующие примеры:

В этих примерах показано, как отправлять команды и потоковые данные с помощью REST API Misty и соединений WebSocket. Большинство этих примеров запускаются в вашем веб-браузере, но вы можете применить те же принципы к любому клиентскому коду, который вы пишете для отправки команд Misty с внешнего устройства.

Изменение светодиода Мисти (учебное пособие) — пример кода для учебного пособия, в котором показано, как изменить светодиод Мисти с помощью команд REST API. Полное руководство читайте в документации для разработчиков.
Изучение компьютерного зрения (учебник) — пример кода для руководства, в котором рассказывается, как подписаться на соединение Misty по распознаванию лиц WebSocket и выдавать команды, которые заставляют робота обнаруживать, распознавать и запоминать новые лица. Прочтите полное руководство в документации для разработчиков.
Найди лицо — сделай что-нибудь — этот код запускается в вашем веб-браузере, чтобы Мисти воспроизводила звук при обнаружении лица.
Использование датчиков, веб-сокетов и передвижения (учебник) — пример кода для руководства, в котором рассказывается, как подписаться и использовать данные из команды Misty для определения времени полета и передвижения. WebSocket-подключения. Полное руководство читайте в Документации для разработчиков.
Съемка фотографий (учебное пособие) — пример кода для учебного пособия, в котором рассказывается, как написать приложение, работающее в браузере, чтобы Мисти автоматически делала снимок и сохраняла его себе. локальное хранилище, когда она обнаруживает лицо. Прочтите полное руководство в документации для разработчиков.
MistyReads_Python — пример кода, который использует оболочку mistyPy для REST API Misty с API Microsoft Vision и Speech для чтения Misty. почерк вслух. Вам нужно будет обновить этот код с помощью ваших собственных ключей API, прежде чем вы сможете использовать его со своим роботом.

«ForceDriving» —демонстрирует, как использовать .NET SDK для развития навыков, позволяющих Мисти взаимодействовать с окружающей средой различными и интересными способами. При запуске навык прослушивает данные от датчиков времени полета (ToF) Мисти. Поместите руку перед датчиком ToF диапазона, чтобы заставить Мисти двигаться в противоположном направлении. Чем ближе вы подносите руку, тем быстрее движется Мисти.
«HelloWorldSkill» — при запуске Мисти повторяет движения головы и рук, воспроизведение звука и изменение изображения, чтобы поприветствовать мир.
«HelloAgainWorldSkill» — при запуске Мисти повторяет движения головы и рук, воспроизведение звука и смену изображения, приветствуя мир. (Функциональность аналогична HelloWorldSkill, но реализация отличается.)
«HelloLocomotionSkill» — демонстрирует, как использовать основные команды вождения и обрабатывать данные из системы опасностей Мисти в вашей .NET. навыки и умения. В начале Мисти объезжает комнату и объезжает препятствия.
«InteractiveMistySkill» — демонстрирует, как регистрировать, отменять регистрацию и обрабатывать события в вашем коде навыка .NET, а также показывает некоторые из различные способы прослушивания данных из событий и обратных вызовов. Прикоснитесь к голове Мисти и нажмите на ее датчики ударов, чтобы увидеть, как она выражает различные эмоции.
«LookAroundSkill» —демонстрирует, как использовать обратные вызовы таймера для циклического воспроизведения поведения в навыках .NET. При запуске навык регистрирует обратный вызов таймера, так что Мисти получает рандомизированные движения головы, движения рук и команды изменения светодиода.
«MostlyHarmlessSkill» — при запуске этот навык повторяется случайным образом. На груди Мисти горит светодиод до тех пор, пока навык не будет отменен или не истечет время ожидания.
«MostlyHarmlessTooSkill» — при запуске использует обратный вызов таймера для вызова команд изменения светодиода в цикле до тех пор, пока навык не будет отменен или время вне. (Функциональность аналогична MostlyHarmlessSkill, но реализация отличается.)
• «SkillTemplate» — шаблон для разработки навыков работы с .NET на C#. Этот шаблон реализует интерфейс IMistySkill, чтобы вы могли вызывать команды и использовать данные из Misty. Он предоставляет интерфейс для объявления метаинформации о навыке и создает экземпляры методов, которые вы можете заполнить своим кодом, чтобы определить, как Мисти ведет себя, когда навык запускается, приостанавливается и отменяется. (Вы также можете использовать «Расширение Misty Skill Extension», чтобы установить шаблон проекта Visual Studio для создания собственных навыков C#. )

Мы надеемся, что эти списки помогут вам ускорить разработку Misty II. Если есть определенный образец, который вы хотели бы добавить в библиотеку, сообщите нам об этом, «разместив сообщение на форумах сообщества». И следите за обновлениями в части 3 этой серии, где мы поделимся списком проектов, инструментов и экспериментов от сообщества Misty, которые не вписываются в рамки навыков!

Каталог проектов Misty II, часть 2: пример кода

Узнайте об образце кода Misty REST API, JavaScript SDK и .NET SDK (бета-версия), который поддерживается организацией Misty Robotics.