Заказать курсовые, контрольные, рефераты...
Образовательные работы на заказ. Недорого!

Управление роботом. 
Моделирование рабочего пространства мобильного робота

РефератПомощь в написанииУзнать стоимостьмоей работы

EnableDrive используется для разрешения или запрещения движения робота. Данное действие имеет один параметр логического типа. Если значение параметра — false, то запросы на управление движением выполняться не будут. Если привод выключается во время движения, он должен немедленно остановиться независимо от типа выполняемой операции; Параметр DriveDistanceStage при вызове действия DriveDistance… Читать ещё >

Управление роботом. Моделирование рабочего пространства мобильного робота (реферат, курсовая, диплом, контрольная)

В качестве шасси некоторых роботов используется дифференциальный привод. В состав такого привода входят два независимо управляемых колеса и пассивное (поворотное) колесо, используемое для баланса. Причина популярности такой конфигурации заключается в том, что ее использование позволяет сконструировать робота, который может развернуться на площади, по размеру не превышающей размеры робота.

В MRDS программный доступ к дифференциальному приводу робота реализован в виде сервиса GenericDifferentialDrive. По умолчанию данный сервис не связан с определенным приводом. Для соединения сервиса с приводом используется специальный файл, называемый манифестом. Одно из преимуществ MRDS заключается в том, что, разработав программу управления определенным роботом, можно использовать ее для управления другими роботами. Для этого достаточно будет изменить манифест, связывающий сервис и робота.

Рассмотрим действия сервиса GenericDifferentialDrive:

  • ? AllStop — останавливает движение, прекращает все операции, выполняемые приводом, устанавливает величину подаваемой энергии на оба двигателя в 0 и выключает двигатели. Для повторного запуска робота необходимо вызвать метод EnableDrive, установив Enable в true;
  • ? EnableDrive используется для разрешения или запрещения движения робота. Данное действие имеет один параметр логического типа. Если значение параметра — false, то запросы на управление движением выполняться не будут. Если привод выключается во время движения, он должен немедленно остановиться независимо от типа выполняемой операции;
  • ? SetDrivePower устанавливает количество энергии, которое подается на правое (параметр RightWheelPower) и левое (параметр LeftWheelPower) колеса. Количество энергии может изменяться от -1.0 до 1.0 (тип double). Отрицательная величина указывает на то, что колеса должны вращаться назад, положительная — вперед. Каждый новый вызов действия изменяет значение энергии, поданной на колеса.

Возможны следующие варианты движения робота:

  • ? движение вперед: LeftWheelPower > 0, RightWheelPower > 0, LeftWheelPower = RightWheelPower;
  • ? движение назад: LeftWheelPower < 0, RightWheelPower < 0, LeftWheelPower = RightWheelPower;
  • ? движение по дуге: LeftWheelPower Ф RightWheelPower (если на одно колесо робота подать большее количество энергии, чем на другое, то колесо, на которое подано больше энергии продвинется вперед дальше, чем колесо, на которое подано меньшее значение, в результате робот будет двигаться по дуге);
  • ? вращение на месте: LeftWheelPower = -RightWheelPower. Установка значений энергии, подаваемой на оба колеса, в нулевое значение приводит к остановке робота. Для остановки роботу может понадобиться время. Между значением энергии, подаваемой на колеса, и скоростью робота нет прямой зависимости. Однако при больших значениях энергии колеса крутятся с большей скоростью. В ряде случаев робот может достигать своей максимальной скорости при значении энергии меньше 1.0, а при малых значениях энергии (например, 0.1) может не тронуться с места. Некоторые роботы поддерживают только дискретный набор уровней мощности, в ряде случаев возможно наличие лишь двух состояний двигателя — включено и выключено;
  • ? SetDriveSpeed — устанавливает скорость движения робота в метрах в секунду;
  • ? DriveDistance — устанавливает расстояние, на которое должен переместиться робот (в метрах).

Параметры действия:

  • ? Distance — расстояние в метрах, на которое должен переместиться робот (тип double);
  • ? Power — количество энергии, подаваемое на колеса (см. действие SetDrivePower);
  • ? параметр DriveDistanceStage при вызове действия DriveDistance должен быть установлен в DriveStage.InitialRequest. Данный параметр используется для отображения процесса выполнения операции. Любой запрос на движение (включая DriveDistance) отменяет DriveDistance [3]. Однако некоторые роботы не могут прервать начатое движжение;
  • ? RotateDegrees — используется для поворота робота на месте на указанный угол (в градусах). Положительный угол означает движение влево или против часовой стрелки относительно центра робота, если смотреть сверху.

Параметры действия:

  • ? Degrees — угол, на который выполняется поворот;
  • ? Power — количество энергии, подаваемой на оба колеса;
  • ? параметр RotateDegreesStage должен быть установлен в DriveStage. InitialRequest.

Сервис GenericDifferentialDrive генерирует ряд уведомляющих сообщений, с помощью которых возможен анализ процесса выполнения блоком команд.

Связать сервис GenericDifferentialDrive с приводом робота (моделью робота в симуляторе) можно следующим образом:

  • ? Выбрать сервис GenericDifferentialDrive на диаграмме.
  • ? Выбрать в окне Properties в поле Configuration пункт Use a manifest.

Нажать кнопку Import и выбрать в открывшемся окне пункт IRobot.Create.Simulation.Manifest.xml (рис. 2.4). Выбранный манифест определяет робота, который будет добавлен в симулятор. После выполнения указанных действий окно Properties должно выглядеть, как показано на рисунке 2.5 [8].

Список манифестов.

Рисунок 2.4 — Список манифестов.

Установка параметров сервиса.

Рисунок 2.5 — Установка параметров сервиса.

Показать весь текст
Заполнить форму текущей работой