Поиск:  
  
Технологии робототехники
Фотогалерея
Книжная полка
Доска объявлений
Форумы
Контакты

  






  ***

Роботопия: поможем миру стать безопаснее для технократов.


РобоКлуб/Проекты/Мобильные/Роботопия: поможем миру стать безопаснее для технократов.



Роботопия: поможем миру стать безопаснее для технократов

Перевод статьи Дениса Дрэхейма о созданных им роботах, опубликованной на сайте Dallas Personal Robotics Group.

Ровер: Мой первый робот

Первая модель Ровера была Ковроходом фирмы LynxMotion. Вот как он выглядел в Августе 1999 г.. Эта штука на переднем плане – это ИК детектор приближения от LynxMotion. Датчик столкновения сделан из вешалки и пары пленочных детекторов.

Вскоре после того, как была опубликована эта фотография, Ровер претерпел существенные изменения. Я закруглил его хвостовую часть, чтобы он мог вращаться, не задевая за препятствия, заменил исходный испытательный встроенный контроллер (Basic Stamp) на контроллер следующего поколения Basic Stamp 2-SX на плате Next Step, добавил вторую панель со стандартным жидкокристаллическим дисплеем (Serial LCD) и макетной платой, расположил ИК детектор приближения на микро-манипуляторе, чтобы поворачивать его вперед в режиме избегания препятствий, или вбок в режиме движения вдоль стены. Ровер выступил на соревнованиях RoboRama 99b, организованных DPRG, и получил первое место в скоростном забеге, третье место в конкурсе прохождения заданного пути и перетаскивания банок.

Ровер был отложен на полку до февраля 2000 года, то есть до того момента, когда я занялся Орто из Борга. Заинтересованные могут посмотреть код управления Ровером (ниже). Он не особо хорошо задокументирован, но может быть, кто-нибудь найдет для себя что-нибудь полезное.

Пяти-координатный манипулятор от LynxMotion, усовершенстованный для переноса компакт дисков

Это – 5-координатный манипулятор от LynxMotion, который я усовершенствовал, заменив держатель подходящим для переноса компакт дисков. На работе я пишу программное обеспечение для оборудования производства полупроводников и хочу использовать это устройство. Компакт диски похожи на полупроводниковые платы, и я смогу оттестировать на них своё программное обеспечение. Также я надеюсь использовать привод компакт дисков в качестве аналога производственной камеры.

До сих пор у меня не нашлось времени, чтобы учесть в программе уравнения движения, и робот двигается рывками. Если у кого-нибудь найдется подходящий код, отправьте мне, пожалуйста, сюда. Ниже – ссылки на различные изображения робота.

Орто из Борга: продукт нашей совместной работы с Томом Гралевитцем (Tom Gralewicz)

Орто из Борга – это детище воображения моего друга Тома Гралевитца. В далёком октябре 1999 года мы с ним сетовали на неотъемлемые неточности определения положения с помощью датчиков вращения колес робота. Неожиданно ему пришла в голову идея: если все ошибки возникают, когда робот поворачивает, и колеса проскальзывают, то почему бы не сделать робот, который совсем не будет поворачиваться, а всегда будет двигаться по взаимноперпендикулярным направлениям (X, Y). Тогда проблема определения ориентации робота исчезнет, потому что она всегда будет одной и той же. С помощью жесткого приводного ремня можно почти полностью избавиться от неточностей в считывании значений датчика при движении по прямой линии.

Итак, Том, работая в полном секрете, создал модель робота со следующими уникальными свойствами:

  • Четыре колеса робота расположены с каждой стороны квадратной рамы размером 14" (35,6 см) на вращающихся опорах
  • Жесткие оси связывают блоки с противоположных сторон, и они вращаются синхронно
  • Мощный приводной электродвигатель и зубчатая передача управляют движением всех колес одновременно
  • Редукторный электродвигатель вращает эксцентрик, который двигает блоки колес, поднимая одну ось и опуская другую, когда нужно поменять направление.

Он продемонстрировал мне прототип в январе 2000 года. Он состоял из показанной выше нижней половины робота (только ходовая часть) и управлялся проводным выносным пультом. Он оказался замечательным, пусть и немного запоздалым, подарком на рождество. Я сразу решил, что из этого должен быть сделан полноценный автономный робот. Его демонстрация была запланирована на конкурс Roborama 2000.a, который должен был состояться 15 апреля.

Благодаря размеру платформы мы смогли установить на него управляющий персональный компьютер. Сначала мы собирались использовать плату PC-104, но я хотел, чтобы робот издавал звуки, а звуковые карты для PC-104 были достаточно дорогими. Поэтому, когда Том наткнулся на дешевые компьютеры со встроенным 486 процессором, (как мы думаем, они были взяты из кассовых аппаратов), мы решили использовать один из них.

Я хотел поиграться с Linux-ом для управления роботом и скачал RedHat 6.1 на компьютер. В качестве языка программирования я выбрал Perl из-за его больших возможностей, таких как, например, возможности работать как в режиме интерпретации, так и компиляции. Кроме того, он поставляется вместе с Linux, и я давно хотел его изучить. Использование персонального компьютера (из эпохи до использования USB) для управления роботом вносит некоторые трудности в управление оборудованием из-за ограниченного числа портов ввода-вывода. Чтобы сделать Орто жизнеспособным, мне надо было реализовать следующие элементы управления:

  • Контроллеры управления моторами: по одному для моторов движения и поворота
  • Счетчик для приводной цепи; Том нашел подходящий с точностью 500 отсчетов на дюйм (200 отсчетов/см) в Американском научном обществе в Миллуоки
  • Ультразвуковые датчики с каждой стороны для обнаружения препятствий

Программное обеспечение. Программный код главного контроллера Орто написан на Perl:

Программный код датчика и сонара написан с использованием пакета компании Microchip для микросхем Scenix SX-18 and SX-28.

ПатрульБот

ПатрульБот – это робот, встроенный в одну из вращающихся предупредительных съемных мигалок, которые устанавливаются на крышу машины. Он примерно 6 дюймов (15,2 см) в диаметре, работает от напряжения в 12 В. (8 заменяемых перезаряжаемых щелочных аккумуляторов) и содержит 5 инфракрасных дальномеров, расположенных по периметру для избегания препятствий (хотя в текущей версии используются только передние 3).

Конструктивные особенности

  • Рама состоит из поливинилхлоридных (ПВХ) пластин
  • Конструкция поддерживается системой пластиковых трубок
  • Шины сделаны из поропласта

Оказалось, что ПВХ-пластины для своего веса очень прочные, а пластиковые трубки легко прикрепляются к ним с помощью крепежных винтов #4. Цианакрилатный клей (суперклей) хорошо склеивает и ПВХ и пластиковые трубки. Для прикрепления защитного колпака я хотел использовать крепежное кольцо, которое использовалось в этой мигалке раньше, и в качестве опорной выбрал пластину толщиной 1/8" (0,3 см). Две верхних пластины я сделал толщиной 1/4" (0,6 см). Потом я выпилил пластину нужной формы лобзиком и зачистил края на шлифовальном ленточном станке. При работе лобзиком пластик, особенно трубки, начинают плавиться, но этого можно избежать, если взять лезвие с более редкими зубцами.

Для колес я взял производимые Дэйвом Брауном (Dave Brown) пенопластовые шины Lite Flite диаметром 3" (7,6 см); большой выбор аналогичных шин имеется в магазине Tower Hobbies. Эти шины очень легкие, а их пенная структура дает хорошее сцепление. Их единственным недостаток – это то, что они сильно пачкаются, когда ездят по полу мастерской.:-)

Заднее полозковое шасси: из набора фурнитуры корпусной мебели, предлагаемого Home Depot (да, это ручка от шкафа).

Электромоторы от Мартина Джонса (Marlin P. Jones): Эти электродвигатели вращаются с частотой 160 оборотов в минуту от напряжения 12 В без нагрузки, при этом ток 110 мА. Ток при застопоренном двигателе достигает 700 мА, может быть и больше, я не уверен – мой источник питания не может дать больше. По-моему, с той нагрузкой, которая на них была, получалось что-то около 120-130 оборотов, при этом каждый мотор потреблял ток 200-300 мА. Моторы хорошо работали на гладком полу, но робот немного замедлялся на ковре. Я думаю, что величина крутящего момента немного меньше, чем у самодельных модифицированных сервомеханизмов, но скорость на полу возрастает почти в два раза. Наверное, в конце концов, мне придется сверлить дырки в пластинах, чтобы немного облегчить робота.

Микроконтроллер BasicX-24: Теперь это моя любимая микросхема, она на голову превосходит Basic Stamp 2 и 2-SX. Она не только быстрее, но и язык Basic для ее программирования гораздо мощнее (это сокращенный вариант Visual Basic). По разъемам она совместима с Basic Stamp 2/2-SX, то есть у этой микросхемы есть 16 портов ввода/вывода общего назначения, однако, в отличие от последней, 8 из них могут использоваться для передачи не только цифрового сигнала, но и аналогового. Вдобавок к стандартным 16 разъемам на плате предусмотрены разъемы для широтно-импульсного модулятора, которые можно использовать для управления скоростью вращения моторов без предварительного подключения процессора. На плате даже есть два светодиода, которые можно использовать как дополнительные каналы вывода.

Плата NextStep контроллера (на ней находится микросхема BasicX). Это замечательная плата, которая позволяет передавать сигналы со всех контактов ввода/вывода микроконтроллера Basic Stamp (или BasicX) через 3 разъема: сигнальный, питание и "земля". Она поддерживает подключение дополнительного источника энергии питания сервомоторами для подключения до четырех устройств. На плате также находятся два управляющих переключателя, один для сброса, и два сигнальных светодиода.

Блок парного H-моста (для управления моторами): Он состоит из основанной на микросхеме L298 платы парного H-моста, похожей на представленную на сайте компании DPRG. Я ее купил, потому что мне не хватило решимости спаять самому такую плату.

Инфракрасный дальномер GP2D12 фирмы Sharp: Он обеспечивает аналоговый сигнал, хорошо совместимый с аналого-цифровыми преобразователями микроконтроллера BasicX. У компании Acroname есть его аналоги, которые передают данные по-другому. Эти устройства я выбрал в основном потому, что среди всего семейства они были самыми дешевыми.

Благодаря такому выбору блоков робота я смог разработать простой и эффективный алгоритм уклонения от препятствий. На выходе аналого-цифровых преобразователей у меня получается значение в диапазоне от 0,0 (в зоне досягаемости не препятствия) до 0,52 (препятствие очень близко). Для управления скоростью вращения моторами используется сигнал с коэффициентом заполнения сигнала широтно-импульсного модулятора от 0 (стоп) до 1 (максимальная скорость). Поэтому я просто взял данные с правого переднего датчика, умножил их величину на 1,8 и вычел получившееся число из коэффициента заполнения для левого мотора. Аналогично формируются сигнал управления правого мотора исходя из показаний правого датчика. Сигнал датчика нелинейно зависит от расстояния до объекта (примерно экспоненциальный характер), и поэтому, робот отворачивает от препятствия, увеличивая угол отклонения, чем ближе к препятствию он подъезжает.

Передний сенсор остается предохранительным на случай сбоя системы. Если, в соответствии с его показаниями, объект находится слишком близко, робот останавливается и начинает вращаться на месте, до освобождения пути.

Основным недостатком этих сенсоров является очень маленький угол зрения. Узкий объект легко может попасть между датчиками, и робот застрянет. Чтобы решить проблему .я хочу заменить передний датчик на сенсор с большим углом обзора, например, как этот.

Корпус мигалки: Ребята, тут вам не повезло. Я приобрел ее 20 лет назад! Хотя я уверен, что вы придумаете, чем ее заменить. Например, Эд Коффман (Ed Koffeman) исхитрился, и приспособил контейнер для еды Jello mold. :-)

Программное обеспечение. В основном код для ПатрульБота написан для BasicX. Подпрограммы датчика положения написаны на C для компилятора cc5x и работают на контроллере прерываний 16F873.



 


Автор конструкции: Dennis Draheim
gale
Dallas Personal Robotics Group

Комментарии

Добавить комментарий к мобильным
Ольга carich@bk.ru
Очень понравилась статья.