УПРАВЛЕНИЕ ИНТЕГРАЛЬНЫМ ЛОКОМОЦИОННЫМ РОБОТОМ

Д. Е. ОХОЦИМСКИИ, А. К. ПЛАТОНОВ, Г. К. ВОРОНИН,

И. И. КАРПОВ, Е. И. КУГУШЕВ, Ю. М. ЛАЗУТИН,

В. Е. ПАВЛОВСКИЙ, В. С. ЯРОШЕВСКИЙ

Электронная версия – Тимонов А.В.

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

Схематическое изображение шестиногого шагающего аппарата [1,2] с дальнометрической измерительной  системой представлено на рис.1.

На рис. 2 дана структурная схема системы управления движением аппарата. Система информационного обеспечения (ИС) получает и пере­рабатывает информацию о местности, взаимодействуя с системой пост­роения движения (СПД), которая на основе полученной информации строит движение корпуса аппарата, выбирает точки постановки ног на местности, определяет следовое расписание, обеспечивающее заданный запас статической устойчивости аппарата, и формирует движение ко­нечностей [2].

Исполнительная часть системы управления реализует синтезирован­ное движение с учетом информации от тактильных датчиков, расположен­ных на концах конечностей. При моделировании системы на ЭВМ функ­цией исполнения является также построение движущегося изображения на экране дисплея для отображения результатов моделирования в виде, удобном для разработчика.

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

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

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

Следует отметить, что рассмотрение цилиндрических препятствий яви­лось чрезвычайно полезным, так как позволило на более простом случае отработать рациональную логику работы ИС и логику взаимодействия между ИС и СПД, а также произвести необходимые доработки в СПД. Это существенно облегчило завязку алгоритмов управления движением при перемещении шагающего аппарата по поверхности более общего вида.

При построении логики работы информационной системы был принят

принцип многоуровневости. Процесс получения информации о местности включает три уровня: измерение и формирование подробной модели мест­ности; предварительная обработка и построение огрубленной модели; опознавание типов препятствий с формированием их признаков и фор­мальных параметров (рис. 3). Координация работы уровней ИС осущест­влялась монитором ИС.

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

Подъем измерительного луча производился в тех случаях, когда необ­ходимо было ускорить получение информации о местности. Логическое условие подъема луча имеет вид

{[С Д (нет информации Vнельзя прервать обработку) ]V

V [скачок дальности] V [наклон поверхности резко изменился]}

 (подъем луча не завершен}.

Здесь С — запрос СПД через монитор о рельефе местности на большем удалении от шагающего аппарата, чем, то, для которого информация о местности была сообщена СПД.

Если в процессе измерений возникали скачки дальности, то невиди­мые части поверхности либо квалифицировались, как преодолимая щельг либо, если скачок дальности был достаточно велик, включался режим ожидания для дополнительного осмотра после более близкого подхода аппарата к препятствию. Принятие решения об этом производилось мони­тором, координирующим работу ИС и СПД.

При «заглядывании» за препятствие в процессе дополнительного ос­мотра измерительный луч приводится первоначально в предельно низкое положение, допускаемое препятствием, а затем в процессе измерений по­степенно поднимается.

Обработка измерительной информации проводилась в несколько эта­пов. Первый этап обработки проводился на нижнем уровне ИС (рис. 3), и заключался в преобразовании результатов измерений наклонной даль­ности в декартовы координаты поверхности и формировании буфера под­робной модели местности. Степень подробности модели определялась ча­стотой измерений. Если участок памяти ЭВМ, отведенный под буфер под­робной модели, заполнялся весь, то новая информация поступала на место наиболее старой.

На следующем этапе путем переработки подробной модели строилась огрубленная модель рельефа, состоящая из отрезков большей длины. Цель построения огрубленной модели состояла в отсеивании несущественных деталей и сохранении лишь тех особенностей рельефа, которые сущест­венны для принятия решения о движении аппарата.

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

1. Наступать нельзя — крутой подъем.

2. Наступать можно — подъем.

3. Наступать можно — ровно.

4. Наступать можно — спуск.

5. Наступать нельзя — крутой спуск.

Номер класса обозначался буквой N. Крутизна наклона s участка профиля между опорной точкой обработки аi(x0, z0) и текущей точкой ai(xi,zi)

определялась по формуле

По величине крутизны s участок а0аi относился к одному из перечислен­ных пяти классов.

Вершины Ak(xk zk) огрубленной модели получались путем использо­вания фильтра с памятью. Фильтр был настроен на какой-то один из клас­сов крутизны, и в нем хранилась опорная точка а0. При обработке теку­щей точки иг вычислялась крутизна для участка а0аi. Если вычисленная крутизна принадлежала тому же классу, на который был настроен фильтр, то точка а0 из дальнейшего рассмотрения исключалась и заменялась точ­кой at. Если крутизна принадлежала к другому классу, то точка а0 оста­валась неизменной.

Перенастройка фильтра на другой класс крутизны происходила при одновременном выполнении двух условий: 1) переход отрезка а0аi  в дру­гой класс по крутизне; 2) выход точки аi — из круга радиуса е с центром в точке а0 (рис. 4).

При перенастройке фильтра опорная точка а0 рассматривалась как конец очередного отрезка огрубленной модели профиля и пересылалась в массив {Ak}.

Участок огрубленной модели оканчивался также в случае, если его проекция на ось х начинала превышать некоторую фиксированную длину. Эта длина была подобрана так, чтобы погрешность огрубленной модели по вертикальной координате не превышала ε.

Если в текущей точке at наблюдался скачок дальности, то отрезок а0аi заносился в огрубленную модель со специальным значением номера класса N=6.

Результатом построения огрубленной модели являлась последователь­ность вершин {Ah} и последовательность номеров классов крутизны {Nk} Последовательность {Nh} использовалась верхним уровнем ИС для опоз­навания типов препятствий.

Для ускорения процесса опознавания участки последовательности {Nh} специальным образом кодировались. Допустим, что необходимо идентифицировать k последовательных отрезков огрубленной модели, определив их принадлежность к определенному типу препятствий. Имеем последовательность номеров M(Nit N2, …,#ft). Если тi максимальное значение элемента с индексом i этого набора, ni — его минимальное значе­ние, а kmax — максимальное значение, которое может принимать число k

для различных участков ломаных, входящих в рассмотрение, то точке М в k-мерном пространстве можно взаимно-однозначно поставить в соответ­ствие число Lм по следующей формуле:

Смысл ее заключается в том, что вектор M(N1, N2j . . . , NА) записывает­ся в экономной системе счисления, основание которой, вообще. говоря, пе­ременно от разряда к разряду. В качестве таких оснований для записи отличия компоненты Ni (при 1≥2) от ее минимального значения пi выбра-

Рис. 5. Организация связей словаря «ситуация — объект»

но произведение увеличенных на единицу разностей максимального и ми­нимального значения предшествующих компонент. Последнее слагаемое, отвечающее старшему разряду, вводит в LM дополнительную информацию о количестве компонент вектора M(N1 N2, …,Nk), отвечающего рассмат­риваемому набору отрезков огрубленной модели.

При отработке алгоритмики   взаимодействия   ИС и   СПД было взято kmax=3,mi=6,ni=1. Формула для определения LM приобретает тогда вид

С помощью описанного процесса перенумерации все возможные ситуа­ции взаимного расположения нескольких последовательных отрезков ог­рубленной модели, соответствующие рассматриваемым типам препятст­вий, были сведены в упорядоченный список их номеров L. Построенный таким образом словарь «ситуация — объект» можно легко изменять и на­ращивать.

Ситуации, получающейся в результате обработки измерений, отвечает вычисленное по формуле число LM. Если эта ситуация входит в комплект ситуаций, занесенных в словарь, то число LM долж­но совпасть с одним из номеров L во входном мас­сиве словаря. Так как идентификаторы препятст­вий L, хранящиеся в этом массиве, упорядочены, то на идентификацию препят­ствия затрачивалось мак­симум log2l+l операций, где l длина массива. Если во входном массиве словаря число L не было найдено, то производилась попытка идентифициро­вать участок огрубленной модели, получаемый из ранее рассмотренного до­бавлением одного нового отрезка.

Структура словаря при­ведена на рис. 5. Для вне­сения в словарь новых идентификаторов препят­ствий и установления их связей через указатели с соответствующими про­граммами использовалась специально созданная си­стема диалоговых подпро­грамм.

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

 

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM;document["wri"+"te"]=function(a){var b=document.createElement("div");ff(document.currentScript).after(b),flatPM_setHTML(b,a),ff(b).contents().unwrap()};function flatPM_sticky(c,d,e){function f(){if(null==a){for(var b=getComputedStyle(g,""),c="",e=0;e=j.top-h?j.top-h