Text
                    I'M I fill
МОДЕЛИРОВАНИЕ,
ПЛАНИРОВАНИЕ ТРАЕКТОРИЙ
И УПРАВЛЕНИЕ ДВИЖЕНИЕМ
РОБОТА-
МАНИПУЛЯТОРА
щ


Р. ПОЛ Моделирование, планирование траекторий и управление движением робота-манипулятора Перевод с английского А. Ф. Верещагина, В. Л. Генерозова Под редакцией Е. #. Попова ИЗДАТЕЛЬСТВО «НАУКА» ГЛАВНАЯ РЕДАКЦИЯ ФИЗИКО-МАТЕМАТИЧЕСКОЙ ЛИТЕРАТУРЫ Москва 1976
6 ф 6.5 П 49 УДК 62-50 November 1972 STANFORD ARTIFICIAL INTELLIGENCE PROJECT Memo AIM—177 Computer Science Department Report CS—311 MODELLING, TRAJECTORY CALCULATION AND SERVOING OF A COMPUTER CONTROLLED ARM by Richard Paul Моделирование, планирование траекторий и управление движением робота-манипулятора, Р. Пол, перев. с англ. Главная редакция физико-математической литературы издательства «Наука», М.; 1976, 104 стр. В книге приведен эффективный метод описания кинематики и выведены полные уравнения динамики манипуляционного робота, разработанного в США; описаны вопросы планирования траекторий и принципы отслеживания запланированных траекторий; рассмотрены языки программирования и способы формирования алгоритмов для построения системы управления роботом на основе ЭВМ. Илл. 32. Библ. 37 назв. 30501—106 П053(02)-76 157"76 © Перевод на русский язык. Главная редакция физико-математической литературы издательства «Наука», 1976
ОГЛАВЛЕНИЕ От редактора перевода .............. 5 Предисловие 6 Глава 1. Введение 9 § 1.1. Описание системы 9 § 1.2. История 15 Глава 2. Модель механической руки 16 § 2.1. Кинематика 16 § 2.2. Решение обратной задачи о положении руки . . 23 § 2.3. Решение линеаризованной обратной задачи о положении 25 § 2.4. Динамика 27 § 2.5. Силы и моменты 29 Глава 3. Модель внешней среды 31 § 3.1. Описание прототипов 32 § 3.2. Векторы ориентации 36 Глава 4. Перемещение предметов 41 § 4.1. Допустимое множество решений 41 § 4.2. Перемещение примера 42 Глава 5. Траектории 48 § 5.1. Общие соображения 48 § 5.2. Полиномы 53 § 5.3. Экстремумы траектории 56 § 5.4. Движение по замкнутому контуру 57 § 5.5. Планирование движения в приращениях . . . « 60 Глава 6. Сервосистема 60 § 6.1. Контур обратной связи 61 § 6.2. Характеристика привода 70 § 6.3. Частично ограниченное движение 73 Глава 7. Управление манипулятором 74 § 7.1. Состояние манипулятора 75 § 7.2. Элементарные операции 76 § 7.3. Программа-ассемблер • » 79 § 7.4. Примеры программирования 81
4 ОГЛАВЛЕНИЕ § 7.5. Выполнение программы § 7.6. Программа манипулятора Глава 8. Заключение $ 8.1. Краткое изложение основных результатов § 8.2. Перспективы дальнейших исследований . Приложения П.1. Описание конструкции манипулятора . . . П.2. Язык программирования SAIL ...... П.З. Векторы и матрицы Литература
ОТ РЕДАКТОРА ПЕРЕВОДА Роботы уже вышли из области фантастики и стали реальным детищем современного научно-технического прогресса. Расширяется сфера практического применения роботов различных типов, призванных избавить человека от однообразного физического труда, способных разумно действовать в условиях труднодоступных или опасных, под водой, в космосе, на других планетах. Промышленные роботы в настоящее время функционируют в различных технологических процессах в определенных условиях, чаще всего по жестким программам. Однако многие задачи требуют наличия у робота элементов искусственного интеллекта. В таких системах механические исполнительные органы, управляемые «интеллектуальными» вычислительными машинами с развитыми подсистемами восприятия зрительной, тактильной и иной информации, взаимодействуют с внешней средой, сложной и подчас неопределенной. Роботы, обладающие элементами искусственного «разума», еще находятся к настоящему моменту в основном в стадии теоретических разработок и экспериментов. Имеющиеся публикации посвящены, как правило, изучению различных частных вопросов многогранной, пока еще не систематизированной, науки о роботах. Неискушенный читатель по этой разрозненной информации может получить о роботах и о методах их проектирования точно такое же одностороннее представление, какое получили в известной восточной притче трое слепых, пожелавших узнать, что такое слон: «Слон похож на веревку»,— утверждал один, ухвативший слона за хвост. «Нет, слон подобен стволу большого дерева»,— возражал другой, обнявший ногу слона. «Слон похож на змею» — настаивал третий. Он держал слона за хобот. Действительно, легко представить себе, что все рассматриваемые теории могут найти применение в тех или иных
6 ОТ РЕДАКТОРА ПЕРЕВОДА проектах роботов, но трудно понять, как самые различные по своей сущности разработки могут вписываться в один проект и согласованно взаимодействовать при решении одной поставленной задачи. В предлагаемой вниманию советского читателя книге сделана попытка частично ответить на этот вопрос. Ее автор, участник Стэифордского проекта по искусственному интеллекту, Ричард Пол в небольшом объеме и конспективной форме, но все же достаточно ясно и последовательно, излагает сущность одного конкретного проекта современного робота-манипулятора с элементами искусственного интеллекта, предназначенного для исследовательских целей. Рассматриваются также теоретические методы, положенные в основу этой разработки. В книге затронуты многие темы: дан эффективный метод описания кинематики сложных механизмов исполнительных органов и выведены полные уравнения динамики; описаны алгоритмы управления и модель внешней среды; изучены вопросы планирования траекторий механической руки и принципы отслеживания запланированных траекторий сервоприводом; уделено внимание языкам программирования и способам конструирования сложных алгоритмов из простых операций. Используемые методы, способы организации совместной работы подсистем, общее описание идеологии одного из самых совершенных современных проектов системы управления робота-манипулятора будут безусловно полезны инженерам, научным работникам, студентам и аспирантам соответствующих специальностей. При переводе в книге было обнаружено значительное количество опечаток, особенно в формулах и алгоритмах, которые по возможности были устранены. Добавление в книгу подстрочных примечаний имело целью уточнить смысл отдельных формулировок. Список литературы дополнен публикациями советских авторов, имеющими отношение к тематике книги, а также некоторыми переводными изданиями, в которых более полно отражены отдельные затрагиваемые вопросы. Перевод книги выполнен А. Ф. Верещагиным (главы 1—4) и В. Л. Генерозовым (главы 5—8 и Приложения). Е. Попов
ПРЕДИСЛОВИЕ Задача управления исполнительным органом манипулятора (механической рукой) с помощью ЦВМ разделяется на четыре составные части: моделирование, планирование траекторий, автоматический привод и управление. В задаче моделирования используется символическое представление объектов окружающей среды. Программа определяет, как может быть расположен захват манипулятора, чтобы взять объекты, и как затем нужно поворачивать и перемещать их для выполнения различных операций. Модель исполнительного органа используется для расчета динамических свойств руки, зависящих от ее положения, перед выполнением движения. Рука перемещается по определенным во времени пространственным траекториям с контролируемыми скоростями и ускорениями. Траектории соответствуют определенным пространственным кривым, таким как, например, траектория поворота рукоятки. На таких траекториях движение различных сочленений руки не должно быть ограничено препятствиями. Рука приводится в движение следящим приводом, управляемым от малой цифровой вычислительной машины. Никакого аналогового привода не используется. Привод компенсирует нагрузки, обусловленные весом и инерционными свойствами исполнительного механизма манипулятора, зависящими от конфигурации. Для управления манипулятором программа планирования интерпретирует символические команды управления и вырабатывает план движений руки и действий захвата. Программа планирования операций успешно работает при манипуляциях с объектами типа многогранников. С ее помощью могут быть также выполнены такие ел о ж-
8 ПРЕДИСЛОВИЕ ные операции, как установка болта и навинчивание на него гайки. Я хочу выразить свою благодарность профессору Дж. Фельдману за его неоценимую помощь и советы. Я хочу также поблагодарить профессора Дж. Маккарти и профессора Б. Роса за их ценные предложения. Многие идеи, изложенные в этой работе, возникли в результате дискуссий с моими коллегами, в частности с с Дж. Фальком и А. Джиллом. Я также глубоко признателен многим участникам Стэнфордского проекта по созданию искусственного интеллекта за большой вклад, внесенный ими в работу, и в частности В. Шейнману, который разработал конструкцию манипулятора, и Дж. Зингхейму, который построил его. Эта работа была представлена на рассмотрение факультету вычислительной техники и Комитету по присуждению ученых спепеней Стэнфордского университета на соискание ученой степени доктора философии *). Р. Пол *) Соответствует советской ученой степени кандидата наук по соответствующей специальности. (Прим. ред.)
Глава 1 ВВЕДЕНИЕ § 1.1. Описание системы Здесь рассматриваются функции исполнительного органа манипулятора, управляемого с помощью ЦВМ. Исполнительный орган соответствует манипулятору общего назначения и является исполнительной подсистемой робота. ЦВМ планирует и осуществляет последовательность движений исполнительного органа для выполнения требуемых операций. Механическая рука перемещается по плавным траекториям в свободпом пространстве. Все известные силы, действующие на руку, учитываются на этапе планирования и компенсируются в процессе движения. Действия захвата, такие как открывание и закрывание захвата, контролируются тактильными датчиками. Захват может также оказывать силовое воздействие при выполнении некоторых заданных операций. Любой робот должен содержать как чувствительное входное устройство, при помощи которого он может получать информацию об окружающей среде, так и исполнительную подсистему, с помощью которой он способен изменять состояние этой среды. Являясь главной частью исполнительного органа, захват может рассматриваться и как информационная подсистема, так как он имеет простые тактильные датчики и, следовательно, обладает способностью чувствовать силовое воздействие. Окружающая среда, в которой робот работает, должна допускать внутреннее представление *). Робот имеет *) Внутреннее представление внешней среды [29] должно обеспечивать экономное хранение в памяти ЭВМ и быстрое получение
Ю ВВЕДЕНИЕ [ГЛ. 1 априорную информацию и способен извлекать дополнительную информацию путем взаимодействия с окружающей средой. В нашем случае ему a priori известно, что все предметы являются твердыми многогранниками, которые могут быть окрашены в различные цвета. Известно также, что все предметы лежат на плоскости или друг на друге, а также, что предметы можно перемещать, избегая столкновений с другими предметами. Роботу задаются прототипы всех возможных объектов и с помощью своих органов чувств он определяет наличие и расположение примеров этих прототипов. В настоящее время ведутся работы по расширению модели окружающей среды робота путем добавления объектов с криволинейными поверхностями [1]. Очень важным является вопрос о способе взаимодействия между подсистемами робота, так как все подсистемы действуют совместно для выполнения одного задания. В настоящее время все подсистемы действуют под руководством управляющей подсистемы и слабо связаны непосредственно между собой. Например, рука не требует работы визуальной системы для обнаружения предмета, который она потеряла, а визуальная система, в свою очередь, не требует, чтобы рука разместила затененный предмет так, чтобы он лучше смотрелся. Но есть одно важное исключение: визуальная обратная связь, используемая для наведения захвата на предмет, который должен быть взят. Здесь визуальная подсистема непосредственно связана с рукой манипулятора [9]. Для иллюстрации работы системы мы опишем взаимосвязи между подсистемами, необходимые для решения задачи, известной под названием «мгновенное умопомра- чение« [8]. В этой задаче требуется сначала найти четыре окрашенных куба и определить цвета их граней. Затем кубы должны быть уложены в башню таким образом, чтобы четыре грани на каждой боковой стороне башни имели различные цвета. Взаимодействие между подсистемами УПРАВЛЕНИЕ, ЗРЕНИЕ, РАСПОЗНАВАНИЕ, ЦВЕТ и РУКА осуще- любой информации о свойствах среды для использования в алгоритмах распознавания образов, планирования операций и т. п.. (Прим» ред.)
§ 1.1] ОПИСАНИЕ СИСТЕМЫ Ц ствляется в этой задаче следующим образом. Подсистема УПРАВЛЕНИЕ запрашивает подсистему ЗРЕНИЕ с целью определения контура предмета, затем она обращается к подсистеме РАСПОЗНАВАНИЕ для отождествления контура с кубом. Этот процесс повторяется до тех пор, пока не будут найдены четыре куба. После этого подсистеме ЦВЕТ предлагается определить цвет, в центре каждой из трех видимых граней каждого куба. Потом подсистеме РУКА предлагается перевернуть каждый куб, а подсистеме ЗРЕНИЕ — еще раз найти контуры предметов. Подсистема РАСПОЗНАВАНИЕ еще раз определяет предметы как кубы. После того как четыре куба перевернуты и вновь распознаны, подсистема ЦВЕТ определяет цвет в центре каждой из трех видимых теперь граней каждого куба. Подсистема УПРАВЛЕНИЕ определяет положение всех кубов в башне с учетом условий задачи, после чего подсистеме РУКА предлагается реализовать вычисленное размещение. Здесь возможны два способа определения ошибок: по сообщению каждой подсистемы или с помощью подсистемы УПРАВЛЕНИЕ, после того как какая-либо подсистема сообщает о неудаче. Система программного взаимодействия робота с окружающей средой известна под названием системы «глаз — рука» [7]. Ее отдельные подсистемы работают в режиме с разделением времени, но могут взаимодействовать между собой. Это достигается благодаря следующим факторам: 1) структуре глобальных данных, позволяющей всем подсистемам получать информацию об окружающем пространстве; 2) организации процедуры поручений (message procedure), благодаря которой каждая процедура может использоваться в другой процедуре. Например, кубы перемещаются согласно процедуре поручений MOVE INSTANCE, которая в выше описанной задаче используется как для переворачивания кубов, так и для расположения их в виде башни. Подсистема рука выполняет функции общего назначения, такие как MOVE для выведения руки в нужное положение, или OPEN для открывания захвата. Для выполнения этих функций подсистема РУКА содержит базовые данные в виде чисел и процедур, которые детально описывают руку и захват. Если от руки требуется выпол-
12 ВВЕДЕНИЕ {ГЛ. 1 нить какое-то задание, то делается попытка описать это задание в терминах существующих функций руки. Если это может быть сделано, то проблема решена. Если же предлагается такое задание, которое не может быть описано набором существующих функций, тогда либо функция модифицируется, либо новая функция должна быть описана и причислена к базовым данным. Предполагается, что другие подсистемы не используют базовые данные, которые локализованы в подсистеме РУКА. Задача, решение которой потребует использования этих данных, будет рассматриваться как функция подсистемы РУКА. Дл,я других подсистем имеются глобальные переменные, описывающие текущее состояние руки. Складывание предметов в башню не является функцией руки, так как это задание может быть выполнено с помощью более простых уже существующих функций, таких как MOVE INSTANCE. Задание просто перевернуть куб является функцией руки, так как оно требует рассмотрения зоны, в которой захват может взять куб. Перемещение руки в пространстве, заполненном предметами, также является заданием для подсистемы РУКА, так как при этом требуется рассмотрение положения руки относительно других объектов или планировании траектории, по которой будет двигаться рука. Информация для подсистемы РУКА задается указанием функций и описыванием окружающего трехмерного пространства. Если пространство описано полностью, а рука не смогла выполнить задание, подсистеме УПРАВЛЕНИЕ сообщается, что задание должно быть описано иначе. Например, если предмет должен быть перемещен, но на его пути находится некоторое препятствие, программа УПРАВЛЕНИЕ должна прежде всего заставить руку обойти препятствие, а затем продолжить выполнение задания по перемещению предмета. Рука не перемещает при этом других предметов и, следовательно, не изменяет состояния окружающей среды без соответствующих приказаний подсистемы УПРАВЛЕНИЕ. Если окружающее пространство не полностью описано и подсистема РУКА не может выполнить задание, основываясь на доступной информации, то РУКА не обратится за помощью
§ i.ij ОПИСАНИЕ СИСТЕМЫ 13 к подсистеме ЗРЕНИЕ с целью исследования этого пространства, а сообщит о неудаче. Программное обеспечение подсистемы РУКА состоит из двух основных частей: планирующей программы и исполнительной программы. Для того чтобы привести в движение захват, составляется план. Если захват должен переместить предмет, планирующая программа рассматривает положение предмета относительно захвата для того, чтобы определить, каким образом можно взять предмет. Когда движение захвата спланировано, рассматривается положение других предметов относительно захвата с целью предотвращения столкновений. Планирование заключается в расчете определенных во времени законов движения в каждом сочленении исполнительного органа. После того как вычислительная машина спланировала движение в сочленениях, положение, скорость и ускорение всех звеньев руки становятся известными программе еще до того, как манипулятор начнет двигаться и, машина может рассчитать действующие моменты от сил инерции и сил тяжести каждого звена. Эти данные вместе с данными о движении в сочленениях сообщаются программе управления приводами, в которой эти данные используются для более точной реализации движения. С помощью программы управления приводом осуществляется движение исполнительного органа манипулятора по расчетной траектории; с ее помощью осуществляются также такие действия, как открывание и закрывание захвата. Траектории механизма и действия захвата, записанные в файл *), могут многократно исполняться, если это требуется, программой управления приводом. Небольшая по объему программа управления приводом используется миникомпьютером, непосредственно связанным с манипулятором. Планирующая программа может работать в режиме разделения времени и решать задачи планирования для многих таких манипуляторов. Сервопривод представляет собой стандартный дискрет-: ный привод, управляемый ЦВМ, со следующей модифика- *) Файл (file) — специально организованный массив информации в памяти ЭВМ. (Прим. ред.)
14 ВВЕДЕНИЕ [ГЛ. 1 цией: определенные параметры управления, коэффициент усиления цепи, моменты, порожденные силами тяжести и другими внешними силами, меняются вместе с изменением конфигурации механизма. В дополнение к основным функциям с помощью подсистем УПРАВЛЕНИЕ и ЗРЕНИЕ манипулятор может поворачивать рукоятки, завинчивать болты, толкать предметы и создавать усилия. В некоторых из этих задач может также использоваться тактильная чувствительность. В программах управления манипулятором могут быть предусмотрены ситуации, когда ход выполнения программ может измениться в зависимости от показаний тактильных датчиков или по другим причинам. Такие программы могут быть написаны на языке ассемблера и будут идентичны процедурам поручений, вызывающим управляющую программу. В следующих разделах этой книги мы прежде всего опишем модель исполнительного органа манипулятора и установим все соотношения, которые будем использовать (глава 2). Затем мы опишем модель окружающей среды и взаимодействие захвата с предметами этой среды (глава 3). В главе 4 описана сложная процедура MOVE INSTANCE как управляющая функция высшего уровня подсистемы РУКА, предусмотренная, главным образом, для выполнения подсистемой УПРАВЛЕНИЕ операций с твердыми многогранниками. В главе 5 мы опишем процесс расчета плавных траекторий движения исполнительного органа и ограничений, накладываемых на траектории. Далее описывается контур следящего привода и приводится список (глава 7) элементарных функций управления манипулятором. Конструкция манипулятора полностью описывается в [21], а мы приводим ее краткое описание в приложении П.1. Даны два других приложения. В приложении П.2 описывается язык программирования SAIL — разновидность АЛГОЛа с добавлением элементов языка LEAP. Язык SAIL предназначен для записи программ, и мы используем его в этой работе для написания некоторых алгоритмов. В приложении П.З коротко описаны однородные координаты векторов и преобразования, которые более подробно представлены в работе [20].
§ i.2] ИСТОРИЯ 15 § 1.2. История Первые механические руки были разработаны в 1947 году в Аргоннской национальной лаборатории для работы с радиоактивными материалами [11]. Это были копирующие системы, в которых манипулятор повторял движения человека-оператора. В 1948 году в эти системы была введена обратная связь по отражению усилий, чтобы оператор мог чувствовать силовую нагрузку, испытываемую манипулятором [10]. Ранние модели манипуляторов без силовой обратной связи были разработаны для выполнения повторяющихся операций [16]. Оператор перемещал захват манипулятора из одной позиции в другую, а положения сочленений исполнительного органа при этом регистрировались. Затем манипулятор мог циклически повторять эти зарегистрированные положения синхронно с внешним задающим устройством. В 1961 г. Эрнст [4] разработал манипулятор с тактильными датчиками, управляемый ЦВМ. С помощью тактильных датчиков манипулятор мог исследовать определенную область пространства и, обнаружив предмет., положить его в коробку. В 1963 году был исследован вопрос об обнаружении и распознавании многогранных объектов на основе полутоновых изображений [19]. В 1968 году программы манипуляторов позволили, используя телевизионные камеры в качестве источников визуальной информации, находить предметы, которые должен был взять захват [24]. В 1968 году Пипер исследовал кинематику манипулятора и построил такие траектории его движения, двигаясь по которым в пространстве, содержащем препятствия, манипулятор избегал столкновений. Эту работу продолжил Кан, который исследовал динамику манипулятора и разработал конструкцию следящего привода с релейным управлением [18], [15]. С помощью силовой обратной связи Иноу добился того, что манипулятор смог выполнять такие задания, как «вставить штырь в отверстие» или «повернуть рукоятку» [14]. Эдзири разработал систему, позволяющую собирать блоки, при этом сборочный чертеж блока использовался в качестве источника визуальной информации [3].
16 МОДЕЛЬ МЕХАНИЧЕСКОЙ РУКИ [ГЛ. 2 В 1972 году Гото создал систему, позволяющую находить и распознавать предметы типа многогранников с помощью тактильных датчиков и затем, перемещая и поворачивая их," компактно укладывать [12]. Последние работы II Международного симпозиума по промышленным работам дают общий обзор состояния дел по рассматриваемым вопросам. Глава 2 МОДЕЛЬ МЕХАНИЧЕСКОЙ РУКИ В этом разделе мы рассмотрим конструкцию исполнительного органа манипулятора и разработаем его модель [23]. Будет описан алгоритм, который по заданному положению захвата отыскивает значения обобщенных координат руки. Затем, основываясь на модели руки, рассмотрим. задачу о движении в приращениях. Далее выведем соотношения между силами и ускорениями для того, чтобы рассчитать действующие на звенья руки силы инерции и силы тяжести [23]. И, наконец, выведем соотношения между силами и моментами, действующими на захват, и шестью моментами реакций в сочленениях механизма. Результаты этой главы используются в последующих разделах, но, поскольку эти соотношения относятся к модели руки, все они выводятся здесь. § 2.1. Кинематика Манипулятор, изображенный на рис. 2.1, имеет шесть степеней подвижности, позволяющий расположить захват в любом месте и с любой ориентацией в пределах ограничений движения в сочленениях. Исполнительный орган состоит из шести звеньев, каждое из которых связано со следующим звеном с помощью подвижного соединения. Подвижные соединения могут быть двух типов: призматические, обеспечивающие относительное скольжение, и вращательные. Для того чтобы описать преобразование систем координат звеньев в терминах обобщенных координат и огра-
§ 2.1] КИНЕМАТИКА 17 ничений, накладываемых подвижными соединениями, введем координатную систему, в которой неявным образом содержится ограничение сочленения. Опишем JL-матрицы, которые выражают отношения между системами координат звеньев, и Т-матрицы (матрицы преобразования звеньев), определяющие положение и ориентацию каждого звена в пространстве. Рис. 2.1. Механическая рука. Каждому звену поставлена в соответствие ортогональная система координат, связанная со звеном (см. рис. 2.2). Для звена i ось zt направлена вдоль оси сочленения, соединяющего звено i со звеном i + 1. щ — ось, направленная вдоль общего перпендикуляра к осям сочленений звена с направлением от »^г к zt. Ось уt является третьей осью правой системы координат. Мы можем преобразовать систему координат i в систему координат i + 1 с помощью вращения, двух переносов и еще одного вращения, выполняемых в следующем порядке. 1. Вращения вокруг оси &t на угол 9*+1, до тех пор пока ось xt не станет параллельной оси xi+1. 2. Переноса вдоль оси zt на величину S|+1, после которого начало координат оказывается в точке пересечения с осью »г общего перпендикуляра, проведенного к осям 3. Переноса вдоль оси xi+1 на величину Я|+1, обеспечивающего совмещение начал систем координат.
18 МОДЕЛЬ MFXAHII4ECKOfl[ РУКИ [ГЛ. 2 Уь Рис. 2.2. Системы координат звеньев. Рис. 2.3. Системы координат звеньев механической руки.
S 2.U КИНЕМАТИКА 19 4. Вращения вокруг оси xi+1 на угол ai+1 для совмещения осей z. Переменной величиной для сочленения вращательного типа является угол 8; переменной величиной призматического соединения является величина s. Для манипулятора рассматриваемой конструкции поместим начало системы координат в основание плеча. Мы имеем два вращательных шарнира, после которых идет призматическое соединение, а затем следуют три вращательных шарнира с пересекающимися осями. Заданы три величины sx = 16,24 дюйма, s2 = 6,05 дюйма и s6 = 10,35 дюйма *), s4 = s5 = 0, a s3 является переменной величиной. Системы координат звеньев руки показаны на рис. 2.3. Значения параметров аг-, st и 0^ приведены в следующей таблице: Номер сочленения 1 2 3 4 5 6 а0 —90 90 0 —90 90 0 S, ДЮЙМ 16,24 6,05 S3 0 0 10,35 е° 0i 62 -90 94 05 бе Если мы представим некоторую точку в системе координат звена i вектором JRiy то соотношение между координатными системами звеньев i и i — 1 может быть выражено следующим образом **): (2.1) *) Ниже автором используются единицы англо-американской системы мер: дюйм (25,4 мм) и унция (28,35 г) (Прим. ред.) **) При преобразованиях декартовых координат необходимо выполнять преобразование параллельного переноса и преобразование вращения. С помощью введенных (4 X 1)-векторов и (4 X 4)- матриц оба преобразования совмещаются в одной матричной операции (см. приложение П. 3). Это обеспечивает компактную запись геометрических, кинематических и динамических соотношений исполнительного органа манипулятора. (Прим. ред.)
20 МОДЕЛЬ МЕХАНИЧЕСКОЙ РУКИ [ГЛ. 2 где At — матрица (4 х 4) 1 1 0 0 — cos ot^ sin 6| cos a{ cos 0! sinai 0 sin ai sin 6i < — sin аг cos 6| < cos a,- 0 7|COS 6| 7^sin 9| i . (2.2) В таблице 2.1 приведены значения обобщенных координат для положения манипулятора, показанного на рис. 2.1. Соответствующие значения матриц А: -0,10 -1,0 0,00 0,00 —0,38 -0,92 0,00 0,00 0,00 -1,0 0,00 0,00 0,79 0,62 0,00 1 0,00 -0 -1,0 0 0,00 0 0,00 0,00 1,00 0,00 1,00 0,00 0,00 0,00 0,0 0,0 0,00 —1,0 0,00 0,17 0 0,99 0 0,00 1 0,00 0 0,00 ,00 ,00 - ,00 ,00 0,36 -0,93 0,93 0,00 0,00 0,36 0,00 0,00 00 0,00 Д0 0,00 ,00 16,24 00 1,0 —0,92 0,0( 0,38 0,0( 0,00 6,0! 0,00 1,(K 0,00 0,00 1,00 0,00 0,62 0,79 0,00 0,00 0,99 ^0,17 0,00 0,00 0,00 0,00 1,00 0,00 0,00 0,00 22,2 1,0 0,00 0,00 0,00 1,0 0,00 0,00 0,00 1,00 0,00 0,00 10,35 1,00 ) ) ) • Если звену «0» *) (стойке манипулятора) поставить в соответствие систему координат, связанную со столом, *) Здесь и далее номера звеньев соответствуют связанным системам координат на рис. 2.3. (Прим. ред.)
5 2.U КИНЕМАТИКА 21 Таблица 2.1 Номер сочленения 1 2 3 4 5 6 Значения обобщенных координат 6i=-95,7 62=-112,4 5з=22,2 04=— 38,2 6б = 80,4 бе =68,9 то можно перейти от системы координат любого звена к системе координат звена «0» следующим образом: или где Мо = Til&i, { = АгА2 ... (2.3) (2.4) (2.5) Матрица Tt — это матрица преобразования i-го звена руки, которая описывает его положение в системе координат стола. Для матриц А, которые приведены в предыдущем примере, соответствующие матрицы Т имеют следующий вид: 24 = 2 = -0,10 0 0 0 0 -1,0 0,00 0,00 04 0,00 0,00 -1,00 0,00 1,0 38 —0,10 92 00 -1,00 0,10 0,00 0,00 1,0 —0,10 0,00 0,00 0,09 0,92 0,00 —0,38 0,00 0,04 0,38 0,00 0,09 0,92 0,92 -0,38 0,00 0,00 0,00 0,00 16,24 1,00 6,02 —0,60 16,24 1,00 8,06 19,78 7,79 ' 1,0
22 МОДЕЛЬ МЕХАНИЧЕСКОЙ РУКИ [ГЛ. 2 -0,81 -0,09 -0,59 8,06 0,16 —0,92 0,36 19,78 —0,57 0,38 0,73 7,79 0,00 0,00 0,00 1,00 —0,23 —0,59 —0,78 8,06 —0,93 0,36 —0,00 19,78 0,28 0,73 —0,63 7,79 0,00 0,00 0,00 1,00 -0,63 -0,00 -0,78 -0,00 0,00 1,00 —0,00 19,78 0,78 —0,00 —0,63 1,30 0,00 0,00 0,00 1,00 Матрица Т* представляет собой матрицу преобразования захвата — последнего звена руки. Мы можем интерпретировать эту матрицу следующим образом: правый столбец матрицы определяет положение (в системе координат стола) точки Р, расположенной в центре между губками захвата. Второй столбец определяет направление оси у захвата (см. рис. 2.3); мы назовем его вектором ориентации О. Вектор ориентации проходит через концы губок захвата. Третий столбец определяет ось & и характеризует направление, в котором нацелен захват. Мы назовем его вектором под- Рис. 2.4. Основные координатные направления захвата. хода А. Теперь мы можем переписать Тв в виде (О (О (О ХА)Х Х-А)у X A)z 0 ох °У °г 0 Ах Л Аг 0 Рх Ру Рг 1 (2.6) Вектор подхода может быть выражен через угол подхода следующим образом. Определим базовый вектор
§ 2.2] РЕШЕНИЕ ОБРАТНОЙ ЗАДАЧИ О ПОЛОЖЕНИИ РУКИ 23 подхода It a с помощью векторного произведения Ba = Oxfc, (2.7) где U — орт вектора # системы координат стола. Угол подхода — это угол между векторами А и JBa, измеренный относительно вектора О (рис. 2.4). § 2.2. Решение обратной задачи о положении руки *) Обратная задача о положении состоит в определении значений шести обобщенных координат руки с целью привести исполнительный орган в такое состояние, в котором захват будет иметь положение и ориентацию, соответствующие заданной матрице Гв. Так как оси последних трех шарниров пересекаются, мы можем получить решение обратной задачи в замкнутой форме [18]. Положение конца третьего звена определяется из векторного соотношения L3 = Р - i6, (2.8) где Lb — вектор, модуль которого равен sQj а направление совпадаете направлением вектора А (см. рис. 2.5). Вектор W -f= (m?i, м>2» м>з)> направленный от плеча к концу третьего звена, можно представить в виде разности W = L3 - Lt. (2.9) Теперь мы можем вычислить значение переменной s3 сочленения призматического типа: *3 = (wl + w\ + w\ - si)4*. (2.10) Располагая значением s3, находим 0!: Эх = Э + Ф, (2.11) где 0 и ф определяются из условий (см. рис. 2.5) tg0 = w2/wly (2.12) sin ф = s2/(wl + и%У/г. (2.13) *) Название параграфа в оригинале «Arm solution» здесь изменено, так как целесообразно отличать прямую задачу, в которой требуется вычислить положение и ориентацию захвата по заданным значениям обобщенных координат, от задачи, рассматриваемой ниже. (Прим. ред.)
24 МОДЕЛЬ МЕХАНИЧЕСКОЙ РУКИ [ГЛ. 2 Значение 02 находим из соотношения cos 92 = w3/s3. (2.14) Теперь можно вычислить единичные векторы третьего Рис. 2.5. Определение обобщен- Рис. 2.6. Определение обоб- ных координат 6Ь 62 и sz. щенных координат 64, Э5 и 6в. звена уъ и «3 и вектор Вг = «зХ«в (2.15) (см. рис. 2.6). Далее последовательно определяем: 04 — угол поворота между векторами Rr и у3 вокруг г3, (2.16) 0б — угол поворота между векторами г6 и zz вокруг Rr (2.171 0в — угол цоворота между векторами yQ и 2?г вокруг ^в. (2.18) Все подвижные соединения, за исключением последнего, допускают относительные перемещения в ограниченных пределах, поэтому после всех вычислений необходимо убедиться, что полученное решение соответствует заданным ограничениям.
$ 2.3] РЕШЕНИЕ ЛИНЕАРИЗОВАННОЙ ОБРАТНОЙ ЗАДАЧИ 25 § 2.3. Решение линеаризованной обратной задачи о положении Располагая решением обратной задачи о положении руки, часто бывает необходимо подсчитать малые приращения обобщенных координат с тем, чтобы осуществить малое изменение положения захвата при неизменной его ориентации. Мы можем получить линейную часть изменения положения dR0 при изменениях обобщенных координат dqj (j = 1, 2, . . ., 0: где dB0 = 3=1 Отсюда следует, что матрица TJij = АгА2 ...Aj и если /*-е сочленение вращательного типа, то 0—100 1 0 0 0 0 0 0 0 0 0 0 0 а для призматического подвижного соединения 0 0 0 0 __ 0 0 0 0 ""0001 0 0 0 0 (2.19) (2.20) (2.21 (2.22) (2.23) Вычислив шесть матриц С/*в7- (/ = 1, 2, . . ., 6) по формуле (2.20), получим линейные части изменений шестнадцати элементов матрицы захвата Тв при малых перемещениях в каждом из шести сочленений. Это соответствует шестнадцати уравнениям с шестью неизвестными, из которых только" шесть уравнений независимы *). *) При некоторых положениях исполнительного органа число независимых уравнений может быть меньше шести. (Прим. ред.)
26 МОДЕЛЬ МЕХАНИЧЕСКОЙ РУКИ [ГЛ. 2 Таблица 2.2 Мы должны выделить эти шесть уравнений и затем решить их, чтобы определить требуемые изменения qj. В каждой матрице J7ey (/ = 1, 2, . . ., 6) возьмем три первых элемента из правого столбца (uejU, i = 1, 2, 3), соответствующих компонентам перемещения dx, dy, dz. Затем возьмем два наименьших элемента (ueju3, u6jv3) из третьего столбца (столбца вектора подхода) для обеспечения его направления. И, наконец, возьмем один элемент (uqjw2) из второго столбца (столбца вектора ориентации), чтобы устранить вращение вокруг вектора подхода. Шесть уравнений Номер сочленения 1 2 3 4 5 6 dq 0 7,2 — 1,1 — 1,0 4.4 5.7 W6114 "6214 "6314 "6414 "6514 "6614 "6124 "6224 "6324 "6424 "бб24 "6624 "6134 "6234 "6334 "6434 "6534 "6634 "eill3 "б2цЗ "63U3 "б4г<3 "65U3 "ббиЗ "61U3 "62V3 "63U3 "64U3 "вбГЗ "66U3 "в!гг2 "62u>2 "63U'2 "в4м>2 "651У2 "бви?2 dqz dqA dq6 dqe .(2.24) должны быть решены для определения шести значений приращений обобщенных координат dqj (/ = 1, 2, ... ..., в) *). Для положения руки, ранее описанного и определенного матрицами А и Т, перемещению dz = 3,0 (dx = = dy = 0) соответствуют найденные значения dqj, приведенные в таблице 2.2. *) Кроме тех случаев, когда число независимых уравнений меньше шести, плохая обусловленность матрицы уравнений (2.24) на траекториях встречается довольно часто. Поэтому данному методу свойственны все трудности непосредственного решения1 линейных алгебраических уравнений на ЦВМ с ограниченной точностью. Методы, предложенные в [34], учитывают эти особенности. (Прим. ред.)
§ 2.4] ДИНАМИКА 27 § 2.4. Динамика С помощью кинематической модели механизма руки можно получить также и динамическую модель [23]. Выведем функцию Лагранжа исполнительного органа манипулятора [15], действующего в поле сил тяжести, и получим уравнения, связывающие ускорения и моменты в сочленениях, в том числе и статические моменты, необходимые для преодоления сил тяжести. Эти результаты будут использованы в главе, посвященной автоматическому управлению приводом манипулятора. Функция Лагранжа L определяется как L = K -P, (2.25) где К — кинетическая энергия, а Р — потенциальная энергия системы, выраженные в терминах обобщенных координат. Обобщенными координатами q являются переменные 8 или s в зависимости от типа подвижного сочленения — вращательного или призматического. Уравнения движения получаются из условий *) dldt (dL/dqj) — dL/dqj = Fj, (2.26) где Fj — обобщенная сила, отнесенная к /-му подвижному соединению. Из (2.19) мы можем получить скорость любой точки dB0/dt = ГгВь (2.27) где г (2.28) Теперь можно выразить кинетическую энергию звена следующим образом. Обозначим бесконечно малую массу некоторой точки с координатами Mt в звене i через dm и вычислим ее кинетическую энергию dKt = 1/2 | Bt | dm, (2.29) *) Соотношения (2.26) представляют собой уравнения Ланг- Ранжа второго ряда. (Прим. ред.)
28 МОДЕЛЬ МЕХАНИЧЕСКОЙ РУКИ [ГЛ. 2 ИЛИ dK{ = 1/2 tr (Vi m *). (2.30) Полная кинетическая энергия i-то звена вычисляется с помощью интегрирования Кг = 1/2tr Vj) . (2.31) Определим Kil2 1/2 (^n- 1/2 (k\lx + + Лг22 ~~ Лг33^ , (2.32) где kijk — радиус инерции звена i относительно осей /, к; В\ = (Хи Y*i, Zu 1)T —координаты центра масс звена i; mi — масса £-го звена. Кинетическая энергия всех звеньев: (2.33) 1=1 Потенциальная энергия механизма в поле сил тяготения (силы тяготения действуют в отрицательном направлении оси #0) выражается следующим образом: р = - = (0, 0, g, 0), (2.34) (2.35) *) tr (A) — след (trace) матрицы А — линейная операция, вычисляющая сумму диагональных элементов квадратной матрицы; т. е. tr (-4) = 2 ац* (Прим. ред.)
§ 2.5] СИЛЫ И МОМЕНТЫ 29 g — ускорение свободного падения. Подставим (2.33) и (2.34) в (2.35) и, выполнив дифференцирование, получим г; = Л. (2.36) ^ Мы получили уравнения, связывающие ускорения и обобщенные силы. С помощью этих уравнений в § 6.1 будем вычислять силы инерции и обобщенные силы, порожденные силами тяжести. § 2.5. Силы и моменты Вычислим обобщенные силы, соответствующие силе F', приложенной в начальной точке системы координат захвата, и моменту Ж действующему на захват. Представим силу в системе координат п-то звена (см. рис. 2.3) пх О (2.37) i аналогично представим момент пх М. Mnv Мпг О (2.38) Приведем силу F и момент М к системе координат захвата Jj£q = jl 0 д (2.39) (2.40)
30 МОДЕЛЬ МЕХАНИЧЕСКОЙ РУКИ [ГЛ. 2 Затем продолжим приведение силы и момента к системам координат предшествующих звеньев по следующим формулам: Fn^ = AnFn, (2.41) Мп.х = АпМп. (2.42) Однако сила Fn-x в общем случае не проходит через начало (п — 1)-й системы координат (см. рис. 2.7). Поэтому получаем дополнительный момент Рп X *Vi, (2.43) где Рп — правый столбец матрицы Ап. Общий момент выразится следующим образом: Мn-i = АпМп + Рп х Fn-i- (2.44) Если (п — 1)-е сочленение вращательного типа, то моментом реакции будет момент Mn~lt z, если же сочленение Рис. 2.7. Преобразование сил и моментов. призматического типа, то силой реакции будет сила Fn-i, *• Эти шесть реакций называются обобщенными силами. Бели захват испытывает силовое воздействие, то можно рассчитать для каждого подвижного соединения обобщенную силу и сложить ее с аналогичной силой, порожденной силами тяжести. Если в каждом подвижном соеди-j нении будет действовать указанная обощенная сила, то захват будет испытывать требуемое силовое воздействие.
ГЛ. МОДЕЛЬ ВНЕШНЕЙ СРЕДЫ 31 Таблица 2.3 Обобщенные силы Fz = — ЮО унций Номер сочленения 1 2 3 4 5 6 Сила 0,0 -1968,0 38,2 -741,9 —290,6 0,0 Mz = — 100 унций-дюйм Номер сочленения 1 2 3 4 5 6 Сила -100,0 0,0 0,0 38,2 -72,7 62,7 Для рассмотренного выше положения руки приведем два примера: в первом случае на захват действует сила — 100 унций в направлении оси #0, а во втором случае момент — 100 унций «дюйм относительно оси #0 (см. таблицу 2.3). Глава 3 МОДЕЛЬ ВНЕШНЕЙ СРЕДЫ В этой главе описывается модель внешней среды манипулятора, которая содержит твердые многогранные объекты. Это такие предметы, которые могут быть идентифицированы визуальной системой, и их представление поддерживается постоянным. Это сделано для программ подсистем РУКА и ЗРЕНИЕ, которые используют общую базовую информацию. Вначале мы опишем представление прототипов объектов и способ спецификации примеров *) таких прототипов. Решение задачи взятия захватом объектов такого класса сводится к нахождению набора векторов ориентации. *) Речь идет о двух типах математических моделей объектов: прототипах и примерах (instances). Один прототип ставится в соответствие объектам определенного к л асе а, например кубам. Эта модель зафиксирована в некоторой системе координат и содержит всю общую информацию об объекте, не связанную с его текущим положением в пространстве. Напротив, примерам соответствует текущее положение в модели пространства. Программа ЭВМ «манипулирует» примерами, планируя операцию. (Прим. ред.)
32 МОДЕЛЬ ВНЕШНЕЙ СРЕДЫ [ГЛ. 3 § 3.1. Описание прототипов Предметы описываются в терминах прототипов. Для идентификации предмета нужно ассоциировать предмет с его прототипом, причем один и тот же прототип может представлять многие объекты или примеры. Вся общая информация, относящаяся к примерам, содержится только в прототипе. Положение объекта ассоциируется с положением примера, так как 1/4 F7 [/V каждый пример имеет опреде- *1у ленное положение. Положение прототипа характеризуется тем, что его центр масс находится в начале координат, а его главные центральные оси инерции направлены вдоль осей системы координат. Каждая вершина задается вектором, модуль которого равен расстоянию от центра масс до вершины, а каждая плоскость грани представлена матрицей-строкой, задающей ее положение и направление внешней нормали. Отдельным частям прототипа (грань, вершина, ребро) ставятся в соответствие «элементы списка» (items). (Читатели, не знакомые с понятием «item», могут обратиться к приложению П.2.) Информация, связанная с пространственным расположением вершин и граней, хранится в массиве «признаков» (Datums) этих «элементов». Каждый из этих «элементов» ассоциируется с прототипом, который в свою очередь является «элементом». Для определения того, какая топологическая часть ассоциируется, используются различные свойства. В качестве примера рассмотрим куб, изображенный на рис. 3.1: Рис. 3.1. Прототип куба. FACE (грань) <g) CUBE (куб) = F1, FACE® CUBE = F2, FACE® CUBE = F6, (3.1)
§ 3.1] ОПИСАНИЕ ПРОТОТИПОВ 33 VERTEX (вершина) (g) CUBE = VI, VERTEX® CUBE = V2, VERTEX® CUBE = V8, EDGE (ребро) ® CUBE вЕ1,| EDGE ® CUBE = E2, (3.2) (3.3) EDGE ® CUBE = E12. Длина ребра хранится как его «признак». Каждой грани мы ставим в соответствие совокупность вершин и ребер. Рассмотрим, например, грань F1: BOUNDARY (граница) ® Fl = El, BOUNDARY ® Fl = E2, BOUNDARY ® Fl = E3, BOUNDARY ® Fl == E4, CORNER (?/3(m)®F1 = V1, CORNER ®F1 = V2, CORNER ®F1==V3, CORNER ®F1=V4. (3.4) (3.5) (3.6) А для определения ребер достаточно указать их концевые точки ENDPT {граничная точка) (g)El== VI, 1 ENDPT(g)El=V2 J и т. д. Для всех объектов, представленных на рис. 3.2, имеются прототипы и данные о них содержатся в глобальной зоне памяти ЭВМ, доступной для всех программ. Основываясь на таком описании, можно найти множество соотношений, например: для грани F1 требуется найти соседние с ней грани, имеющие общую с F1 вершину VI. Эту задачу можно решить, отыскивая все грани, удовлетворяющие условию FOREAGH {для любого) Р.| VERTEX <g) F = VI. 2 Р. Пол
34 МОДЕЛЬ ВНЕШНЕЙ СРЕДЫ [ГЛ. 3 Здесь под F понимается любой «элемент», удовлетворяющий приведенному условию. Набор таких F — это все грани, которые имеют общую вершину VI. Однако они не обязательно прилегают к F1. Для удовлетворения этого RPP122 RPP124 РРР112 о /?РРМ Клин 124 Клин 122 L-образная призма Рис. 3.2. Прототипы. (Обозначения на рисунке: например, RPP 112 — прямоугольный параллелепипед 1x1x2). условия мы должны проверить, имеют ли эти грани общее ребро с F1 и что в их число не входит исходная грань F1: FOR EACH F, E | VERTEX (g) F = VI Л EDGE (g) F == E Д EDGE (g) Fl = E Эти условия определяют набор граней, которые яв-' ляются прилегающими к F1 гранями и имеют общую с F1 вершину VI.
§ 3.1] ОПИСАНИЕ ПРОТОТИПОВ 35 Другой пример: требуется обойти вершины грани F1 по порядку, начиная с вершины VI: FOREACH Е, Н | EDGE ® F1 == Е AENDPT(g)E = H IF H = VI THEN DONE; T«-HEND; Если пример идентифицирован, создается новый «элемент», который ассоциируется с прототипом следующим образом: INSTANCE (пример) ® CUBE == INST1. (3.7) Положение и ориентация примера выражаются с помощью матрицы преобразования, которая связывает координаты прототипа с координатами примера (см. приложение II.3). Эта матрица (4 X 4) хранится в запоминающем устройстве как «признак» примера. Большую часть расчетов можно выполнить быстрее, если сначала преобразовать необходимые данные о примере в систему координат прототипа, чем вести расчеты в системе координат самого примера. Предположим, например, что требуется отыскать опорную грань, опираясь на тот факт, что через эту грань проходит вектор силы тяжести. Мы можем рассмотреть каждую грань примера отдельно, подсчитать, совпадает ли направление внешней нормали с направлением силы тяжести, а затем определить, проходит ли вектор силы тяжести через эту грань. Все это потребует преобразования координат каждой вершины грани примера. Будет более эффективным вначале преобразовать вектор силы тяжести в систему координат прототипа с помощью обратного преобразования и выяснить, через какую грань этот вектор проходит, минуя, таким образом, все остальные преобразования, каждое из которых занимает около 0,5 миллисекунд машинного времени. Этой схемой «прототип — примерь мы можем представить все объекты типа многогранников. Программа обработки визуальной 2*
36 МОДЕЛЬ ВНЕШНЕЙ СРЕДЫ [ГЛ. 3 информации идентифицирует объекты по двумерным изображениям. В следующей главе мы покажем, что этой информации достаточно и для программы, управляющей перемещением руки. § 3.2. Векторы ориентации Если требуется переместить пример некоторого прототипа, то используется описание прототипа. Кроме информации о положении примера, получаемой непосредственно путем преобразования координат, описание прототипа позволяет рассчитать способ взятия предмета захватом. Информация о положении и ориентации объекта еще не определяет положения захвата при взятии объекта. И хотя существует множество способов взятия предмета, мы ограничим их число с помощью следующих эвристических приемов. Потребуем взять объект за две параллельные грани по оси, проходящей через центр масс. Рис. 3.3. Векторы ориентации. Это предотвратит вращение предмета. Одна из двух граней (но не две одновременно) может быть заменена вершиной предмета. Вместо граней можно также использовать ребра объекта, если общая нормаль к ним, проходящая через точки контакта, пересекает центр масс. Эти эвристики определяют набор векторов ориентации. Если захват расположен так, что один из указанных векторов ориентации проходит через центр масс, то в таком положении можно взять объект (см. рис. 3.3). Для определения всевозможных векторов ориентации программа сначала составляет список всех векторов, проходящих через центр масс тела и либо а) пересекающих под прямым углом какое-либо ребро, либо б) пересекающих под прямым углом какую-либо грань, либо в) проходящих через какую-либо вершину. Такие векторы назовем «контактными» векторами. Затем этот список исследуется с целью определения пары антипараллельных (парал-
§ 3.2] ВЕКТОРЫ ОРИЕНТАЦИИ 37 дельных, но противоположно направленных) векторов, причем надо следить, чтобы оба вектора не обладали свойством в). Это делается следующим образом: для отыскания ' контактных векторов для граней программа просто проверяет, пересекает ли перпендикуляр, проведенный из центра масс к грани, эту грань, т. е. перпендикулярна ли плоскость грани контактному вектору в точке контакта. С помощью алгоритма это можно выразить так: FOREACH F I FACE ® PROTOTYPE = F DO BEGIN D <- DATUM (F); IFD > 0.0 THEN GO TO NFACE; COMMENT Если использовать эту плоскость, то центр масс не будет лежать между губками захвата; IF CONTAINED (DATUM (F), F)THEN FOUND ONE; COMMENT Если точка пересечения нормали и грани лежит в пределах грани, надо занести эту точку в список контактных векторов: NFACE : END. Процедура CONTAINED подсчитывает количество пересечений границы области лучом, выходящим из некоторой точки. Если количество пересечений нечетное, то точка лежит внутри ограниченной области, в противном случае — за ее пределами. Для нахождения контактных векторов для ребер необходимо, чтобы перпендикуляр, опущенный из центра масс на ребро, пересекал это ребро. Необходимо также, чтобы ребро относилось к выступающему двугранному углу. С помощью следующего алгоритма программа находит векторы, удовлетворяющие первому условию: FOREACH E, А, В I EDGE ® PROTOTYPE = Е Л ENDPT ® Е = А Л ENDPT <g) E = В Л А ф В DO BEGIN Т+-А.(А — В)/(А — В).(А — В); COMMENT T — есть расстояние от концевой точки А до нормали, деленное на расстояние от А до В; IF Т<0.0\/Т>1.О THEN GO TO NEDGE; COMMENT Нормаль пересекает ребро;
38 МОДЕЛЬ ВНЕШНЕЙ СРЕДЫ [ГЛ. 3 COMMENT С —вектор, выходящий из центра масс и перпендикулярный ребру в точке контакта (см. рис. 3.4). Теперь проверим, является ли это ребро внешним; FOREACH N1, N2 1 BOUNDARY (g) N1 = Е Л BOUNDARY ® N2 = Е Л N1 ф N2 DO; N1 +- DATUM (Nl); N2 <- DATUM (N2); 1ST «- N1 x Ж2; i Центр масс Рис. 3.4. Точка контакта^на ребре. Рис. 3.5. Внешняя вершина. COMMENT -2V — опорный вектор такой, что вращение вокруг N от N1 к N2 будет происходить во внешнем про- странстве; V <— NЛ х С' IF N • V < 6 THEN FOUND ONE; COMMENT С указывает внешнюю область относительно вершины; END; END;
§ 3.2] ВЕКТОРЫ ОРИЕНТАЦИИ 39 Для определения контактных векторов в вершинах мы можем использовать только внешние углы предмета (см. рис. 3.5). Так, для всех ребер этих вершин угол 6 (см. рис. 3.5) должен быть меньше 90°. FOREACH V| VERTEX ® BDY = VDOBEGIN C2<-F.F; FOREACH E, A | ENDPT ® Е = V IF J.-F>C2 THEN GOTO NOGOOD; FOUND ONE; NOGOOD:END; Программа исследует список контактных векторов, выискивая пары антипараллельных векторов, но отбрасывая те из этих пар, которые проходят через вершины. Эти контактные векторы тогда являются векторами ориентации, которые хранятся в памяти ЦВМ вместе со всей информацией о прототипе. Информация о контактах описывается следующим образом: ORIENTATION® BDY = 01, ORIENTATION ® BDY = 02, ORIENTATION (x) BDY = 09, CONTACT®01 = F1, ] CONTACT ® 01 ss F3, (3.9) CONTACT® 09 ==E6, CONTACT (g) 09 = E2. Информация о контактных векторах и точках контакта используется для того, чтобы определить, какие векторы ориентации могут быть выбраны для данного примера. «Признаком» вектора ориентации является матрица из пяти элементов, формируемых следующим образом: если а и 6 — пара контактных антипараллельных векторов, то «признак» вектора ориентации составляют
40 МОДЕЛЬ ВНЕШНЕЙ СРЕДЫ [ГЛ. 3 числа {al-\ {al- - a\ + a\) \- a\ + a% )Vtf o2 = )l/S 04 = flt2 1 / о5 = (а\ Для прямоугольного параллелепипеда с размерами 1,25 дм X 1,25 дм X 2,55 дм программа вычислит девять векторов ориентации, приведенных в таблице 3.1. Таблица 3.1 Векторы ориентации для прямоугольного параллелепипеда Oi 1,00 0,00 0,00 0,71 0,71 0,44 0,44 0,00 0,00 0,00 1,00 0,00 0,71 -0,71 0,00 0,00 0,44 0,44 Оз 0,00 0,00 1,00 0,00 0,00 0,90 —0,90 -0,90 0,90 О* 1,60 1,60 0,78 1,13 1,13 0,70 0,70 0,70 0,70 ов —1,60 —1,60 —0,7» -1,13 -1,13 -0,70 —0,70 —0,70 —0,70 Каждая строка в таблице 3.1 представляет вектор ориентации. Первые три элемента olf o2, о3 непосредственно указывают направление. Два контактных вектора задаются- следующим образом: 6 = Все операции исполнительного органа с объектами могут быть преобразованы к манипуляциям с этими векторами. Для того чтобы взять объект, мы должны рассматривать только векторы ориентации. Выберем вектор ориентации и определим угол подхода; тогда можно сформировать матрицу преобразования захвата (матрицу 4x4) (см. § 2.1) и получить решение задачи о положении руки.
§ 4.1] ДОПУСТИМОЕ МНОЖЕСТВО РЕШЕНИЙ 41 Глава 4 ПЕРЕМЕЩЕНИЕ ПРЕДМЕТОВ К процедуре MOVE INSTANGE мы обращаемся, когда манипулятору требуется переместить предмет. Эта процедура прежде всего требует найти такое положение захвата, которое позволяет ему взять объект в положении, определенном матрицей Tt. Затем необходимо найти второе положение захвата, при котором объект, уже взятый захватом, займет положение, описываемое матрицей Т/. Индексы i и / соответствуют начальному и конечному положению предмета. § 4.1. Допустимое множество решений Для манипулирования объектами программе надо найти конфигурацию руки в ее начальном и конечном положениях. Для этого программа определяет множество возможных углов подхода для каждого вектора ориентации. Затем она выбирает некоторый угол подхода из пересечения двух множеств. По заданному положению и вектору ориентации программа должна рассчитать диапазон возможных углов подхода, при которых исполнительный орган может достигнуть предмета с учетом конструктивных ограничений (см. рис. 4.1). При этом используются различные эвристические методы, позволяющие найти такой угол подхода, которому соответствуют допустимые значения обобщенных координат руки, если такое решение вообще существует. Далее проверяется, для всех ли углов подхода можно найти обобщенные координаты руки. Если решение существует, но не для всего диапазона Y/SS///////S/S//////S// Рис. 4.1. Угол подхода ограничен конструкцией руки.
42 ПЕРЕМЕЩЕНИЕ ПРЕДМЕТОВ [ГЛ. 4 углов, то границы допустимого множества углов подхода определяются методом дихотомии. Для этой цели используется процедура определения обобщенных координат, которая проверяет физическую реализуемость решений. иредельиыиугол ^-^ подхооа \ Предел Рис. 4.2. Угол подхода ограничен плоскостью стола. Чтобы не допустить жесткого соприкосновения исполнительного органа манипулятора с опорной плоскостью (см. рис. 4.2), программа рассчитывает такой диапазон углов подхода, при котором звено 5 (рис. 2.3) будет находиться над опорной плоскостью. Полученное множество углов подхода сравнивается с ранее определенным множеством углов, которое учитывает только конструктивные ограничения. В результате пересечения этих множеств определяется диапазон углов подхода, в котором отражены одновременно оба типа ограничений. Такой процесс повторяется и для учета ограничений, налагаемых опорной стойкой манипулятора. Итоговый диапазон допустимых углов подхода выбирается так, чтобы предотвратить соприкосновение руки со стойкой и удовлетворить всем вышеприведенным ограничениям. Возможные столкновения с близлежащими предметами не рассматриваются. § 4.2. Перемещение примера Первой операцией процедуры MOVE INSTANCE является выбор таких векторов ориентации прототипа (см. § 3.2), которые могут быть использованы для захвата объекта. Для этого программа преобразует вектор силы тяжести в систему координат прототипа с помощью обратного преобразования и определяет, через какую грань этот вектор проходит. Назовем эту грань опорной. Любой вектор ориентации, который имеет контактные точки (см.
§ 4.2] ПЕРЕМЕЩЕНИЕ ПРИМЕРА 43 уравнения (3.9)) на этой грани, или на ребрах и вершинах этой грани, не рассматривается. Оставшиеся векторы ориентации считаются допустимыми. Эта операция проводится как для начального, так и для конечного положений объекта. Если перемещение объекта должно быть выполнено за одно движение, то множество допустимых векторов ориентации, которые могут быть использованы, выбирается как пересечение множеств векторов ориентации, соответствующих начальному и конечному положениям. Наиболее надежный способ захвата и удержания объекта — захват за грани. Поэтому векторы ориентации упорядочиваются по длине, и самые короткие векторы, обеспечивающие захват объекта за грани, рассматриваются первыми. Для каждого из векторов ориентации, упорядоченных вышеуказанным способом, определяется диапазон углов подхода для начального и конечного положений. Чтобы связать эти два диапазона для данного вектора ориентации, мы используем базовый вектор подхода (см. 2.7). Преобразовав этот вектор, соответствующий начальному положению, в конечное положение R'ai = TfT?Bab (4.1) определим смещение между диапазонами углов подхода в начальном и конечном положениях как угол s между векторами JBai и Rai относительно вектора О/. После смещения начального диапазона углов на величину s два множества углов подхода должны пересекаться. Если пересечение непустое, то решение найдено. Вектор подхода А берется из пересечения двух множеств. Чтобы предотвратить столкновение руки с другими предметами, следует предпочесть направление подхода захвата сверху вниз. Далее определяются две конфигурации руки, одна для начального и одна для конечного положений захвата, чтобы обеспечивалось указанное угловое смещение между векторами подходов. Если же пересечение двух первых диапазонов пустое, то рассматривается следующий вектор ориентации из пересечения имеющихся в распоряжении множеств векторов ориентации. Если множество допустимых векторов ориентации пусто для начального или для конечного положения, то
ПЕРЕМЕЩЕНИЕ ПРЕДМЕТОВ [ГЛ. 4 невозможно выполнить перемещение (рука не сможет приблизиться к объекту). Если пересечение множеств векторов ориентации пусто, или если после оценки диапазонов для всех векторов ориентации пересечение этих диапазонов оказалось также пустым, то необходимо искать некоторое промежуточное положение объекта. Рассмотрим задачу перемещения примера прямоугольного параллелепипеда, для которого мы ранее получили векторы ориентации (таблица 3.1), из начального положения. Ti - в конечное Tf = 1,00 0,00 0,00 0,00 —1,00 0,00 0,00 0,00 0,00 1,00 0,00 0,00 0,00 1,00 0,00 0,00 0,00 0,00 1,00 0,00 0,00 0,00 -1,00 0,00 20,00 30,00 1,30 1,00 40,0 20,0 1,3 1,0 Перемещение включает переворот объекта «вверх ногами». Для каждого из возможных векторов ориентации проведен расчет диапазонов углов подхода для обоих положений. Пусть Рх — вектор положения и Ог — вектор ориентации в начальном положении, а в конечном соответственно Р2 и О2. 1) Рх = (20,00 30,00, 1,30, 1,00), Ох = (0,00, 1,00, 0,00, 1,00). Диапазон углов подхода 40° -г-173°. Смещенный диапазон 220° -г- 353°. Р2 = (40,00, 20,00, 1,30, 1,00), О2 = (0,00, 1,00, 0,00, 1,00). Диапазон углов подхода 7° -г- 120°. Пересечение диапазонов пусто. 2) Рх = (20,00, 30,00, 1,30, 1,00). Ог = (1,00, 0,00, 0,00, 1,00). Диапазон углов подхода 62° -г- 173°. Смещенный диапазон 242° -~- 353°. р2 = (40,00, 20,00, 1,30, 1,00), О2 = (-1,00, 0,00, 0,00, 1,00).
§ /4.2] ПЕРЕМЕЩЕНИЕ ПРИМЕРА 45 Диапазон углов подхода 7° -г- 123°. Пересечение диапазонов пусто. 3) Рх = (20,00, 30,00, 1,30, 1,00), Ог = (0,71, -0,71, 0,00, 1,00). Диапазон углов подхода 49° -т- 173°. Смещенный диапазон 229° -г- 353°. р2 = (40,00, 20,00, 1,30, 1,00), О2 = (-0,71, -0,71, 0,00, 1,00). Диапазон углов подхода 29° -г- 165°. Пересечение диапазонов пусто. 4) Рх = (20,00, 30,00, 1,30, 1,00), О2 = (0,71, 0,71, 0,00, 1,00). Диапазон углов подхода 59° -г- 173°. Смещенный диапазон 239° -г- 353°. Р = (40,00, 20,00, 1,30, 1,00), О2 = (-0,71, 0,71, 0,00, 1,00). Диапазон углов подхода 7° -г- 115°. Пересечение диапазонов пусто. Так как пересечение всех диапазонов пусто, предпринимается попытка выработать план движения объекта от его начального положения к промежуточному положению, а затем от промежуточного положения к конечному. Программа определяет, можно ли найти такое промежуточное положение и каковы его характеристики. Свободное пространство перед манипулятором обеспечивает большой диапазон углов подхода, удовлетворяющих конструктивным ограничениям; однако выбор начального или конечного положения в качестве промежуточного положения гарантирует, что место, куда следует опустить объект, свободно. Даже если начальное положение используется в качестве промежуточного, перемещение обычно выполняется с целью изменить ориентацию. Большинство случаев, когда манипулятор не в состоянии выполнить задание за один прием,— это случаи, аналогичные рассматриваемому примеру, т. е. когда объекты необходимо переворачивать. В этом случае механическая рука сначала частично переворачивает объект, опускает его и берет снова, чтобы выполнить задание. После выбора промежуточного положения определяется множество новых возможных опорных граней объекта,
46 ПЕРЕМЕЩЕНИЕ ПРЕДМЕТОВ [ГЛ. 4 прилегающих как к исходной опорной грани, так и к конечной опорной грани. Из этого множества выбирается опорная грань для промежуточного положения. Затем строится преобразование, приводящее к тому, что новая опорная грань в промежуточном положении становится параллельной исходной опорной поверхности. Чтобы сделать диапазон углов подхода как можно больше, объект поворачивается вокруг оси, перпендикулярной основанию, до тех пор, пока его главные оси инерции не станут перпендикулярны плечу руки. Если расстояние от центра масс до исходной опорной грани отличается от начального расстояния, то высота центра объекта изменяется. Этот процесс повторяется до нахождения общего подхода. Сначала решаем задачу о движении к промежуточному положению, и если решение найдено, решаем задачу о движении от промежуточного положения к конечному. Все диапазоны углов подхода, вычисленные при решении исходной задачи о движении от исходного положения к конечному, сохраняются, так как они нужны при расчетах движений от начального к промежуточному и от промежуточного к конечному положениям. В рассматриваемом примере мы определили промежуточное положение вектором (30, 30, 1,3). Поскольку пересечение всех диапазонов углов подхода оказалось пустым, взяли в качестве промежуточного положения следующее: 0,00 0,19 —0,98 30,0 0,00 0,98 0,19 30,0 1,00 0,00 0,00 0,65 0,00 0,00 0,00 1,00 Теперь программа попытается найти план движения объекта к этому положению: Рх = (20,00, 30,00, 1,30, 1,00), Ох = (0,00, 1,00, 0, 00, 1,00). Диапазон углов подхода 40° -s- 173°. Смещенный диапазон 50° -г- 83°. Р2 = (30,00, 30,00, 0,65, 1,00), О2 = (0,19, 0,98, 0,00, 1,00). Диапазон углов подхода 19° -г- 156°. Общий диапазон углов 19° -s- 83°. Угол подхода принят равным 51°.
§ 4.2] ПЕРЕМЕЩЕНИЕ ПРИМЕРА 47 Пересечение диапазонов углов подхода в данном случае непусто и теперь программа рассчитывает два положения захвата *): -0,63 0,00 0,78 0,00 0,00 1,00 0,00 0,00 -0,78 0,00 —0,63 0,00 20,00 30,00 1,30 1,00 —0,76 0,19 0,62 30,00 0,15 0,98 —0,12 30,00 —0,63 0,00 —0,78 0,65 0,00 0,00 0,00 1,00 Программа пытается построить план движения от промежуточного положения к конечному положению: 2\ = (30,00, 30,00, 0,65, 1,00), 01 = (0,19, 0,98, 0,00, 1,00). Диапазон углов подхода 19° -г- 156°. Смещенный диапазон 71° -г- 66°. Р2 = (40,00, 20,00, 1,30, 1,00), 02 = (0,00, 1,00, 0,00, 1,00). Диапазон углов подхода 7° -г- 120°. Общий диапазон углов 7° -г- 66°. Угол подхода принят равным 36°. Снова общий диапазон углов существует и программа вычисляет два положения захвата **): -0,79 0,19 —0,58 30,00 0,15 0,98 0,11 30,00 0,59 0,00 —0,81 0,65 0,00 0,00 0,00 1,00 -0 0 —0 0 ,59 ,00 ,81 ,00 0,00 1,00 0,00 0,00 0,81 0,00 -0,59 0,00 40,00 20,00 1,30 1,00 *) В первом положении захват берет параллелепипед, находящийся в исходном состоянии, а вторая матрица определяет захват при установке предмета в промежуточное положение. (Прим. ред.) **) Первая матрица определяет состояние захвата при взятии предмета в промежуточном положении, а вторая матрица характеризует захват при установке предмета в целевое положение. (Прим. ред.)
48 ТРАЕКТОРИИ 1ГЛ. 5 Задача решена и движение можно выполнять. С помощью этой процедуры можно выполнять любые изменения положения и ориентации, даже если цель достигается за два перемещения. Если решение задачи требует двух перемещений, то на соответствующие расчеты уходит около четырех секунд машинного времени. Глава 5 ТРАЕКТОРИИ § 5.1. Общие соображения При движении руки мы имеем два положения, началь- пое и конечное. Вопрос об определении этих положений был рассмотрен ранее (§ 4.2). Данный раздел посвящен детальному описанию процесса движения. (О Рис. 5.1. Аварийная ситуация, а) Начало движения, б) Результат движения. Простейшее решение задачи состоит в том, чтобы реализовать движение в сочленениях независимо друг от друга из начального состояния к конечному, используя обычную сервосистему. Рассмотрим ситуацию, показанную на рис. 5.1, где кисть поворачивает блок. Движение происходит в основном за счет поворота в шарнире 5 *), если реализовать *) Шарнир 5 соединяет звено 5 со звеном 4 (см. рис. 2.3). (Прим. ред.)
§ 5.1J ОБЩИЕ СООБРАЖЕНИЯ 49 движение во всех сочленениях к их конечным состояниям, то кисть будет стремиться пройти через опорную плоскость. Поэтому во время поворота в шарнире 5 необходимо поднять руку и затем опустить ее, чтобы не задеть основание. Когда рука начинает манипулировать, ее работа обычно бывает связана с некоторой поверхностью, Траектория кончиков ijajbilee fifytiifffd максимального пронЩУовёниятраёмгг}ории Рис. 5.2. Максимальное проникновение траектории захвата. как, например, при захвате блока со стола. В начале перемещения руки движение кисти должно быть направлено в сторону от поверхности. Если мы зададим точку на нормали к поверхности, проведенной из начального положения, и потребуем, чтобы кисть проходила через эту точку, то получим должным образом скорректированное движение. Если, далее, мы зададим время, требуемое для достижения этой точки, то сможем управлять скоростью подъема блока.
50 ТРАЕКТОРИИ [ГЛ. 5 Чтобы оценить, насколько указанная точка должна быть удалена от опорной поверхности, рассмотрим рис. 5.2, на котором представлен наиболее неблагоприятный случай с точки зрения прохождения траектории руки; через эту поверхность. Если поднять кисть на высоту -Jbi/kd спуски /fonewoe поляжете \ Го wd подзема Иачадше Бремя лоложение Рис. 5.3. Трактория «от точки к точке». максимального проникновения через поверхность, которое составляет около 25% длины последнего звена, то столкновения не произойдет. При начальном состоянии манипулирования вычисляются приращения обобщенных координат (§ 2.3) для пе? ремещения кисти на 3 дюйма в направлении внешней^ нормали. Затем, исходя из минимальных перегрузок руки? определяется время, необходимое для достижения указанного положения. Аналогичные требования должны быть удовлетворены* и в конечной точке траектории. В этом случае также желателен подход к поверхности в направлении нормали, проходящей через точку, которую мы назовем точкой спуска. Таким образом, мы имеем четыре положения, соответ* ствующие начальной точке, точке подъема, точке спуска я* конечной точке. Тогда, при движении от каждой из этих точек к последующей, рука не будет сталкиваться с осг- нованием (рис. 5.3). Нам хотелось бы также, чтобы рука начинала и кончала свое движение с нулевой скоростью и нулевым ускорением. Кроме того, необязательно останавливать руку
§ 5.1] ОБЩИЕ СООБРАЖЕНИЯ 51 во всех промежуточных положениях. Потребуем только, чтобы в точках траектории, соответствующих этим промежуточным положениям, обобщенные координаты принимали значения, равные расчетным в одни и те же моменты времени. Время прохождения манипулятором каждого из отрезков траектории вычисляется следующим образом: для начального и конечного отрезков это время определяется скоростью подхода кисти к поверхности и является некоторой фиксированной постоянной. Время прохождения среднего участка траектории для каждого сочленения оценивается исходя из максимальных значений скорости и ускорения в данном сочленении. Максимальное значение этих времен принимается за время движения по среднему отрезку траектории для всех сочленений. Зная значения обобщенных координат в узловых точках и соответствующие им моменты времени, мы можем построить для каждого из сочленений полином, выражающий обобщенную координату как функцию времени, который проходит через все узловые точки и имеет нулевые значения начальных и конечных скоростей и ускорений. Так как имеются четыре точки и четыре ограничения на скорость и ускорение, мы получим в результате полином седьмого порядка. Хотя такие полиномы и удовлетворяют нашим условиям, они могут иметь несколько экстремумов между начальной и конечной точками. Поэтому следует вычислить значения обобщенной координаты в каждой точке экстремума, чтобы проверить, не превышают ли эти значения рабочий диапазон сочленения. В силу того, что вычисление экстремумов для полиномов такого высокого порядка связано с определенными затруднениями, мы используем другой подход. Для каждого из сочленений зададим три полинома: °Дин для участка траектории от начальной точки к точке подъема, второй — для участка от точки подъема к точке спуска и третий — для участка от точки спуска к конечной точке. Потребуем, чтобы скорости и ускорения были Равны нулю в начальной и конечной точках и непрерывно изменялись в промежуточных точках. Функция, составленная из таких полиномов, удовлетворяет требованиям, пРедъявляемым к траектории, и ее экстремумы можно легко вычислить.
52 ТРАЕКТОРИИ [ГЛ. 5 Если обобщенная координата превышает допустимое значение в точке экстремума, то отрезок траектории, на котором это происходит, разбивается на два. Точка деления принимается за новую промежуточную точку со значением обобщенной координаты, равным ограничению на рабочий диапазон сочленения, и траектория пересчиты- вается заново (рис. 5.4). делрабоче- Точказкстремума апазона ^~р-\ Первоначальная енения^ _/_ Х^^^£7£?£/^£РЕЯ f /К / Измененная / траектория 1 Начальное положение Яремя Рис. 5.4. Трактория, превышающая рабочий диапазон сочленения. Несмотря на то, что случаи обхода препятствий специально не рассматривались, за исключением стола и опорной стойки манипулятора, указанная программа позволяет изменять траекторию руки надлежащим образом, посредством задания дополнительных промежуточных точек. Если возможное препятствие определено заранее, то для избежания столкновения следует потребовать, чтобы соответствующие обобщенные координаты» проходили через некоторые дополнительные точки траектории. При задании движения руки по определенной пространственной кривой мы имеем другой тип расчетной траектории. В этом случае получаем последовательности значений обобщенных координат в точках этой пространственной кривой. Скорость движения определяется отношением расстояния между точками вдоль кривой ко времени перемещения между ними. В результате мы прихо-
§ 5.2) ПОЛИНОМЫ 53 дим к траектории с большим числом узловых точек. Поскольку интерполяция такой траектории одним полиномом дает полином высокого порядка, по причине, изложенной выше, использование для этой цели последовательности полиномов низшего порядка является более удобным. § 5.2. Полиномы Для любого отрезка траектории мы имеем на каждом конце ограничения на положение, скорость и ускорение. Исключая начало и конец траектории, ограничения на скорость и ускорение являются условиями непрерывности. Таким образом, имеется только четыре ограничения для каждого из промежуточных участков траектории и пять ограничений для каждого из крайних участков. Тогда первому и последнему отрезкам траектории удовлетворяют полиномы четвертого порядка, а промежуточным отрезкам — полиномы третьего порядка *). Рассмотрим отрезок траектории, описываемый многочленом 6 = А^ + Л13т3 + Л|2т2 + Аг1х + Ai0, (5.1) где 0 — обобщенная координата как функция времени на i-u участке траектории; г = 4, (5.2) — нормированное время, т. е. 0<^ т <; 1 при 0 <^ t <^ Tt; Tt — полное время прохождения £-го участка траектории; Atj — коэффициент при ;-й степени для £-го участка траектории. Из выражения (5.1) следуют соотношения, связывающие коэффициенты полиномов со значениями обобщенной координаты % и ее производных 0Ь % в п + 1 узловых точках (к = 0, 1, 2, 3, . . ., п). *) Автор предлагает способ интерполяции траекторий, близкий к интерполяции с помощью кубических сплайнов. Отличие указанного метода от интерполяции кубическими сплайнами состоит в том, что, в силу дополнительных краевых условий, первый и последний отрезки траектории описываются полиномами четвертого порядка. Подробно математическая теория интерполяции и аппроксимации сплайн-функциями изложена, например, в работе [30]. (Прим. ред.)
54 ТРАЕКТОРИИ [ГЛ. 5 Для первого отрезка траектории, подставляя значение, т = 0, получим 60 = Ап = 0, (5.4)1 % = Аи = 0. (5.5); При т = 1 будем иметь Д0! = 0i - 0О = Аи + Ata, (5.6): + 6Лз, (5-8) Для последнего отрезка траектории мы определим полином как функцию аргумента Тогда, подставляя тй Соответственно, при Д0П = 0Г rn0n-i = - тх = т - 1. = 0, получаем 0п = Ло. А л О wn — -^nl — v» тх = —1 находим, что t — еп_! = - Ап4к + лп3, )^ _ 6Л„3. (5.9; (5.10) (5.И) (5.12) (5.13) (5.14) (5.15) В общем случае, для i-го промежуточного отрезка траектории имеем Аи = 0, (5.16) 0i_i = 4iO) (5.17) ГА-х = Ли, (5.18)., = 24j2, (5.19) A0j = 04 — 0{_х = Л13 + -4i2 + Лц, (5.20) TA = bAa + 2At% + An, (5.21) = 64i3 + 2ЛП. - (5.22)
5.2] ПОЛИНОМЫ 55 Часть коэффициентов А и непосредственно определяется соотношениями (5.3) — (5.5), (5.10) — (5.12) и (5.17). Остальные коэффициенты могут быть найдены в результате решения следующей системы линейных уравнений: 0 0 де2 о —1 ^22 ^23 „4 (5.23) Блоки, выделенные в матрице уравнения (5.23), имеют один и тот же вид для каждой промежуточной узловой точки траектории. Нормированное время т изменяется от 0 до 1 для любого участка траектории, за исключением последнего, для которого нормированное время тх мепя- ется от —1 до нуля. Программа сервосистемы манипулятора требует, чтобы нормированное время изменялось от 0 до 1 для полиномов всех участков траектории. Подставляя Тх = т - 1 (5.24) в многочлен последнего отрезка траектории 9 = Апьх\ + An3xl + An2xl + Ап1хг + Ап0, (5.25) получим представление этого многочлена в виде функции аргумента т, как это требуется для работы программы сервосистемы: = Anix* + (- Unt + Ara) т3 + (64,4 - ЗЛПЗ + Ani) (5.26)
56 ТРАЕКТОРИИ [ГЛ. 5 § 5.3. Экстремумы траектории Промежуточные участки траектории для каждого сочленения описываются полиномами третьего порядка вида Э = i4i3t3 + 4i2t2 + Aitx + Ai0. (5.27J Дифференцируя (5.27), имеем 0 = 3Ai3%* + 2Ai2x + Ait. (5.28) Точки экстремума (5.27) определяются как корни многочлена (5.28) Если дискриминант в (5.29) положителен и 0 < тв < 1,. то экстремум существует и его значение может быть найдено по формуле (5.27). Начальный и конечный участки траектории описываются полиномами четвертого порядка (5.1), (5.25). Указанные полиномы, как следует из соотношений (5.4),, (5.5), (5.11), (5.12), не содержат членов первого и второго порядка и имеют вид 6 = А\&\ + Aizx\ -\- AiQ, (5.30) где {т, если i = 1, rlf если i = п. Тогда 6 = Ыцх1 + 34i3tl (5.31) и момент времени, соответствующий точке экстремума, определяется как *f = —г-т2- (5-32) Если 0 < т2е < 1 при г = 1 и — 1<т2е<0 при i = тг,
§ 5.4] ДВИЖЕНИЕ ПО ЗАМКНУТОМУ КОНТУРУ 57 то экстремум существует и равен * Л ^3 /Г QQ\ На первом и последнем участках потребуем монотонного изменения траектории, т. е. отсутствия деререгу- лирования. Чтобы обеспечить монотонность траектории, полагаем значение обобщенной координаты в точке экстремума равным ее значению в начальной или конечной точках. § 5.4. Движение по замкнутому контуру В § 5.1 упоминалось о траекториях, реализующих движение по заданным пространственным кривым. Было предложено определить сначала значения обобщенных уу f Рис. 5.5. Движение по замкнутому контуру. координат в узловых точках, расположенных на равных интервалах вдоль кривой, и затемпланировать траекторию соответственно этим найденным значениям. Сущест-
58 ТРАЕКТОРИИ 1ГЛ. 5 вует специальный класс таких траекторий, для которых исходное и конечное положения манипулятора совпадают, например, движение по окружности на рис. 5.5. В данном примере положение захвата определяется значением полярного угла, а его ориентация не меняется в процессе' движения. В силу того, что узловые точки располагаются^ на окружности через каждые 60°, движение захвата будет близким к круговому. Для начального и конечного участков задаются еще две дополнительные точки bah, соответствующие значениям угла 20° и 340°. Время прохождения каждого из восьми участков траектории принимается одинаковым. В результате рука будет ускоряться из неподвижного* состояния, двигаться по окружности и возвращаться в исходное неподвижное состояние. Короткие, первый и последний, участки обеспечивают? плавность начала и конца движения. Для осуществления; непрерывного движения предусмотрен дополнительный; путь непосредственно из точки g через точку а в точку с (см. рис. 5.5) при условии непрерывности скорости и ус^ корения в этих точках. Чтобы захват непрерывно перемещался по окружности,» начиная из точки а, необходимо «переключить» его движение на дополнительный путь траектории в точке g;* иначе захват остановится, пройдя через точку h в точку а: В приведенном ниже матричном уравнении (5.34)5 через х обозначены ненулевые элементы, аналогичные элементам уравнения (5.23). Уравнение (5.34) соответствует траектории обычного типа, а уравнение (5.35) соответствует непрерывному движению в результате введения двух дополнительных участков траектории 9 и 10, описываемых полиномами четвертого порядка. Через у и z в (5.35) обозначены два типа одинаковых элементов. Уравнение (5.35) аналогично уравнению (5.34), за исключением последних восьми уравнений для участков 9 и 10 траектории. Указанные участки описываются поли^ номами четвертого порядка в силу дополнительных крае^ вых условий непрерывности. Наличие групп ненулевых элементов в нижнем треугольнике матрицы в (5.35) обусловлено требованиями непрерывности в точках g и с (см. рис. 5.5).
ДВИЖЕНИЕ ПО ЗАМКНУТОМУ КОНТУРУ 59 Д61 0 0 де2 0 0 де3 0 0 до4 0 0 де, 0 0 А9в 0 0 де7 0 0 А9в 0 0 де. 0 0 АОю 0 0 ДО1 0 0 А02 0 0 дез 0 0 де4 0 0 де6 0 0 дев 0 0 де7 0 0 де. XX XXX XX X XXX хххх XX X XXX хххх XX X XXX хххх XX X XXX хххх XX X XXX хххх XX X XXX ххххх хххх XX Ai 3 Ai4 A2i А«2 А28 Asi Аз2 Азз A4i А* А« A6i А52 А53 Ав1 Ав2 А,3 A7i А,2 А7з Аи Ав4 XX XXX XX X XXX ххху хх у XXX хххх XX X XXX хххх XX X XXX хххх XX X XXX ZZZX ZZ X XXX ххххх хххх XX ZZZ X ZZ X хххх ххххх XXX X хххх у хххх У з схх Ais At4 A2i Агг Агг Аи Агг Ам А* А* А48 Аи Аьг Аьг Aei Ав2 Авз Ап А72 А78 Авз А84 Ав1 Ав2 Ав8 Аи Аш Alo2 Аюз Аш (5.34) (5.35)
60 СЕРВОСИСТЕМА [ГЛ. в; § 5.5. Планирование движения в приращениях С целью приведения манипулятора в требуемое состояние за данный промежуток времени Тт мы можем также планировать движение, исходя из значений конечных приращений обобщенных координат А0, определенных на основании линеаризованных уравнений (§ 2.3). Текущее приращение обобщенной координаты 60 как функция нормированного времени т задается в виде полинома 69 = AQg (т) = А9т3 (6т2 - 15т + 10), (5.36) где х = 4~> (5.37) m АЭ — требуемое изменение угла 0 при t = Тт. Такое представление обеспечивает нулевые значения начальных и конечных скоростей и ускорений. Указанный метод обладает недостатками, отмеченными в § 5.1, и пригоден только в тех случаях, когда требуются малые изменения обобщенных координат, как, например, для коррекции положения захвата при визуальном управлении. Очевидно также, что указанное движение гораздо проще планировать, по сравнению с рассмотренным выше движением по произвольной траектории. Гла ва 6 СЕРВОСИСТЕМА В настоящей главе устанавливается связь между ошибкой положения и моментом в шарнире в следящей системе манипулятора. Далее обсуждается модель привода, описывающая зависимость момента в шарнире от управляющего сигнала двигателя. В конце главы исследуется вопрос о степенях свободы манипулятора в процессе управления.
§ 6.1J КОНТУР ОБРАТНОЙ СВЯЗИ 61 § 6.1. Контур обратной связи В данном разделе мы опишем частотную характеристику следящей системы. Будем рассматривать систему как непрерывную и пренебрегать влиянием квантования, предполагая, что период квантования намного меньше, чем постоянная времени системы. Ниже будет показано, что это предположение является справедливым. Нормирование времени относительно интервала квантования приводит к изменению момента инерции звена в /2 раз, где / — частота квантования. В дальнейшем будем широко использовать преобразование Лапласа и обозначать, например, изображение по Лапласу оригинала / (t) в виде F ($). Задающий сигнал для каждого сочленения манипулятора получается в результате вычисления полиномов соответствующих участков траектории для заданных интервалов времени. Скорость и ускорение входного сигнала определяются как первая и вторая производные указанных полиномов. Ошибка положения определяется как разность между измеренным значением обобщенной координаты 9 и ее заданным значением 0S. Аналогично, скоростная ошибка равна разности между измеренной скоростью и заданной скоростью. Для уменьшения ошибки положения вводится отрицательная обратная связь по положению, а для обеспечения демпфирования — отрицательная обратная связь по скорости. Структурная схема замкнутого контура приведена на рис. 6.1. На этой схеме исполнительный орган представлен членом 1 где / — эффективный момент инерции звена, зависящий от конфигурации механизма руки; Т (s) — внешний возмущающий момент. Ошибка положения Е (s) получается в результате вычитания входного сигнала R (s) из текущего значения положения, а ошибка по скорости — в результате умножения Е (s) на s. Через ке и kv обозначены коэффициенты усиления в цепи обратной связи, соответственно, по углу и по скорости.
62 СЕРВОСИСТЕМА [ГЛ. в Из уравнения замкнутого контура мы можем выразить ошибку системы Е (s) в виде откуда критическое значение коэффициента демпфирования *. (6.2), Из (6.1), (6.2) видно, что, как и следовало ожидать, передаточные функции для ошибки системы зависят от Л № Исполнительный орган Рис. 6.1. Простой контур сервосистемы. В силу того что в нашем случае эффективный момент инерции звена / может изменяться в пределах 10 21, мы не в состоянии обеспечить независимость указанных динамических характеристик от конфигурации руки. Однако если мы введем коэффициент усиления — «Ту как показано на рис-. 6.2, то получим, что (6.3) При этом критическое значение коэффициента демпфирования будет равно кьг=2кг1г. (6.4)
§ 6.1] КОНТУР ОБРАТНОЙ СВЯЗИ 63 Из (6.3), (6.4) следует, что теперь динамические свойства системы не зависят от конфигурации механизма руки. Действие внешнего возмущающего момента, основную часть которого составляет момент от силы тяжести, приводит к большому значению позиционной ошибки, особенно Исполнительный орган Рис. 6.2. Контур сервосистемы, динамические характеристики которого не зависят от эффективного момента инерции звена. Г, ч , Исполнительный Rs) \ орган Рдс. 6.3. Контур с дополнительной компенсацией нагрузки от силы тяжести. в случае шарнира 2, соединяющего звено 1 со звеном 2. С целью уменьшения ошибки положения мы добавим член, равный отрицательному значению момента от силы тяжести Tg, как показапо на рис. 6.3.
СЕРВОСИСТЕМА [ГЛ. tf Тогда получим, что **.(•) где Мы можем также компенсировать составляющую ошибку от ускорения входного воздействия i? (s), т. е. первый Рис. 6.4. Контур с компенсацией ускорения входного сигнала. »■ член в выражении (6.5), посредством введения дополнительного сигнала s2R ($)^(ем. рис. 6.4). В результате выражение для ошибки примет вид Коэффициент усиления —/ и момент ^определяются из уравнения (2.36), а именно j.=n k—j i ft=l p=l
§ 6.1] КОНТУР ОБРАТНОЙ СВЯЗИ 65 Нам желательно получить представление Ft в форме „ (6.7) где /,• и Tg зависят от конфигурации механизма руки, определяемой значениями qt. Члены, содержащие произведения tffcijp в (2.36), значительны по величине только при больших значениях скоростей и являются малыми в случае рассматриваемого манипулятора. Поэтому будем пренебрегать вторым слагаемым в уравнении (2.36), хотя его можно учесть и объединить с третьим, поскольку значения (р и ()к известны для заданной траектории. Меняя порядок суммирования в (2.36), получим ,, (6.8) ИЛИ % (6.9) где i=e J^ (6.10). j == — V mjGiUuBj. (6.11) Далее, пренебрегая членами уравнеция (6.9), для которых i Ф к (т. е. недиагональными элементами матрицы {Cj-fr}), в силу того, что эти члены очень малы, получаем Tg9 (6.12) где ^ (6.13) Vi3 P. Пол
СЕРВОСИСТЕМА [ГД. 6 эффективный момент инерции г-го звена *) и 3=8 — момент от действия силы тяжести. Таким образом, рассмотренная сервосистема имеет неизменные динамические характеристики при различных г время, сек Рис. 6.5. Ошибка положения в системе с коэффициентом усиления, зависящим от эффективного момента инерции звена. конфигурациях манипулятора и обладает свойством компенсации составляющих позиционной ошибки от действия силы тяжести и ускорения входного сигнала г (t). На рис. 6.5, 6.6 и 6.7 приведены три графика, представляющие ошибку положения в шарнире 2 как функцию времени. На рис. 6.5 показан случай, когда отсутствует компенсация как силы тяжести, так и ускорения задающего сигнала. На рис. 6.6 введена компенсация силы тяжести, а на рис. 6.7 дополнительно — компенсация ус* корения входного сигнала. *) Формула (6.13) может дать достаточно точное значение эффективного момента инерции только для некоторых кинематических схем. Для точного вычисления этих значений необходимо обратить матрицу с элементами (6.10) и взять обратные величины диагональных элементов полученной матрицы в качестве соответствующих эффективных моментов инерции звеньев. В [36] дан экономный алгоритм точного вычисления эффективных моментов инерции. (Прим. ред.)
§ 6.1J КОНТУР ОБРАТНОЙ СВЯЗИ 67 Установившаяся ошибка системы при значении возмущающего момента Те будет равна 7F"- (5.14) Исходя из требований, предъявляемых к манипулятору мы примем минимально допустимую величину 0J00 ^ -Q50 Ц-qwo о 0,5 15 2 Время, сёк Рис. 6.6. Ошибка положения в системе с компенсацией нагрузки от силы тяжести. ' IN 0,5 J,5 2 Время, сек Рис. 6.7. Ошибка положения в системе с компенсацией ускорения входного сигнала. жесткости в точке захвата равной 50 унций/дюйм (0,55 кг/см). Для заданной величины жесткости, используя (6,14), можем найти значения коэффициентов усиления ке. Соответствующие значения коэффициентов kv определяются на основании формулы (6.4) для критической величины коэффициента демпфирования. В результате получим нижние границы для значений ке и kv.
68 СЕРВОСИСТЕМА [ГЛ. 6 Отметим, что измерение положения производится при наличии шума. Тогда, при определении скорости посредством дифференцирования сигнала измеренного положения, указанный шум будет присутствовать и в полученном значении скорости. Основным источником помех является шум квантования аналого-цифрового преобразователя, используемого при определении текущего значения положения. Аналого-цифровой преобразователь имеет 12 разрядов, и, следовательно, его относительная ошибка составляет 1/4096. Эквивалентный момент в шарнире от действия шума можно представить в виде Тп = Ые, (6.15) где значение к равно либо ке, если скорость измеряется непосредственно, либо ке + kv *), если скорость определяется в результате дифференцирования; е — уровень шума квантования. Зная допустимую величину момента от действия шума, которую, как следует из § 6.2, можно приближенно принять равной FJ2, находим верхнюю границу для коэффициента к. Производя расчеты по формулам (6.14), (6.4) и (6.15) на основе приведенных данных, получим таблицу 6.1 предельных значений коэффициентов усиления для привода каждого сочленения. Во втором и третьем столбцах таблицы 6.1, рассчитанных согласно (6.14) и (6.4), представлены минимально допустимые значения коэффициентов ке и kv. В четвертом столбце приведены максимальные допустимые значениям коэффициентов к, вычисленные по формуле (6.15) при условии, что мы получаем требуемую информацию в'результате обработки измерений текущего положения с использованием аналого-цифрового преобразователя данного типа. Из сопоставления приведенных значений коэффициентов ке} кицк следует, что для шарниров 1 и 2, указанный *) Коэффициенты усиления ке и kv являются безразмерными величинами вследствие того, что при описании характеристик сервосистемы, как было указано ранее, автор вводит нормированное время т = tf, где / — частота квантования. (Прим. ред.)
§ 6.1] КОНТУР ОБРАТНОЙ СВЯЗИ 69 Таблица 6.1 Пределы значений коэффициентов сочленения 1 2 3 4 5 6 усиления *е 0,038 0,032 0,005 0,06 0,06 0,06 сервосистемы ■ kv 0,39 0,36 0,14 0,49 0,49 0,49 к 0,18 0,33 0,75 0,49 1,6 50,0 способ получения информации о скорости является неприемлемым. Поэтому для измерения угловой скорости в этих двух шарнирах используются тахогенераторы, выходной сигнал которых имеет значительно меньший уровень шума по сравнению с сигналом, полученным в результате дифференцирования угловых измерений. В начале этого раздела мы ввели допущение о том, что частота квантования / намного больше полосы пропускания системы. Из соотношений (6.6) и (6.4) находим, что к i полоса пропускания системы = ~— . (6.16) Тогда для требуемой максимальной величины kV9 равной 0,49 (табл. 6.1), полоса пропускания составляет 1/4 от частоты квантования. Экспериментально установлено, что при возрастании значения коэффициента усиления kv до 1 влияние квантования практически не сказывается на работе системы. Значения Jt и Tg вычисляются согласно (6.13) и (6.11) в начале и конце каждой траектории и в конце каждого участка траектории. Указанные расчетные значения вводятся в сервосистему вместе с коэффициентами полиномов, описывающих участки траектории. При отработке траектории величины J\ и Tg интерполируются по линейному закону. В таблице 6.2 приводятся значения Jt и Tg для положения механизма руки, рассмотренного в примере § 2.1. Приведенные выше значения коэффициентов усиления обеспечивают допустимую жесткость механизма руки
70 СЕРВОСИСТЕМА сгл: Таблица 6.2 Параметры сервосистемы (в системе единиц унция, дюйм, 1/60 сек) № сочленения 1 2 3 4 5 6 761 000 953 000 9 500 83 000 82 000. 4 000 0 1419 — 53 94 37 0 в процессе управления. Однако эти коэффициенты усиления являются слишком низкими для удовлетворения требований к ошибке позиционирования системы, допустимое значение которой задается в пределах ±0,05 дюйма, т. е. в пределах точности измерений используемого 12- разрядного аналого-цифрового преобразователя. Для достижения указанной точности определяется суммарная позиционная ошибка в конечной, точке траектории. При этом, если ошибка положения сочленения находится в границах допуска, привод этого сочленения ставится на тормоз и в дальнейшем не управляется. Отработка траектории считается выполненной, когда ошиб-* ки всех сочленений будут соответствовать допустимым пределам. Если рука манипулирует с тяжелым грузом, его влияние учитывается путем надлежащего увеличения массы и моментов инерции последнего звена при вычислении Jt и Tg по формулам (6.13) и (6.11). Аналогично, в том случае, когда захват должен создавать заданное усилие или момент, к Tg добавляется значение эквивалентного момента в шарнире (см. § 2.5), § 6.2. Характеристика привода Выходом контура сервосистемы является величина момента, который должен быть приложен в данном шарнире. Каждый шарнир манипулятора снабжен электрическим приводом с волновым редуктором. На электродви-
§ 6.2] ХАРАКТЕРИСТИКА ПРИВОДА 71 гатели подается сигнал управления в виде модулированных по ширине импульсов напряжения с частотой повторения 360 гц. Величина момента на выходе модуля привода зависит от ширины импульсов управляющего сигнала. Требуемая ширина импульсов и их полярность определяются с помощью ЦВМ. Выходным параметром программы служит h — относительная длительность импульса (скважность) сигнала управления. Ширина импульса Скорость момент^О П Рис. 6.8. Характеристика привода «ширина импульса — момент на выходе». Характеристика привода «ширина импульса h — выходной момент», полученная экспериментальным путем, представляет собой две изолированные кривые, зависящие от скорости в шарнире (см. рис. 6.8). Указанную характеристику можно трактовать как результат наличия моментов «трения» двух типов: момента, зависящего от нагрузки, который вызывает расхождение двух кривых, и момента, не зависящего от нагрузки (момента статического трения), который обусловливает разделение характеристики на две кривые в начале координат. Величина постоянной времени электродвигателя также влияет на форму характеристики в окрестности начала координат. При введении характеристик в программу сервосистемы экспериментальные кривые аппроксимировались кусочно-линейными характеристиками, как показано на рис. 6.9, где Vo — величина управляющего сиг-
72 СЕРВОСИСТЕМА [ГЛ. 6 нала, при котором движение в шарнире будет происходить с постоянной скоростью и нулевым моментом в направлении движения; Fo — момент, развиваемый в шарнире при Ширина импульса Скорость момент > О Скорость-ма- №нт<0 Рис. 6.9, Кусочно-линейная аппроксимация характеристики привода. том же уровне сигнала Vo, но при отрицательном значении скорости. Угловые коэффициенты прямолинейных отрезков получены из экспериментальных данных. При* Таблица 6.3 Статическое трение в сочленениях манипулятора JVft сочленения 1 2 3 4 5 6 Fo унций»дюйм, унция *) 400 700 70 100 160 100 FH унций ±10 ±20 ±35 ±5 ±8 ±70 *) Для всех сочленений, кроме сочленения 3, величина Fo имеет размерность [унция «дюйм]. Для сочленения 3 эта величина имеет размерность [унция]. (Прим. ред.) очень малых значениях угловой скорости учитывается только направление движения.
§ 6.3J ЧАСТИЧНО ОГРАНИЧЕННОЕ ДВИЖЕНИЕ 73 Следующим фактором, влияние которого принимается во внимание, является противо-ЭДС двигателя. Поскольку величина скважности h эквивалентна отношению требуемого управляющего напряжения к напряжению питания, то при расчете h напряжение питания суммируется с вычисленным значением противо-ЭДС. В том случае, если скорость отлична от доля, момент на выходе привода определяется уровнем входного сигнала, тогда как в неподвижном положении абсолютная величина ошибки выходного момента может принимать значение Fq/2, равное половине расстояния между двумя кривыми, измеренного по горизонтальной оси координат. В таблице 6.3 приведены величины указанных момент- ных ошибок и соответствующие им значения эквивалентных сил Fh в центре захвата для конфигурации механизма руки, рассмотренной в примере § 2.1 На основании представленной таблицы можно видеть, что манипулятор в состоянии воспроизводить усилия со средней точностью ±10 унций (1 унция = 28,3 г). § 6.3. Частично ограниченное движение Бели требуется, чтобы в процессе манипулирования захват обладал степенью свободы в заданном направлении или относительно заданной оси, программа производит выбор «свободного», т. е. разгруженного, сочленения следующим образом. Сначала вычисляются обобщенные силы в сочленениях (см. § 2.5) от действия единичной силы в заданном направлении или единичного момента относительно заданной оси; затем эти силы нормируются посредством деления на соответствующие им значения Fo (§ 6.2). В качестве «свободного» выбирается такое сочленение, для которого величина нормированной обобщенной силы является максимальной. Очевидно, что это будет сочленение, которое обладает наибольшей чувствительностью к перемещению в направлении требуемой степени свободы и которое первым придет в движение, если величина силы в этом направлении будет постепенно возрастать от нулевого значения. 4 Р. Пол
74 УПРАВЛЕНИЕ МАНИПУЛЯТОРОМ [ГЛ. 7 В случае, если требуется наличие нескольких степеней свободы, указанная процедура повторяется с учетом того, чтобы не выбрать одно и то же сочленение дважды. Для разгрузки сочленения в процессе движения коэффициенты усиления ке и kv обратной связи (см. § 6.1) полагаются равными нулю. При этом «свободное» сочленение сохраняет компенсацию ускорения входного сигнала и компенсацию силы тяжести. Если требуется, чтобы захват развивал заданную силу, то добавляется связь для компенсации ошибки от действия этой силы. Таким образом, сервосистема «свободного» сочленения компенсирует известные внешние силы и не имеет обратной связи. Передаточная функция ошибки сервосистемы «свободного» сочленения может быть получена из соотношения (6.6) в виде *« = ■&-. (6.17) Глава 7 УПРАВЛЕНИЕ МАНИПУЛЯТОРОМ В дополнение к операциям перемещения манипулятор может выполнять и такие функции, как, например, сжимание и разжимание пальцев захвата. Эти функции и операции движения, называемые в дальнейшем элементарными операциями, или «примитивами», могут быть объединены для формирования «программы манипулятора». При составлении «программы манипулятора» организуется файл траектории, содержащий набор элементарных операций вместе с данными об опорных поверхностях, траекториях, эффективных моментах инерции звеньев и нагрузках от действия силы тяжести. Существуют две программы: одна — для составления «программы манипулятора» и вторая — для выполнения результирующего файла траектории.
§ 7.1J СОСТОЯНИЕ МАНИПУЛЯТОРА 75 § 7.1. Состояние манипулятора Состояние манипулятора описывается следующими глобальными переменными, которые размещаются в верхнем сегменте программы и доступны для всех других программ, разделяющих этот сегмент, например, таких как управляющая программа. При окончании выполнения программы переменные состояния манипулятора корректируются. ARM MOTION (движение руки) ИМЯ ПРОГРАММЫ, выполняемой в настоящий момент. Этот символ служит также предупреждающим указателем для остальных программ о том, что рука находится в движении. ARM WAIT (ожидание руки) ИМЯ ПРОГРАММЫ, выполнение которой временно отложено. ARM STATUS (состояние руки) СОСТОЯНИЕ ОШИБКИ РУКИ В КОНЦЕ ИСПОЛНЕНИЯ. ARM LINK (звено руки) МАТРИЦА ПРЕОБРАЗОВАНИЯ РАЗМЕРА 4x4, описывающая положение и ориентацию захвата в конце исполнения. GRASP (захват) РАССТОЯНИЕ МЕЖДУ КОНЧИКАМИ ПАЛЬЦЕВ. ARM SEGMENT (сегмент руки) ЦЕЛОЧИСЛЕННАЯ ПЕРЕМЕННАЯ, получающая приращение в начале и конце каждой элементарной операции MOVE (перемещение). Программы могут выполняться посредством использования следующих двух процедур: , DO IT (выполнить) (NAME) — вызывает исполнение программы с именем NAME. • DO PROCEED (продолжить) — приводит к продолжению работы программы, выполнение которой было ) прервано. В процессе выполнения программы могут возникать различные состояния ошибок. Несмотря на то, что некоторые из ошибок могут быть желаемыми состояними, они классифицируются как ошибки ввиду того, что эти состояния вызывают остановку движения и срабатывание всех тормозов манипулятора. Например, состояние ошибки имеет место в том случае, когда один из тактильных датчиков руки касается какого-либо предмета. 4*
76 УПРАВЛЕНИЕ МАНИПУЛЯТОРОМ [ГЛ. 7 Ниже приводится перечень сообщений (messages) для ошибок: X 1—момент в шарнире X превышает допустимое значение; 2 — захват сжат на расстояние меньше заданного; X 6 — тактильный датчик X коснулся препятствия; 22 — величина силы, действующей на захват, превышает допустимое значение; 23 — рука не остановилась при действии заданной силы. Существуют и другие виды сообщений, например, такие как «файл не найден», которые относятся к ошибкам системы. При возникновении ошибки прерывается выполнение программы и корректируются переменные состояния манипулятора, в частности, изменяется содержание ARM MOTION, ARM WAIT, а код ошибки засылается в ARM STATUS. После устранения ошибки исполнение следующей элементарной операции программы может быть продолжено посредством обращения к процедуре DO PROCEED. § 7.2. Элементарные операции В этом разделе приводится список элементарных операций, которые используются, во-первых, на этапе планирования, т. е. при создании файла траектории и проверке возможности ее исполнения и, во-вторых, в процессе выполнения запланированной программы. В последнем случае выполнение элементарных операций производится таким же путем, как и выполнение команд на ЦВМ. OPEN (открыть) (DIST) — раскрыть или сжать захват так, чтобы зазор между кончиками пальцев был равен DIST. CLOSE (сжать) (MINIMUM) — сжать захват до упора и сравнить расстояние между кончиками пальцев с величиной MINIMUM. Если это расстояние меньше, чем MINIMUM, то выдать сообщение ошибки 2. CHANGE (изменить) (DXDYDZ, VELOCITY (скорость)) — переместить руку, используя алгоритм
§ 7.2] ЭЛЕМЕНТАРНЫЕ ОПЕРАЦИИ 77 планирования движения в приращениях (см. § 5.5) таким образом, чтобы обеспечить изменение вектора положения центра захвата на DX DY DZ с максимальным значением скорости равным VELOCITY. SWEEP (размах) (DIST, VELOCITY) — переместить захват, пользуясь алгоритмом планированця движения в приращениях (§ 5.5), в направлении вектора ориентации захвата на расстояние DIST с максимальной скоростью VELOCITY. LIFT (подъем) (DIST, VELOCITY) — такая же операция, как и SWEEP, за исключением того, что перемещение производится в направлении вектора О X X А, где А ж О — векторы подхода и ориентации, соответственно. REACH (вытягивание) (DIST, VELOCITY) — операция, также аналогичная SWEEP, только выполняемая в направлении вектора подхода. TILT (наклон) (ANGLE)—используя алгоритм планирования движения в приращениях (§ 5.5), повернуть захват на угол ANGLE градусов относительно вектора ориентации. TURN (поворот) (ANGLE) — выполнить аналогичный поворот относительно вектора О X А. TWIST (ротация) (ANGLE) — такой же поворот, но относительно вектора подхода. PLACE (опустить) — перемещать захват вертикально вниз до тех пор, пока он не встретит противодействие минимальной силы, которая может быть обнаружена манипулятором. MOVE (переместить) (Т) — при составлении программы проверить, что рабочее пространство, соответствующее положению захвата, определенному матрицей преобразования Т, не содержит препятствий. Переместить захват по расчетной траектории из текущего положения в положение Т. Захват поднимается до точки подъема LIFTOFF, определяемой как LIFTOFF = INITIAL POSITION (начальное положение) + DEPAJRT, где DEPART (отклонение) — вектор, задаваемый в неподвижной системе отсчета координатой 2 = 3 дюйма. Аналогично, на конечном участке траектории захват опускается, проходя через .течку; спуска SET DOWN (точка спуска) FINAL
78 УПРАВЛЕНИЕ МАНИПУЛЯТОРОМ [ГЛ. 7 POSITION (конечное положение)+ARRIVE, где вектор ARRIVE также определяется величиной z=3 дюйма. PARK (стоянка) — операция, аналогичная MOVE, но для приведения манипулятора в исходное резервное положение. DRAW (тянуть) (DX DY DZ, ROT AXIS (ось вращения захвата), 01, CRANK (рычаг), CRANK AXIS .ROT AXIS (осьповоро- а /пазахвата) * ЯХ DY DZ 4 CRANK AXIS (осьповорота рычага) Рии. 7.1. Движение согласно операции DRAW. (ось поворота рычага), 62, TIME (время), LOOPS (циклы), FORCE (сила), NUMBER FREE (число степеней свободы), FREE VECTOR (вектор направления степени свободы)). Эта операция задает движение захвата по следующей траектории. Захват находится в конце вектора CRANK, причем последний поворачивается на угол 92 градусов относительно оси CRANK AXIS, а его начало сдвигается на вектор DX DY DZ. Одновременно захват изменяет свою ориентацию посредством поворота вокруг оси ROT AXIS на угол 81 градусов (см. рис. 7.1). Если конечная и начальная точки траектории совпадают, то может быть задано движение по замкнутому контуру (см. § 5.2). Кроме того, можно задать число степеней свободы и дополнительную силу, развивае-
§ 7.3] ПРОГРАММА-АССЕМБЛЕР 79 мую кистью в процессе движения. Используя указанную операцию, мы можем выполнять широкий класо задач, связанных с манипулированием. Ниже мы приведем еще ряд элементарных операций управления, которые определяют порядок выполнения других элементарных операций. STOP (остановить) (FORGE, MOMENT) — остановить манипулятор в процессе очередного движения, когда момент обратной связи превысит эквивалентный момент в шарнире (см. § 2.5). Если манипулятор не остановится раньше окончания операции, то выдать сигнал ошибки 23. SKIPE (пропустить) (ERROR) —- при возникновении ошибки ERROR в процессе выполнения предыдущей операции пропустить выполнение следующей операции. SKIPN (ERROR) — при возникновении ошибки ERROR в предыдущей операции выполнить следующую операцию, иначе пропустить следующую операцию. JUMP (перейти) (LAB) — перейти к элементарной операции с меткой LAB. WAIT (ждать) — остановить выполнение, скоррек-. тировать переменные состояния и ждать продолжения команды. TOUGH (соприкосновение) (MASK) — привести в состояние готовности тактильные датчики для следующей элементарной операции. SAVE (сохранить) — сохранить отклонение от расчетной траектории, полученное с использованием алгоритма планирования в приращениях. Эта операция может следовать за элементарными операциями типа CHANGE. RESTORE (восстановить) — отклонить руку от расчетной траектории в конце следующего движения на величину последнего запомненного отклонения. § 7.3. Программа-ассемблер Программа-ассемблер имеет дв$ способа ввода, использующих, соответственно, «процедуры поручений» message procedure) [7], или исходный файл (source file).
80 УПРАВЛЕНИЕ МАНИПУЛЯТОРОМ [ГЛ. 7 Рассмотрим процедуру ввода с помощью исходного файла, причем следует иметь в виду, что те же самые функции может выполнять и управляющая программа (strategy program). Обычно за исходное состояние планирования принимается текущее положение манипулятора. Планируемое состояние руки фиксируется в виде матрицы преобразования STATE размера 4x4. Таким образом, планируемый ряд операций является последовательностью движений из состояния STATE в заданное положение Т. Состояние STATE корректируется в конце каждого выполненного перемещения. В начале программы помещается псевдооперация BEGIN, которая присваивает имя файлу траектории и указывает исходное состояние STATE. Аналогично, в конце программы файл траектории должен быть закрыт. Ниже приводятся следующие псевдорперации. BEGIN (FILE, T) — открыть массив FILE как файл траектории из исходного состояния STATE в заданное положение Т. MERGE (соединить) — соединить последующую элементарную операцию с предыдущей элементарной операцией. END — закрыть файл траектории. MACRO (FILE) — подключить вход планирующей программы к массиву FILE до окончания ввода этого массива. Данная операция является макрооперацией без параметров. Операции MACRO могут быть вложены друг в друга. Параметрами большинства элементарных операций служат либо векторы, либо матрицы. Поэтому, если программа-ассемблер используется в другой программе, указанные векторы и матрицы должны входить в структуру данных этой программы. При вводе от внешнегЬ запоминающего устройства необходимо определить типы данных и присвоить им символические имена. Все имена должны быть определены до этапа соединения элементарных операций. Ниже приводятся следующие операции, задающие типы данных. TRANS (преобразование) (NAME, R, X, Y, Z, Ох, Оу, Oz) — задать матрицу преобразования NAME размера 4x4 такую, что при этом преобразовании
§ 7.4] ПРИМЕРЫ ПРОГРАММИРОВАНИЯ 81 положение центра захвата определяется координатами X, Y, Z, вектор ориентации имеет координаты Ох, ОУ1 Oz, а угол между базисным вектором подхода (см. § 2.1) и вектором подхода составляет R градусов. VECT (NAME, хг, х2, х31 хА) — определить вектор NAME со значениями координат хг, х2, х3, хА. MOVE INSTANCE (TI, TF, IP) — элементарная операция, которая является отчасти операцией, задающей тип данных, вследствие того, что она определяет последовательность матриц для перемещения объекта из исходного состояния TI через промежуточное положение IP в конечное состояние TF. Для выполнения требуемого перемещения эта операция объединяет ряд элементарных операций движения захвата. PROTOTYPE (прототип) (OBJECT) — операция, определяющая прототип тела для манипулирования согласно операции MOVE INSTANCE. Планирующая программа занимает объем ЗОК и разделяет сегмент объема 14К, который содержит подпрограммы выдачи времени счета и глобальные данные. Время счета составляет порядка 1 сек для планирования типовой операции движения и от 0,5 до 4 сек для планирования операции MOVE INSTANCE в зависимости от сложности движения. § 7.4. Примеры программирования С целью иллюстрации применения элементарных операций приведем несколько примеров программ, реализующих требуемое движение захвата. Пример 1. Привести кисть в положение 20, 30, 1, чтобы захватить объект, затем переместить объект в положение 40, 20, 2 и опустить на стол. BEGIN (TRANSFER (перенос), 0) TRANS (T, 90, 20, 30, 1, 1, 0, 0) Определить матрицу преобразования для этого положения захвата. MOVE (Т) - • - . .
82 УПРАВЛЕНИЕ МАНИПУЛЯТОРОМ [ГЛ. 7 CLOSE (0.5) Если нет контакта с объектом, что выдается сообщение об ошибке. Изменить матрицу преобразования в соответствии с новым положением. TRANS (Т, 90, 40, 20, 2, 1, 0, 0) MOVE (T) PLACE PARK OPEN (3) Захват будет открыт в начале движения. MERGE END Пример 2. В данном случае задача манипулятора состоит в том, чтобы захватить объект, положение которого задано с некоторой ошибкой, без перемещения этого объекта. Захват с функционирующими тактильными датчиками сжимается до тех пор, пока какой-нибудь из пальцев не коснется объекта. Затем поочередно кисть совершает движения размаха и сжимается с шагом 0,1 дюйма до момента контакта объекта с другим пальцем. Далее, кисть сжимается для захвата объекта. TOUCH (1) OPEN (-1) L2: SKIPE (6) JUMP (LI) SWEEP (- 0.1, 1) TOUCH (1) OPEN (-1) SKIPE (16) Сжимать кисть с включенными тактильными датчиками. Соприкосновение левого пальца с объектом? Да, двигаться вправо. JUMP (L2) JUMP (L3) LI: SKIPE (16) JUMP (L8) SWEEP (0.1,1) TOUCH (1) Снова сжимать кисть. Соприкосновение другого пальца с объектом? Нет, снова двигаться вправо. Да, операция выполнена. Проверить, что правый палец касается объекта. Нет, тогда состояние ошибки. Двигаться влево.
§ 7.4] ПРИМЕРЫ ПРОГРАММИРОВАНИЯ 83 OPEN (—1) Снова сжимать кисть. SKIPE (6) Соприкосновение левого пальца с объектом? JUMP (L1) Нет, продолжить движение. L3: CLOSE (0.5) Да, сжимать захват. JUMP (L10) Закончить операцию. L8: WAIT Состояние ошибки. L10: Рассмотренная выше программа, файлу которой присвоено имя CATCH (схватить), не имеет операторов начала и конца, поскольку мы собираемся применять ее в качестве макрооперации. Будем использовать операцию CATCH сначала к заданному положению кисти относительно объекта, затем развернем ее на 90° и будем сжимать снова, чтобы в результате захватить объект центрально- симметричным образом. MACRO CATCH Здесь предполагаем, что кисть расположена над объектом. Символ MACRO вызывает ввод текста программы, приведенного в примере 2. OPEN (3) TWIST (90) Открыть захват и развернуть его на 90°. MACRO CATCH Сжать захйат снова. Указанную операцию будем называть MACRO PICK. Если теперь, в программе примера 1 мы заменим элементарную операцию CLOSE (0.5) на MACRO PICK, то сможем осуществить центрально-симметричный захват объекта, не вызывая смещения этого объекта относительно его исходного положения. П р и м е р '3. Навернуть гайку, которая находится в губках захвата, на вертикальный болт, имеющий координаты 20, 30, 1. Остановить навертывание при значении вращающего момента 200 унций «дюйм. BEGIN (SCREW (навернуть), 0) TRANS (T, 90, 20, 30, 2, 1, 0, 0) MOVE (T) Передвину! ь гайку и надеть ее на болт. PLACE VECT (ROTATION, Ось болта. 0, 0,- 1)
84 управление: манипулятором [ГЛ. 7 VECT (NULL, О, 0, 0) VECT (MOMENT, О, 0,- 200) STOP (NULL, MOMENT) VECT (FORCE, 0, 0,— 20) VECT (FREEX, 1, 0, 0) VECT (FREEY, 0; 1, 0) VECT (FREEZ, 0, 0,- 1) DRAW (NULL, ROTATION, 360, NULL, NULL, 0, 60, 3, FORCE, 3, FREEX, FREEY, FREEZ) END Останавливающий момент. Остановить движение манипулятора при значении момента 200 унций «дюйм. Сила давления на болт в процессе навертывания. При навинчивании гайки захват должен обладать степенями свободы в направлении осей х, у и z. В нашем случае векторы CRANK и CRANK AXIS (см. описание элементарной операции DRAW в § 7.2) вырождаются в точки. При этом мы считаем, что точка CRANK не изменяет своего положения. На выполнение одного витка отводится 1 сек времени. Планируется выполнить максимум 3 витка. В процессе навертывания захват должен развивать заданную силу. Движение захвата осуществляется при наличии трех степеней свободы в направлении осей х, у и z. В результате выполнения рассмотренной операции гайка будет навернута на болт. § 7.5. Выполнение программы За исключением операций MOVE и DRAW, которые требуют файлов траекторий, большинство функций манипулирования может выполняться непосредственно путем
§ 7.6] программа Манипулятора 85 задания оператора DO перед именем соответствующей элементарной операции. Программа-ассемблер планирует то или иное действие манипулятора и засылает алгоритм в программу сервосистемы для исполнения. При этом состояние программы сервосистемы не изменяется, если она находится в режиме «ожидания»; выполнение программы может продолжаться после любого числа реализованных элементарных операций. Согласно данному методу, который использует взаимодействующие программы, сначала планируется перемещение захвата в окрестность требуемого положения, а затем планируется режим «ожидания». Изменение положения захвата осуществляется во время фазы ожидания посредством выполнения взаимодействующей программой последовательности команд с оператором DO. Реализация запланированной траектории может быть продолжена в результате обращения к процедуре DO PROCEED. § 7.6* Программа манипулятора В этом разделе мы рассмотрим функции основных частей исполнительной программы, упрощенная блок-схема которой приведена на рис. 7.2. Цикл счета выполняется 60 раз в секунду. В том случае, когда манипулятор не находится в движении, блок RUN (работа) выдает значение FALSE, согласно которому перед выполнением очередной операции производится контрольная проверка показаний тактильных датчиков. По окончании операции движения или функции манипулирования счетчик программы получает соответствующее • приращение, после чего выполняется следующая элементарная операция. «Нулевая» элементарная операция завершает выполнение программы. Блок ANGLES (углы) измеряет величины всех обобщенных координат и производит с ними требуемые преобразования. Значения скоростей определяются либо на основании выходных сигналов с тахогенераторов (для шарниров 1 и 2), либо в результате дифференцирования измеренных величин обобщенных координат.
86 Управление манипулятором [гл. 7 В блоке SERVO (сервосистема), в соответствии с § 6.1, вычисляются значения ошибок и величины управляющих сил в сочленениях. Рис. 7.2. Упрощенная блок-схема программы манипулятора. Если выполняется элементарная операция STOP, то для того, чтобы определить, когда следует остановить манипулятор, значения моментов ошибок сравниваются со значениями обобщенных моментов в сочленениях. В конце траектории значения позиционных ошибок сводятся к нулю. При этом, если ошибка каждого отдельного
§ 7.6] ПРОГРАММА МАНИПУЛЯТОРА 87 сочленения находится в пределах допуска, привод этого сочленения ставится на тормоз. После того как все сочленения будут застопорены, выполняется следующая элементарная операция. В блоке DRIVE (привод), на вход которого поступают рассчитанные величины моментов или сил в сочленениях, вычисляются величины управляющих сигналов на двигатели приводов. Этот же блок осуществляет контроль за величиной силы в каждом сочленении и останавливает манипулятор, если указанная величина превышает свое допустимое значение. Следующая часть программы, называемая ТНЕТА, вычисляет очередные значения обобщенных координат, производит интерполяцию величин Jt и Tg (6.11) — (6.13) и управляет «переключением» траекторий при движении по замкнутому контуру (см. § 5.4). Блок TOUCH (соприкосновение) контролирует показания тактильных датчиков и в случае соприкосновения датчиков с препятствием останавливает манипулятор. Блок FUNCT (функция) служит для выполнения требуемых функций манипулирования. Обычно в процессе движения функции не выполняются, за исключением разжимания пальцев захвата. Время выполнения цикла программы для процессора PDP-6, использующего представление чисел в форме с плавающей точкой, приближенно равно 9 миллисекундам. Длина программы составляет ЗК слов, включая буферную область для ввода траектории. Во время работы манипулятора расчетный сигнал траектории задается в виде е;=/(Т), (7.1) где / (т) — полином соответствующего участка траектории (см. § 5.2); т — нормированное время. Управляющий сигнал манипулятора имеет следующий вид: в; = е« + <ю, (7:2). где dQ — постоянное отклонение между управляющим сигналом и расчетным сигналом траектории. Между точкой подъема и точкой спуска на интервале времени Тт имеем е; = Qt + dQ + dfig (т), (7.3)
88 УПРАВЛЕНИЕ МАНИПУЛЯТОРОМ [ГЛ. 7 где полином g (т) определяется формулой (5.36). При t = T'm dQ изменяется следующим образом: dQ <- dQ + d2,0*) (7.4) d2Q«-0. (7.5) В начале движения по траектории мы полагаем d0«-9-9,, (7.6) d29 < dQ + d29, (7.7) где 6 — измеренное значение обобщенной координаты. Таким образом, в начале траектории 6, = в = в/ + <Ю, (7.8) а в конце участка спуска e's = Qt + d2Qh (7.9) где d2Qt есть значение d2Q (7.7) в начале траектории. Если d2Q положить равным нулю в конце предыдущей траектории согласно (7.5), то (7.9) примет вид es = е„ (7.Ю) откуда следует, что если рука была смещена относительно исходной точки планирования траектории, она постепенно вернется на заданную траекторию в процессе движения по среднему участку. Возмущенное движение реализуется в результате введения поправки d2Q, назначения времени Тт и работы блока RUN. В конце интервала Тт исполнительный орган дополнительно переместится на величину d2Q, на эту же величину изменится также и значение d0. Команда SAVE обеспечивает сохранение отклонения d0, а элементарная операция RESTORE добавляет d20 к ранее запомненному значению dQ. Посредством указанных операций мы можем прийти в некоторое положение, используя возмущенное движение, запомнить значение dQ, и затем, если мы желаем вернуться в это возмущенное положение, восстановить отклонение dQ относительно исходного невозмущенного положения. *) Здесь символ <— соответствует так называемой операции заме- гцения и присваивания. Запись х «— / означает, что по формуле / следует произвести вычисления при текущих значениях входящих в нее переменных и полученным результатом заменить предыдущее значение переменной х, (Прим, ред,)
§ 8.1] КРАТКОЕ ИЗЛОЖЕНИЕ ОСНОВНЫХ РЕЗУЛЬТАТОВ 89 Глава 8 ЗАКЛЮЧЕНИЕ § 8.1. Краткое изложение основных результатов В данной работе сделана попытка изложить, систематический подход к программированию движений манипулятора. При этом рассматривались следующие три основные задачи: 1) задача захвата объекта; 2) перемещение захвата манипулятора в пространстве; 3) управление движением исполнительного органа. Одним из этапов решения первой задачи является создание модели внешней среды и представление реальных объектов в этой модели после их распознавания и классификации на основании информации от видеосистемы и тактильных датчиков. Вопросы, связанные с захватом различных объектов, решаются в рамках построенной модели внешней среды с помощью символического описания этих объектов. Использование рассмотренного метода не вызывает трудностей при выполнении достаточно сложных операций по манипулированию, которые встречаются, например, в процессе решения головоломки под названием «мгновенное умопомрачение» {Instant Insanity Puzzle) [8]. Хотя в настоящей работе мы предполагали, что исполнительный орган функционирует в свободном пространстве, и не рассматривали специально вопрос об обходе препятствий, мы надевхмся, что этот вопрос может быть успешно разрешен на основе предложенного подхода к моделированию внешней среды. При исследовании движения исполнительного органа мы показали необходимость прохождения траектории захвата через определенную последовательность положений, чтобы избежать столкновения с основанием. Для этой последовательности положений захвата решается обратная задача, т. е. определяются значения обобщенных координат сочленений и затем для каждого сочленения строится гладкая кривая, проходящая через полученные точки. Указанные траектории позволяют сократить время выполнения операции, поскольку они не требуют
90 ЗАКЛЮЧЕНИЕ [ГЛ. 8 остановки исполнительного органа в промежуточных положениях. Запланированные траектории позволяют нам рассчитать величины моментов или сил в сочленениях, обеспечивающих заданную силу, создаваемую захватом. Заметим, что наличие статического трения в приводах сочленений приводит к ошибке воспроизведения требуемого усилия, значение которой, приведенное к захвату, составляет порядка +10 унций для рассматриваемого манипулятора. Чтобы уменьшить эту ошибку, необходимы дополнительные датчики для измерения сил в сочленениях или сил, действующих на захват. В случае измерения сил датчиками, установленными на захвате, определение величин обобщенных сил в сочленениях производится с помощью матриц соответствующих преобразований. Завершенная программа действий манипулятора записывается в виде файла. Каждый файл содержит как параметры траектории и сервосистемы, так и значения сил в сочленениях, требуемых для управления силой захвата. Иногда целесообразно параметры траектории и сервосистемы оформить в виде отдельного массива. Тогда данная траектория может использоваться каждый раз, когда возникает потребность в подобном перемещении. Если при этом требуется управлять силой захвата, то в сущест вующую траекторию дополнительно вводятся вычисленные значения обобщенных сил в сочленениях. Для решения третьей из рассматриваемых задач составлена программа управления, согласно которой производится управление движением манипулятора и выполнение им различных функций. В том случае, когда манипулятор используется не только для целей перемещения, свойства ЦВМ позволяют изменить способ выполнения той или иной операции в зависимости от ряда условий. Точность позиционирования манипулятора составляет ±0,1 дюйма, а ее повторяемость равна ±0,03 дюйма. Основными ограничениями, которые обусловливают указанные показатели точности, являются число разрядов аналого-цифрового преобразователя и жесткость звеньев механизма руки.
§ 8.2] ПЕРСПЕКТИВЫ ДАЛЬНЕЙШИХ ИССЛЕДОВАНИЙ 91 Рассмотренная система управления манипулятором достаточно точно реализует алгоритм движения в приращениях. Поэтому мы можем сначала переместить захват в окрестность заданного положения объекта, а затем, определив отклонение от этого положения с помощью видеосистемы или тактильных датчиков, применить указанный алгоритм для соответствующей коррекции положения захвата. Принятое в настоящей работе решение о перемещении исполнительного органа по определенного вида траекториям и последующее решение о разделении данной задачи на задачу планирования и задачу исполнения — значительно облегчают исследование поставленных проблем. В частности, не имея запланированных траекторий, мы не могли бы ни прогнозировать влияние нагрузки от силы тяжести, ни управлять подходом к опорной плоскости. Составляя программы для задач планирования и исполнения, мы можем каждую из этих программ сформировать оптимальным образом. Так, оказалось возможным записать планирующую программу на языке высокого уровня и выполнять ее в режиме с разделением времени, ввиду отсутствия ограничений на реальное время. Исполнительная программа написана на языке ассемблера и может быть реализована с помощью небольшой ЦВМ. § 8.2. Перспективы дальнейших исследований Среди исследований, которые намечено провести в будущем, мы можем выделить два основных направления: моделирование окружающей среды и управление манипулятором. При моделировании окружающей среды должны быть рассмотрены вопросы об определении препятствий и программировании соответствующей траектории для обхода этих препятствий. Следует также расширить класс объектов, представимых в модели, и изучить вопрос о манипулировании с ними. В области управления необходимо повысить сенсорную способность манипулятора, снабдив его более совершенными тактильными датчиками и датчиками для измерения сил в запястье. Указанное дополнительное
92 ЗАКЛЮЧЕНИЕ [ГЛ. 8 «очувствление» манипулятора позволит ему выполнять более тонкую работу. Заметим, что существующая система способна взвешивать объекты посредством измерения значений обобщенных сил в сочленениях и проведения требуемых расчетов. Мы можем также определять степени свободы неизвестного объекта, прикладывая к нему силы в разных направлениях и анализируя результирующее движение. Вообще говоря, рассмотренная система может выполнять большое число операций подобного рода. Следующей важной областью исследований является работа манипулятора с различными инструментами. При этом решение большинства из задач упрощается в результате использования двух манипуляторов, один из которых удерживает деталь в заданном положении, а другой производит с ней требуемые операции. В настоящее время мы устанавливаем второй манипулятор, аналогичный описанному в данной работе, и надеемся разрешить некоторые из этих проблем [37].
ПРИЛОЖЕНИЯ П.1. Описание конструкции манипулятора Общий вид манипулятора, рассматриваемого в настоящей работе, показан на рис. 2.1 и 2.3. Ниже мы приведем основные рабочие характеристики этого манипулятора и укажем особенности его конструкции. Кисть манипулятора, представляющая собой захват с параллельными губками с максимальным расстоянием раскрытия губок 10 см, может перемещаться с любой ориентацией в любую точку рабочей зоны в пределах радиуса 1 м относительно плечевого шарнира. На захвате установлены тактильные датчики типа простых микровыключателей. Исполнительный орган, спроектированный для работы с нагрузкой до 5 кг, приводится в движение с помощью электродвигателей. На большинстве из шарниров смонтированы волновые редукторы, что позволяет манипулятору эффективно реагировать на действие внешних сил (см. § 6.3) и создавать требуемое усилие захвата в процессе движения. Приводы шарниров снабжены тормозами для удержания механизма руки в застопоренном положении при отсутствии управляющих сигналов. Мощность приводов выбрана таким образом, чтобы обеспечить высокие динамические свойства манипулятора. В частности, поворот исполнительного органа на 180° вокруг оси шарнира плеча может быть осуществлен немногим более чем за 1 сек, включая время разгона и торможения. Точность позиционирования захвата манипулятора составляет порядка ±0,1 дюйма, а ее повторяемость ± 0,03 дюйма. Перемещение захвата по траектории от «точки к точке» обычно занимает от одной до двух секунд. Значения обобщенных координат измеряются с помощью интегральных потенциометров и вводятся в ЦВМ через 12-разрядный аналого-цифровой преобразователь. Вследствие того, что шарнир ротации захвата может
94 приложения работать в режиме непрерывного вращения, потенциометр этого шарнира имеет два контактных движка, закрепленных на общей оси. В том случае, когда один из движков находится на расстоянии менее чем 1/8 оборота от конца шкалы, для измерения текущего значения угла используются показания, снимаемые со второго движка. При замене сигнала одного движка сигналом другого к последнему добавляется соответствующая поправка. Непрерывное вращение захвата вокруг оси ротации требуется при выполнении таких операций, как завинчивание болтов, винтов гаек и т. п. Сигнал управления на электроприводы манипулятора подается в виде модулированных по ширине импульсов напряжения. Скважность импульсов и их полярность определяются с помощью ЦВМ. Если манипулятор не управляется от ЦВМ в течение 20 миллисек, сигнал автоблокировки останавливает приводы и ставит их на тормоза. В этом случае работа манипулятора может быть возобновлена только после выдачи ЦВМ команды о снятии блокировки. П.2. Язык программирования SAIL Язык SAIL [22] представляет собой расширенный диалект АЛГОЛа, дополненный средствами языка LEAP [6], в частности конструкциями ITEM и DATUM. Для представления моделей объектов и их частей (граней, вершин, ребер) будем использовать в качестве имени тип данных, называемый «элементом списка» или «итемом» (ITEM). Основное использование итемов заключается в том, что они могут быть соединены в триады или ассоциации в виде предложения: «Свойство объекта имеет значение» (9.1) (Attribute of Object is Valie), где «свойство», «объект» и «значение» являются элементами списка. Соединение трех элементов списка в триаду, запоминаемую в ассоциативной памяти, производится с помощью операции МАКЕ (сделать) МАКЕ А ® О = V, (9.2) где символ «О» (of) означает принадлежность данного
ПРИЛОЖЕНИЯ 95 свойства А некоторому объекту О, а знак эквивалентности = обозначает «есть» (is). Ассоциации исключаются из памяти посредством оператора ERASE (исключить), например, ERASE A ® О = V. (9.3) Для осуществления эффективного поиска в ассоциативной памяти используется оператор FOREACH (для каждого). Предположим, что мы сформировали следующие ассоциации: FACE (g) CUBE = FACE 1 FACE (g) CUBE == FACE 2 Приведем такую запись: FOREACH F |FACE (g) CUBE = F DO (statement} (9.4) где (statement} — некоторое утверждение на языке АЛГОЛ; F — переменная типа «элемента списка». Запись (9.4) означает, что переменной F будут последовательно присвоены значения FACE 1 и FACE 2 и для каждого из этих значений будет выполняться утверждение (statement}. С каждым элементом списка может быть связан его «признак» (DATUM), который принадлежит алгебраическому типу данных и обычно является массивом, т. е. вектором или матрицей. При обращении к этому массиву перед именем элемента списка ставится символ DATUM, а при обращении к элементу массива дополнительно указывается индекс элемента, например, DATUM (A) (9.5) DATUM (А) [1, 3]. Так, если мы представим вершину объекта «элементом списка» VERTEX 1, то в качестве его «признака» можем задать вектор, определяющий положение этой вершины относительно неподвижной системы координат. Тогда выражение DATUM (VERTEX 1) [1] будет соответствовать координате х указанной вершины.
96 ПРИЛОЖЕНИЯ П.З. Векторы и матрицы Векторы, представляющие точки пространства, определяются с помощью четырех координат *). Так, наприт мер, для вектора V будем иметь У = IV» F2, FBI F4p, (9.6) где символ «т»— обозначает транспонирование и все Vt (i = 1, 2, 3, 4) не могут быть одновременно равны нулю. Если F4 Ф О, то каждой точке трехмерного проективного пространства можно поставить в соответствие точку трехмерного евклидова, или, точнее, аффинного, пространства с декартовыми координатами х, у и z, причем т -^ Vl it — ^2 * _= ^з /О 7\ В наших обозначениях нулевой вектор записывается как [О, 0, 0, 1]-, (9.8) а векторы вида [Flf F2, F8, 0]- (9.9) представляют бесконечно удаленные точки проективного пространства. Рассмотрим теперь операции над векторами в однородных координатах. Сложение и вычитание векторов выполняются согласно формулам В = А ± В, (9.10) где *) Имеется в виду представление точек трехмерного проективного пространства с помощью однородных координат. Одним из преимуществ однородных координат является то, что любое аффинное преобразование и, в частности, движение (т. е. преобразование вида у = Ux + 6, где х, у, b — трехмерные векторы, a U — ортогональная матрица размера 3 X 3) в аффинном пространстве эквивалентно линейному преобразованию в однородных координатах проективного пространства. Более подробно с проективным пространством и однородными координатами читатель может ознакомиться, например, по книгам [31], [32]. (Прим. ред.)
ПРИЛОЖЕНИЯ 97 Для скалярного и векторного произведений двух векторов имеем, соответственно, В = А X В, (9.12) где Длина вектора А равна Умножение вектора 4 на скаляр 5 определяется как (9.14) Плоскости в проективном пространстве задаются также четверкой действительных чисел в виде матрицы- строки [^i, F2, FB, FJ, (9.15) где первые три компоненты представляют декартовы координаты единичного вектора внешней нормали к плоскости, а четвертая равна расстоянию до плоскости от начала координат, взятому со знаком минус, т. е. (см. рис. 9.1) F1=N11 F2 = N2,F3 = N3,Ft=-D. (9.16) При таком описании плоскости существует простое правило, чтобы определить, как расположена заданная точка V относительно плоскости. Запишем произведение матрицы-строки F на вектор V: FV = FXVX + F2V2 + F3V3 + F4F4. (9.17) Тогда, если это произведение положительно, точка V находится во внешнем полупространстве относительно плоскости, а если отрицательно, то во внутреннем. Если указанное произведение равно нулю, то координаты точки V удовлетворяют уравнению плоскости и, следовательно, сама точка лежит на плоскости.
98 прилоЖёня Располагая представлением векторов и плоскостей в однородных координатах, мы можем определить для них преобразования вращения и сдвига посредством умножения слева на соответствующую матрицу. Рис. 9.1. Описание плоскости. z Рис. 9.2. Поворот системы координат. Так, для векторов вращение задается следующей матрицей размера 4x4: **' Ух' zx> ° ху Уу zv ° О vz> Ух' (9.18) 0 0 0 1 где первые три элемента первых трех столбцов являются координатами единичных векторов исходной системы
ПРИЛОЖЕНИЯ 99 координат. В частности, единичный вектор оси х х = [1, О, О, 1]т (9.19) в результате преобразования х* = Тгх (9.20) будет иметь координаты v,av,lr (9.21) t 1 0 0 0 0 1 0 0 0 0 1 0 xt Ух zt i в повернутой системе координат (см. рис. 9.2). Преобразование типа сдвига задается с помощью матрицы (9.22) откуда следует, что сдвинутый вектор, определенный как TtV, (9.23) имеет координаты IVX + хи V2 + уь V8 + zu F4]T. (9.24) Композиция вращения и сдвига определяется произведением матриц Т = TtTr, где т ху, xz. 0 Уу' Уг> 0 V 0 Ух zt 1 (9.25) (9.26) Мы используем только матрицы указанного вида, хотя работа всей системы в целом требует выполнения и таких преобразований, как умножение на масштабный коэффициент, растяжение и перспективное преобразование. Для описания плоскостей при соответствующем преобразовании координат будем исходить из того факта, что при этом преобразовании линейная форма (9.17) должна
100 приложвния сохранять свое значение, т. е. FV = jF'F', где F' = TV. Тогда, подставляя (9.28) в (9.27), получим FV = FTV. Следовательно, F' = FT-1, или, что эквивалентно, [JF']T = [JP"1]tJ?t
ЛИТЕРАТУРА 1. A g i n G., Description and Representation of Curved Objects. Ph. D. Thesis., Stanford University, September 1972. 2. Baumgart В., GEOMED—A Geometric Editor. Stanford Artificial Intelligence Laboratory Operating Note, 68, May 1972. 3. Э д з ир и М., У н о Т., И ода X., Г о то Т., Такея- с у К., Интеллектуальный робот, способный «понимать» окружающую обстановку и принимать решения. В сб. «Интегральные роботы», «Мир», 1973. 4. Ernst Н. А., МН-1 A Computer-Operated Mechanical Hand. Sc. D. Thesis, Massachusetts Institute of Technology, December 1961. 5. F a 1 k G., Computer Interpretation of Imperfect Line Data as a Three Dimensional Scene. Stanford Artificial Intelligence Project Memo No. 139, August 1970. [Русск. перев.: Фальк Дж., Анализ сцен по неполным контурным рисункам. В сб. «Интегральные роботы», «Мир», 1973]. 6. Feldman J. A., Rovner P. D., An Algol-Based Associative Language. Communication of the ACM, vol. 12, No. 8, August 1969, pp. 439—449. 7. Фельдман Дж., С пру л л Р., Программное обеспечение для стэнфордской системы «глаз — рука». В сб. «Интегральные роботы», «Мир», 1973. 8. Фельдман Дж., Пингл К., Бинфорл Т., Фальк Дж., К ей А., Пол Р., Спрулл Р. иТенен- б а у м Дж., Решение головоломки автоматической зрительной системой и манипулятором. В сб. «Интегральные роботы», «Мир», 1973. 9. Gill A., Visual Feedback and Related Problems in Computer Controlled Hand — Eye Coordination. Ph. D. Thesis, Stanford University. September 1972. 10. G о e r t z R. C, Fundamentals of General-Purpose Manipulators. Nucleonics, vol. 10, No. 11, November 1952, pp. 36—42. 11. Goertz'R. C, Manipulator Systems Developed at ANL. Proc. 12th Conference on Remote Systems Technology, ANS, November 1964, pp. 117—136. 12. G о t о Т., Та key as u K., I no у am а Т., Shi morn u r a R., Compact Packaging by Robot with Tactile Sensors. Proc. 2nd Intern. Symp. on Industrial Robots, May 1972, pp. 149— 159. 13. Proceedings of the 2nd International Symposium on Industrial Robots, May 1972.
102 ЛИТЕРАТУРА 14. I n о u e H., Computer Controlled Bilateral Manipulator. Bulletin of the Japanese Society of Mechanical Engineers, vol. 14, No. 69, 1971, pp. 199—207. 15. Kahn M. E., The Near-Minimum-Time Control of Open — Loop Articulated Kinematic Chains. Stanford Artificial Intelligence Project, Memo No. 106, December 1969. 16. L i n d b о m Т.Н., Today's Robots at Work in Industry: Matching the Robot and the Job. Proc. 2nd Intern. Symp. on Industrial Robots, May 1972, p. 129—148. 17. Пол Р., Ф а л ь к Дж., Фельдман Дж., Машинное представление просто описываемых сцен. В сб. «Интегральные роботы», «Мир», 1973. 18. Р i e p e r D. L.,, The Kinematics of Manipulators Under Computer Control. Stanford Artificial intelligence Project, Memo No. 101, 1969. 19. Роберте Л., Автоматическое восприятие трехмерных объектов. В сб. «Интегральные роботы», «Мир», 1973. 20. R о b e r t s L. G., Homogenous Matrix Representation and Manipulation on N-Dimensional Constructs. Document MS1045, Lincoln Laboratory, Massachusetts Institute of Technology, May 1965. 21. Scheinman V. D., Design of a Computer Manipulator. Stanford Artificial Intelligence Project, Memo No. 92, June 1969. 22. Swinehart D., Sproull R., Sail. Stanford Artificial Intelligence Project. Memo № 57, November 1969. 23. У и к е р Дж., Динамика пространственных механизмов. Конструирование и технология машиностроения, Труды Американского общества инженеров-механиков, Серия В, № 1, ВИНИТИ, 1969. 24. W i с h m a n W. M., Use of Optical Feedback in Computer Control of an Arm. Stanford Artificial Intelligence Project, Memo. No. 56, August 1967. Литература, добавленная при переводе 25. Артоболевский И. И., Кобринский А. Е., Роботы. Машиноведение, № 5, 1970. 26. Игнатьев М. В., Кулаков Ф. М., Покровский A.M., Алгоритмы управления роботами-манипуляторами. «Машиностроение», 1972. 27. К у л е ш о в В. С, Л а к о т а Н. А., Динамика систем управления манипуляторами. «Энергия», 1971. 28. П о п о в Е. П. Роботы-манипуляторы. «Знание», 1974. 29. Охоцимский Д. Е., С а р ы ч е в В. А., 3 у е в а Е. Ю., Мирер С. А., С а д о в Ю. А., Ш н е й д е р А. Ю., Я к о в- л е в Н. И., Моделирование на ЭВМ управления роботом-манипулятором, Институт прикладной математики АН СССР. Препринт Ко 104, 1974. 30. А л б е р г Дж., Н и л ь с\р н Э., У о л ш Дж., Теория сплайнов и ее приложения. «Мир», 1972. 31. Хартсхорп Р., Основы проективной геометрии. «Мир», 1972.
ЛИТЕРАТУРА ЮЗ 32. Розенфельд Б. А., Многомерные пространства. «Наука», 1966. 33. Попов Е. П., Управление роботами-манипуляторами. Изв. АН СССР, Техническая кибернетика, № С, 1974. 34. Верещагин А. Ф., Генерозов В. Л., Кучеров В. Б., Алгоритмы управления манипуляторами по вектору скорости. Изв. АН СССР, Техническая кибернетика, № 3, 1975. 35. Верещагин А. Ф., Принцип наименьшего принуждения Гаусса для моделирования на ЦВМ динамики роботов-манипу- пуляторов. Доклады АН СССР, т. 220, № 1, 1975. 36. В е р е щ а г и н А. Ф., Метод моделирования на ЦВМ динамики сложных механизмов роботов-манипуляторов. Изв. АН СССР, Техническая кибернетика, № 6, 1974. 37. Ф и н к е л ь Р., Т е й л о р Р., Б о л с Р., П о л Р., Ф е л ь д- м а н Дж., Обзор AL-системы программирования для автоматизации. Труды IV Международной объединенной конференции по искусственному интеллекту (Тбилиси, сентябрь 1975 г.), разд. 7, Технические средства и математическое обеспечение искусственного интеллекта, АН СССР, Москва, 1975.
Р. ПОЛ МОДЕЛИРОВАНИЕ, ПЛАНИРОВАНИЕ ТРАЕКТОРИЙ И УПРАВЛЕНИЕ ДВИЖЕНИЕМ РОБОТА-МАНИПУЛЯТОРА М., 1976 г., 104 стр. с илл. Редактор Д. С. Фурманов Техн. редактор Л. В. Лихачева Корректор А. Л. Ипатова Сдано в набор 19/Y 1976 г. Подписано к печати 3/VIII 1976 г. Бумага 84х10вуп. Физ. печ. л. 3,25. ^словн. печ. л. 5.46. Уч.-изд. л. 5,19. Тираж 4700 экз. Цена книги 38 к. Заказ № 710 Издательство «Наука» Главная редакция физико-математической литературы 117071, Москва, В-71, Ленинский проспект, 15 2-я типография издательства «Наука», Москва, Г-99, Шубинский пер., 10