- •Реферат
- •Введение
- •Исследовательскаячасть.
- •Цель работы и решаемые задачи.
- •Разработка структурной схемы робота. На рисунке 1.1. Представлена структурная схема робота.
- •Обзор аналогов робота - боксера.
- •Сравнительный анализ устройств стз.
- •Устройство Kinect.
- •ВозможностиKinect for Windows sdk.
- •Видеопотокотсенсора.
- •Аудиопотокотсенсора.
- •Сравнительный анализ встраиваемых одноплатных компьютеров.
- •Технические характеристики wafer-ot-z670.
- •Потокданных
- •Периферийные интерфейсные разъемы.
- •ПериферийныеИнтерфейсныеразъемы.
- •Внешниеразъемыинтерфейспанели
- •В Разъемпитания sata.
- •12 В Разъемпитания.
- •Разъем кнопкипитания.
- •Разъемпривода sata.
- •Разъем usb (4-контактный).
- •Разъем usb (8-контактный).
- •Панель внешних периферийных разъемов интерфейса.
- •12 В Разъемпитания.
- •Разъем Ethernet.
- •Разъем hdmi.
- •Usb разъем.
- •Lvds жк Установка.
- •Подключение sata привода.
- •Подключение usb (двойнойразъем).
- •Соединение hdmi Дисплейноеустройство.
- •Началоустановки.
- •Использованиеустановки.
- •Главная
- •Выбор микроконтроллера для робота.
- •Разработка алгоритма системы управления.
- •Конструкторскаячасть
- •Функцианальная схема.
- •Построение системы управления с использованием сетей Петри.
- •Анимация
- •Определение углов поворота двигателей.
- •Определение углов при нанесении ударов по сопернику с помощью системы захватов движения.
- •Математическая модель.
- •Технологическаячасть.
- •Технологический процесс.
- •Программа управления роботом боксером.
- •Заключение
- •Список литературы
Видеопотокотсенсора.
Внимательно почитав MSDN можно узнать полезную информацию об этом потоке. Например, разработчик волен установить уровень качества и формат картинки при инициализации видеопотока. От уровня качества напрямую зависит количество и скорость передаваемых от сенсора данных, ограниченной, в свою очередь, пропускной способностью USB 2.0. Так для картинки разрешением 1280x960 количество кадров в секунду составит 12, а для картинки разрешением 640x480 – 30. Формат изображения определяется цветовой моделью и может быть либо RGB, либо YUV.
Комбинации уровня качества и формата картинки представлены перечислением ColorImageFormat. Три из его значений определяют 32-битное кодирование каждого пиксела изображения:
RgbResolution1280x960Fps12,RgbResolution640x480Fps30иYuvResolution640x480Fps15, ачетвертый – 16-битноеRawYuvResolution640x480Fps15. Большое недоумение вызывает YuvResolution640x480Fps15. В MSDN четко сказано (тути тут), что это YUV конвертированный в RGB32… но, тем не менее, продолжающий оставаться YUV.
Чтобы начать принимать видеопоток от сенсора, этот самый поток необходимо инициализировать:
// включаем видеопоток с цветовой моделью RGB и разрешением 640x480(30fps)
kinect.ColorStream.Enable(ColorImageFormat.RgbResolution640x480Fps30);
// теперь можно подписаться на событие сенсора, чтобы получать готовый кадр и работать с ним
kinect.ColorFrameReady +=SensorColorFrameReady;
Аудиопотокотсенсора.
В Kinect встроен набор из четырёх микрофонов, использующий 24-битный аналого-цифровой преобразователь, а встроенный обработчик звукового сигнала включает подавление эха и уменьшение шума. Каждый микрофон установлен так, чтобы иметь небольшую направленность. Задействовать ли эхо или шумоподавление зависит от разработчика, т.е. эти опции задаются на этапе инициализации аудиопотока. Оптимальное расстояние между говорящим и сенсором – 1-3 метра.
Звуковые возможности Kinect могут быть использованы самыми различными способами, например, для высококачественного захвата аудиосигнала, определение положения аудиосигнала или распознавания речи. О распознавании речи мы поговорим далее, а сейчас мне бы хотелось остановиться на одной особенности Kinect,. Инициализация аудиопотока занимает чуть меньше четырех секунд. Это необходимо учитывать, и, скажем, после вызова метода сенсора Start(), делать задержку в четыре секунды, прежде чем настраивать параметры аудиопотока - KinectSensor.AudioSource.Примеропределения направления звука можно найти в MSDN.
Поток данных дальномера от сенсора это поток формирующийся из кадров, в которых каждый пиксель содержит расстояние (в миллиметрах) от плоскости сенсора до ближайшего объекта в определенных координатах поля зрения камеры. Как и в случае видеопотока, для потока данных дальномера можно устанавливать разрешение одного кадра, которое определяется перечислениемDepthImageFormat. При частоте кадров 30 в секунду, разработчик волен выбирать разрешения 80x60 (Resolution80x60Fps30), 320x240 (Resolution320x240Fps30) и 640x480 (Resolution640x480Fps30). И как уже было сказано в предыдущей части, существует два диапазона «рабочих» расстояний: DefaultRange и NearRange, определяемых перечислениемDepthRange.
// устанавливаем диапазон расстояний
kinect.DepthStream.Range = DepthRange.Near;
// и включаем поток дальномера с разрешением 640x480(30fps)
kinect.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);
Расстояния в каждом пикселе кодируется только 13-ю битами, а 3 бита призваны идентифицировать человека. Если расстояние до объекта оказывается выходящим за рабочий, в 13 битах вернется ноль или определенная константа. Если при инициализации сенсора включить возможность трекинга человеческой фигуры, в 3 битах будет возвращаться порядковый номер (1 или 2) обнаруженного человека (если в данной точке найден человек, иначе вернется 0):kinect.SkeletonStream.Enable();
