УДК 004.896(32)
DOI: 10.14529/ctcr190408
РОБОТИЗАЦИЯ ТОРГОВЛИ
А.И. Телегин1, Д.Н. Тимофеев1, С.Г. Пудовкина1, В.А. Телегин2
1 Южно-Уральский государственный университет, филиал в г. Миассе, г. Миасс, Россия,
2 ПО «АвтоРеал», г. Миасс, Россия
Рассмотрены российские торговые автоматы (ТА) продуктов питания. Предложены схемы построения роботизированных технических комплексов для автоматической продажи товаров и принципы их действия. Обоснован выбор манипуляторов, осуществляющих доставку оплаченного товара со склада в зону выдачи покупателю. Приведены примеры X3D-моделей складов и полок, на которых размещается товар. Разработана SVG-модель ручной и автоматической анимации программных движений манипулятора в процессах доставки товара от склада к покупателю. Предложен алгоритм автоматической генерации программных последовательностей для электроприводов с системой команд, задающих абсолютные и относительные положения валов электродвигателей, максимальные и маршевые скорости, а также ускорения разгона и торможения. Приведены примеры сгенерированных программных последовательностей для линейных приводов фирмы FAULHABER. Предложены схемы компоновки приводов манипулятора, при которых его уравнения динамики являются линейными с постоянными коэффициентами, то есть позволяют элементарно решать задачи оптимального управления манипулятором в смысле быстродействия. Описана трехуровневая система управления ТА, в которой на нижнем уровне используются контроллеры или драйверы электроприводов, средний уровень реализован на платформе Arduino, на верхнем уровне используется планшетный персональный компьютер. Описаны возможные программно-аппаратные средства общения ТА с покупателем, учета продаж и остатков товара на складе, приема платежей от покупателей и взаимодействия ТА с информационными системами его владельца. Рассмотрены варианты интеграции Arduino с мобильными приложениями и информационными системами на платформе 1Cv8. Приведен и описан код SVG-моделей ТА, позволяющий размещать оборудование, подбирать геометрические размеры складов, полок, корзин, выбирать типы кинематических пар и длины звеньев манипуляторов, строить программные движения манипуляторов и решать другие задачи в процессе проектирования ТА.
Ключевые слова: торговый автомат, SVG-моделирование, CSS-анимация, электродвигатель, уравнения динамики, программная последовательность, FAULHABER, Arduino, мобильное приложение, мобильные платежи, HTTP-сервис, технология NFC, JSON, 1Gv8, планшетный ПК.
Введение
Главная цель автоматизации торговли - максимально упростить жизнь производителей и покупателей товаров и услуг. Для достижения этой цели используются, например, торговые автоматы (ТА), то есть автоматические устройства, которые могут продавать товар покупателям без продавца. Производитель товара, использующий ТА для продажи своей продукции, не тратит до половины стоимости своего товара на магазины и торговые сети. Он может ставить ТА в любом месте, например, в столовой предприятия, школы, вуза, оплачивая только аренду площади, которую занимает ТА. Для покупателя товар почти наполовину дешевле, и товар может оказаться в шаговой доступности, если ТА установлен, например, во дворах, в подъездах, на лестничных площадках. Представьте мысленно такой бизнес-процесс. Производители мучной и молочной продукции, детского питания, а также круп, яиц, овощей и т. д. объединились и купили или взяли в аренду несколько ТА и поставили их во дворах. Жители (пенсионеры, кормящие мамы, малоимущие и т. д.) из своих личных кабинетов выбрали (на экранах мониторов) и оплатили (через соответствующие Web-сервисы) товар, а также указали дату и время его выемки из зоны выдачи ТА. Трудно представить, как еще можно упростить жизнь покупателя товаров.
Первые ТА появились в XIX веке в США. Производители ТА распространяли их по всему миру. Сегодня, например, в нашей стране на один ТА приходится около 2 тысяч человек. Для сравне-
ния - в Японии это число не превышает 20 человек. То есть мы в сто раз отстаем в автоматизации торговли от развитых стран. Многие эксперты считают, что ТА заменят традиционную систему продаж, а на рынке останутся интернет-магазины и ТА (https:/companion.online/biznes-termini/vending/).
Известны различные типы ТА - от специализированных ТА до магазинов- автоматов, где можно купить любой вид продукции. В Японии и Китае существуют полноценные магазины самообслуживания, где установлено множество ТА. Там через ТА покупают в том числе и продукты питания.
В зависимости от продаваемого товара ТА относится к тому или иному типу. Самый популярный и востребованный тип - это ТА по продаже продуктов питания, например, консервированной еды, шоколада, конфет, соков, свежеприготовленных бутербродов и др. ТА могут подогревать продукты питания в микроволновой печи, приготовить обед и упаковать его и т. д.
ТА занимает мало места. Затраты на его содержание и обслуживание минимальны. Стоимость самого ТА зависит от вида товара, объема склада и надежности оборудования. Приведем информацию из каталога российских ТА пищевых продуктов, где после названия продаваемого товара в скобках приведена марка ТА и его цена в рублях: ТА по продаже попкорна (ВЕНДМАШ, 139 000); семечек (ВЕНДМАШ, 169 000); выпечки (Балтийская Вендинговая Группа, 196 000); сладкой ваты (Стиль-АВС, 290 000); растительного масла в розлив (ЧЗВА, 370 000) и т. д.
Под маркой VendShop известны ТА по продаже спортивного питания, суши и роллов, фруктов и овощей. Каждый из этих трех ТА стоит 174 237 рублей. 249 900 рублей стоит ТА по продаже разогретой пищи. Под маркой VendShop известны ТА по продаже кормов для животных, а также комбинированный ТА для продажи цветов, сувениров и кондитерских изделий. Универсальный ТА SM PERFORMANCE ELEMENT - это новый в России вид оборудования для автоматизированной торговли с выдачей товара из ячейки. SM COMBO - универсальная комбинированная модель ТА для продажи любых штучных товаров, в том числе крупногабаритных.
Под маркой «Блиндозер» ТА торгует едой. Это уникальный проект российских инженеров и первый в мире ТА, выпекающий блины в присутствии покупателя. SM FROST - первый ТА для продажи замороженной продукции с открытой витриной. Возможность видеть продукцию на витрине через стекло ТА повышает доверие потребителей к торговой точке. Известен интерактивный, полностью автономный роботизированный киоск по продаже мороженого (Alfa Robotics, 1 550 000).
В известных нам ТА не используется робототехника, и в схемах их построения отсутствуют склады для размещения товара, который автоматически доставляется покупателю после его выбора на экране монитора и оплаты. В этой статье мы решаем задачи построения ТА с использованием средств робототехники, т. е. выбора состава и схем размещения оборудования, обоснования кинематических схем манипуляторов, обеспечивающих доставку покупателю оплаченного товара, разработки системы управления ТА. Полученные результаты можно использовать при проектировании ТА. Для цифрового моделирования ТА эффективно использовать предложенные здесь SVG-коды, так как зоной обслуживания манипулятора ТА является вертикальный прямоугольник и использовать для его моделирования 3D-графику нет смысла.
1. Схемы построения ТА
Рассмотрим ТА, в которых товар расфасован и упакован, например, в сетках, майках, корзинах или хранится в банках (металлических, стеклянных, пластиковых, бумажных). Мы предлагаем схемы возможных компоновок ТА, представленные на рис. 1-3. ТА собирается (монтируется) на месте установки из блока клиента (1), блока манипуляционной системы (МС) (2), а также из одного (3) или четного количества блоков склада (4), (5), (6) (рис. 2, 3). Количество складов зависит от места установки ТА, от объема и номенклатуры товара. Блок клиента имеет экран монитора (7), на котором выбирается и оплачивается товар, и окно (8) выдачи товара. В интеллектуальных версиях ТА блок клиента может иметь техническое и программное обеспечение (ПО) для речевого выбора товара. На цветном экране можно осуществлять рекламу товара.
Из рис. 1-3 видно, что можно различать шесть типов ТА: ТА с одним правым складом, ТА с одним левым складом, ТА с двусторонним складом, ТА с несколькими правыми складами, ТА с
несколькими левыми складами, ТА с несколькими двухсторонними складами. Если ТА устанавливают в помещениях, например, в квартире, арендованной под магазин-автомат, то блоком клиента можно считать площадь квартиры, свободную от размещенных в ней складов и блоков МС.
4 2 3
N 1 X 8 1 7
Рис. 1. Схема ТА с правосторонним складом
Рис. 2. Схема ТА с двусторонним складом
Рис. 3. Схема ТА с двумя двусторонними складами
Для большинства ТА необходима только розетка. ТА устанавливается в свободном месте, подключается к электросети и запускается. Возможны варианты электропитания ТА от аккумуляторных батарей. В этом случае курьер не только загружает ТА продукцией, но и меняет аккумуляторы. Частота обслуживания ТА зависит от объема склада и надежности автоматики, которая постоянно повышается.
2. Конструкции склада и полок для размещения товара
Склад предназначен для хранения товара и состоит из этажей. На каждом этаже расположены полки для размещения товара. Конструкция полок на одном этаже однотипна. Возможны следующие конструкции полок: наклонная полка для товара, скатывающегося или скользящего под действием силы тяжести в блок МС; горизонтальная полка для товара в сцепленных друг с другом корзинах, которые скользят или катятся (на 3 колесах) под действием силы, прикладываемой к первой корзине; конвеерная полка без ячеек или с ячейками. X3D-модели самой простой полки показаны на рис. 4. По ней товар скользит в блок МС, попадая в корзину, подвешенную на конце МС. Скользить могут, например, продукты в стеклянных банках. Скатываются, например, консервы в металлических круглых банках, пиво в алюминиевых банках, напитки в круглых бутылках.
а) б)
Рис. 4. Х3й-модель полки с двумя (а) и восемью (б) банками
На этаже несколько полок, длина которых равна длине склада. Ширина полки и межэтажные расстояния зависят от размеров упаковки товара. Масса каждого товара с его упаковкой известна. Поэтому общая масса ТА, полностью загруженная товаром, всегда известна, и она не должна
превышать определенной максимальной величины, например, 500 килограммов на квадратный метр, если ТА устанавливается в существующем помещении. Длина, высота и ширина параллелепипеда, охватывающего всю конструкцию склада или его составных частей, должна позволять каркасу склада или его частей проходить в стандартные дверные проемы на случай монтажа ТА в существующем здании.
Для скользящего или скатывающегося товара достаточно иметь один наклон плоского основания этажа к горизонту. Траектория перемещения товара должна состоять из одного прямолинейного участка. Наличие круглых выпуклостей у основания стеклянной банки для ее скользящего варианта перемещения является положительным фактором, так как контакт банки с основанием полки является точечным. Для скатывающихся банок отрицательным фактором является линейный контакт банок друг с другом боковыми поверхностями, особенно на участках бумажных наклеек. Поэтому желательно иметь лощеные наклейки.
Рис. 5. Х3й-модель конструкции склада Рис. 6. Х3й-модель склада с двумя полками
Склад можно спроектировать типовым и модульным с целью хранения товара различных форм, габаритов и массы. В возможных конструкциях склада необходимо минимизировать сборочные операции. Это упростит роботизацию производства таких складов. В качестве примера на рис. 5 показана X3D-модель конструкции склада в виде короба из алюминиевых труб прямоугольного сечения. На рис. 6 показан фрагмент X3D-модели склада с двумя полками.
3. Конструкции МС
Перед проектированием МС в первую очередь необходимо определиться с весом самого тяжелого товара и с геометрическими размерами самого большого товара на складе ТА. Это необходимо для определения грузоподъемности МС и геометрии корзины, в которую попадает товар из полки и затем переносится в зону выдачи покупателю.
Вертикальную плоскость, разделяющую блок МС и склад ТА, будем называть рабочей плоскостью МС. Зоной обслуживания МС является прямоугольник в рабочей плоскости, ширина и высота которого равна ширине и высоте склада. В этой зоне расположены выходы полок.
Основная функция МС - перемещать товар из склада в зону выдачи покупателю. Из кинематического анализа следует, что для манипулирования в рабочей плоскости необходимо и достаточно иметь МС с двумя управляемыми степенями подвижности, т. е. необходим управляемый двухзвен-ник. На конце второго звена достаточно подвесить на пассивном шарнире корзину, в которую попадает товар с конца полки. Если центр масс корзины вместе с товаром находится ниже оси шарнира, то под действием силы тяжести корзина с товаром примет горизонтальное положение.
В зависимости от типа ТА возможны кинематические схемы (КС) МС с декартовой, полярной и ангулярной системами координат (СК). МС с КС на рис. 7 работает в ангулярной СК. Такие МС можно использовать для обслуживания одностороннего или двухстороннего склада. В случае одностороннего склада центр вращательной кинематической пары, связывающей звенья (2) и (3), рекомендуется размещать в геометрическом центре зоны обслуживания МС. При этом длины звеньев МС будут минимальными и, как следствие, уменьшатся нагрузки на приводы МС. Для уменьшения статических нагрузок на электродвигатели (ЭД) рекомендуется размещать эле-
менты привода в уравновешивающей части звена. Например, в конструкции на рис. 7 блок (7) двух ЭД расположен в уравновешивающей части звена (3). На валу ЭД привода звена (3) установлена шестеренка (8), находящаяся в зубчатом зацеплении с колесом (10), жестко связанным со стойкой (2). При вращении ротора ЭД шестеренка (8) катится вокруг колеса (10), увлекая за собой звено (3). Звено (4) статически уравновешено за счет расположения двух корзин (5) и (6) на его концах. Это позволяет сократить время манипулирования товара, а также доставлять покупателю сразу два товара. ЭД звена (4) расположен в блоке (7). На его валу установлен шкив (9), передающий вращательный момент силы через трос (12) на шкив (11), жестко связанный с звеном (4). Длина стойки (2) равна половине высоты склада.
Рис. 7. Кинематическая схема МС с ангулярной СК
Для обслуживания нескольких односторонних и многосторонних складов первая кинематическая пара должна быть поступательной с горизонтальной осью вдоль складов. Она обеспечивает перемещение МС между складами. Для этого, например, вдоль горизонтальной направляющей достаточно разметить зубчатую рейку, а на каретке установить ЭД, на валу которого закрепить зубчатую шестеренку, образующую с рейкой зубчатое зацепление. Для увеличения количества складов достаточно продлить рейку для доступа к очередному складу, удаленному от зоны выдачи товара.
МС можно использовать для перемещения товара в зону предпродажной подготовки, например, открытия крышки и разогрева еды.
4. Моделирование ТА
Самым сложным в моделировании ТА является определение движений звеньев МС в процессах приема товара и его доставки покупателю. Известны десятки программных систем (ПС) моделирования МС. ПС МА^АВ используют для моделирования МС в научных исследованиях [1-3] и в учебном процессе [4, 5]. Продолжается поиск эффективного использования классических формализмов вывода и записи уравнений динамики МС, минимизирующих время моделирования [6]. Для симуляции МС привлекают системы аналитических вычислений [7, 8], указывая
при этом, что сложной проблемой остается алгебраическое и тригонометрическое упрощение сгенерированных уравнений динамики [9]. Выполняется сравнительный анализ характеристик и производительности симуляторов МС [10, 11]. Особое место занимают SD-технологии, используемые в симуляторах [12-14]. Следует заметить, что в описанных ТА МС работают в вертикальной плоскости, т. е. вместо SD-графики достаточно использовать 2D-графику для их моделирования.
Для моделирования ТА разработано Web-приложение, представленное в листинге 1. Открыв файл с этим кодом в одном из браузеров, пользователь увидит SVG-модель ТА, приведенную на рис. 8а, в положении приема товара из левой нижней или средней полки склада. МС работает в декартовой СК и имеет две корзины (верхнюю и нижнюю). Это позволяет в два раза уменьшить высоту подъема второго звена МС. Три нижних ряда склада обслуживаются нижней корзиной. Средний ряд и три верхних ряда обслуживаются верхней корзиной. В коде размечена ручная и автоматическая CSS-анимация. Для перемещения первого звена вдоль горизонтальной оси необходимо кликать левой кнопкой мыши по полке в зоне выдачи товара покупателю. Для перемещения второго звена вдоль вертикальной оси необходимо кликать левой кнопкой мыши по складу. Запуск CSS-анимации осуществляется кликом по любому элементу модели МС. Листинг 1. Web-приложение для моделирования МС.
<?xml version="1.0" encoding="windows-1251"?> <svg width="350mm" height="165mm" viewBox="0 0 9500 7000" xmlns:lk="http://www.w3.org/1999/xlink" xmlns-"http://www.w3.org/2000/svg" > <defs>
<style type="text/css"> line { stroke: rgb(0,0,0); stroke-width: 6} rect { stroke: rgb(0,0,0); stroke-width: 5 } <! -- Разметка автоматической анимации движений МС --> @keyframes ход_1 { from {transform: translate(245px);} to {transform: translate(8500px);} } #МС00.анимация #тело_1 { animation: ход_1 10s ease-in-out; } @keyframes ход_2 { from {transform: translate(0, -350px);} to {transform: translate(0, -3112px);} } #МС00.анимация #тело_2 { animation: ход_2 10s ease-in-out; } </style>
<g id="земля"> ^й^заземление 40*4</title> <desc>показывает жесткую связь с землей</desc> <line x1="-20mm" x2="20mm"/> <line x2="-4mm" y2="4mm"/> <line x1="-4mm" x2="-8mm" y2="4mm"/> <line x1="-8mm" x2="-12mm" y2="4mm"/> <line x1="-12mm" x2="-16mm" y2="4mm"/> <line x1="-16mm" x2="-20mm" y2="4mm"/>
<line x1="4mm" y2="4mm"/> <line x1="8mm" x2="4mm" y2="4mm"/> <line x1="12mm" x2="8mm" y2="4mm"/> <line x1="16mm" x2="12mm" y2="4mm"/> <line x1="20mm" x2="16mm" y2="4mm"/> <line x1="-20mm" x2="-24mm" y2="4mm"/> </g> <g id ="каретка"> <title>каретка 40*20 (faulhaber)</title> <desc>подвижная часть nKn</desc>
<rect x="-20mm" y="-10mm" width="40mm" height="20mm" fill="white"/> <line x1="-20mm" y1="-10mm" x2="20mm" y2="10mm"/> <line x1="-20mm" y1="10mm" x2="20mm" y2="-10mm"/> </g> <pattern id="выходыПолок" width="240mm" height="240mm"
patternUnits="userSpaceOnUse"> <rect width="240mm" height="240mm" stroke-width="10" fill="white"/> </pattern>
</defs> <!--_Разметка неподвижных частей ТА_ -->
<!-- Прямоугольное сечение ТА по границе склада и блока МС --> <rect width="2535mm" height="1850mm" fill="white"/> <!-- Прямоугольник выхода полок -- >
<rect width="2160mm" height="1680mm" transform="translate(370)"
£!11="иг1(#выходыПолок)" onclick="q2(evt, -40, 'тело_2')"/> <!-- Зона выдачи выбранного и оплаченного товара --> <rect x="2280mm" y="960mm" width="240mm" height="40mm" onclick="q1(evt, 40, 'тело_1')"/>
<!-- _____________ Разметка структуры МС _________________ -- >
<g id="MC00" transform="translate( 15, 6712)">
<rect y="-20mm" width="2313mm" height="40mm" fill="red"/>
<use lk:href="#земля" transform="scale(3) rotate(90)"/>
<use lk:href="#земля" y="770mm" transform="scale(3) rotate(-90)"/>
<g id="тело_1" transform="translate(245)" q="245">
<rect x="-20mm" y="-900mm" width="40mm" height="900mm" fill="red"/> <use lk:href="#каретка" transform="scale(3)"/> <g id="тело_2" transform="translate(0,-350)" q="-350"> <use lk:href="#каретка" transform="scale(3) rotate(90)"/> <polygon fill="blue" points="120,30 1000,30 1000,-30 170,-30
170,-2700 1000,-2700 1000,-2750 120,-2750"/>
</g> </g> </g>
<!-- _______Разметка ручной анимации движений МС _____ -- >
<script type="text/ecmascript"><! [CDATA[ function q1(evt, q, qn) {
var X = evt.target.ownerDocument.getElementByld(qn); qa = parseFloat(X.getAttribute('q')); qb = qa + q; X.setAttribute('q', qb);
X.setAttribute('transform', "translate("+qb+")"); } function q2(evt, q, qn) {
var X = evt.target.ownerDocument.getElementByld(qn); qa = parseFloat(X.getAttribute('q')); qb = qa + q; X.setAttribute('q', qb);
X.setAttribute('transform',"translate(0,"+qb+")");} var Анимация = document.getElementById('MC00'); Анимация.addEventListener('click',
function() { this.classList.toggle('анимация'); }); ]]> </script>
</svg>
а) б)
Рис. 8. Начальное (а) и конечное (б) положения МС в процессе перемещения товара из левого нижнего выхода склада в зону выдачи
В приведенном коде размечена CSS-анимация программного движения (ПД) МС из положения приема товара (из левой нижней полки в нижнюю корзину МС) в зону выдачи товара (см. рис. 8).
Подробное описание SVG-моделирования МС и ручной анимации можно найти в статьях [15, 16]. По запросу «SVG CSS анимация» в рунете можно найти много полезной информации по разметке CSS-анимации.
Для вычисления допустимых ускорений разгона и торможения звеньев МС, а также значений их максимальных и маршевых скоростей необходимы уравнения динамики МС. Для их автоматического выписывания можно использовать Maxima-код, опубликованный в статье [17]. Этот код автоматически выписывает формулы вычисления динамических реакций в кинематических парах. Они необходимы, например, для вычисления допустимых осевых и радиальных нагрузок на подшипниковые опоры ЭД.
ТА выдвигают к МС требования высокого быстродействия. В этой связи следует заметить, что в рассмотренных МС при статическом уравновешивании вращающихся звеньев их уравнения динамики становятся линейными с постоянными коэффициентами [18], что позволяет элементарно решать задачи оптимального управления МС в смысле быстродействия.
5. Синтез управляющих программ
Автоматическая генерация программных последовательностей (ПП) для управления электроприводами фирмы FAULHABER или для управления ЭД с использованием функций библиотеки AccelStepper для Arduino осуществляется на основе ПД, построенных в процессе SVG-моделирования движений МС. Для реализации ПД приводами FAULHABER используются команды относительного (LR) или абсолютного (LA) перемещения, максимальной (SP) и маршевой (V) скорости движения, а также команды задания ускорений разгона (AC) и торможения (DEC). Перед перечисленными командами ставится номер привода (в нашем случае 1 или 2), и после команды записывается числовое значение соответствующего параметра. Аналогично в библиотеке AccelStepper для Arduino функции moveTo(), move() задают абсолютное и относительное положение вала ЭД, функции setSpeed(), setMaxSpeed() устанавливают маршевую и максимальную скорость (шаг/с), а функция setAcceleration() устанавливает ускорение разгона и торможения (шаг/с2).
Для автоматической генерации ПП в соответствии с приведенной системой команд в ПС SYSTEL в качестве входной информации используется таблица ПД. На ее основе XSLT-код генерирует ПП. Для вычисления перемещений берутся значения из столбцов с координатами положений тел МС. При этом для приводов FAULHABER осуществляется согласование размерностей параметров ПД и параметров команд управления. Например, учитывается, что в одном полном обороте 3000 инкрементов, т. е. в одном радиане 477 инкрементов. Тогда величина перемещения, посылаемая приводу командой LR, вычисляется по формуле
LR = 477q,
где q - угол поворота, рад.
Скорость вычисляется по формуле
V = q / T / 0,1048,
где T - время движения, с.
Для синтеза ПД МС с замкнутыми ветвями необходимы дополнительные вычисления. В качестве примера рассмотрим МС, имеющую четыре подвижных тела, два линейных привода FAULHABER и одну замкнутую ветвь. КС этой МС и ее фотография представлены на рис. 9. Если к точке Р подвесить корзину, то эту МС можно использовать в ТА аптечной продукции. Здесь первое и третье тела движутся поступательно вдоль параллельных вертикальных направляющих под действием движущих сил линейных приводов. Второе и четвертое тела вращаются вокруг горизонтальных осей. Базой второго тела является первое тело. Базой четвертого - третье. Концы второго и четвертого тел соединены шарниром.
а) б)
Рис. 9. Кинематическая схема (а) и фотография МС с одним циклом (б)
Движения звеньев МС не должны нарушать шарнирную связь второго и четвертого тел. Эта связь описывается двумя уравнениями. Поэтому из четырех величин q1, q2, q3, q4 только две независимые. В качестве независимых рекомендуется выбрать параметры, через которые проще выразить декартовы координаты точки подвеса корзины. В нашем случае декартовы координаты xp, yp точки P просто выражаются через q1, q2. Поэтому выберем в качестве независимых q1 и q2. Тогда
xp = L cos q2, yp = q1 + L sin q2. Выразим q3, q4 через q1, q2. Очевидно, что
xp = h + L cos q4, yp = q3 + L sin q4. Следовательно,
L cos q2 = h + L cos q4, L sin q2 + q1 = L sin q4 + q3. Из первого уравнения выразим q4 через q2. Получим
q4 = arccos[(L cosq2 -h) / L] = arccos(cosq2 - h / L). Из второго уравнения получим q3 = q1 + L sin q2 - L sin q4.
Если, например, корзина должна двигаться со скоростью V вдоль горизонтальной прямой, расположенной на высоте d = 0.2 от начала СК, то yp = 0.2, xp = Vt, т. е.
L cos q2 = Vt, q1 + L sin q2 = 0.2, q2 = arccos(Vt / L), q1 = 0.2 - L sin q2. Формулы вычисления q1(t), q2(t) необходимо запрограммировать и вычисленные значения записать в таблицу ПД. По этой таблице создается анимация МС и генерируется IIII для ее реализации. Для рассматриваемого движения корзины получаются следующие значения первых пяти строк таблицы ПД:
Т = (0, 0.25, 0.5, 0.75, 1);
qi = (0.0, 0.0, 0.002, 0.004, 0.006);
q2 = (90, 86.417, 82.819, 79.193, 75.523);
q3 = (0.059, 0.048, 0.038, 0.029, 0.022);
q4 = (135.211, 130.333, 125.784, 121.483, 117.372).
Фрагменты сгенерированной анимации приведены на рис. 10. В листинге 2 приведена сгенерированная ПП для линейных приводов фирмы FAULHABER.
Рис. 10. Фрагменты анимации движения точки Р вдоль горизонтальной прямой
Листинг 2. IIII управления линейными приводами МС на рис. 9.
11а 12500 m
21а 18500 wait(250)
m 11a 13250
wait (250) 21a 15250
11а 12750 1sp 8
21а 17250 2sp 36
1sp 0 m
2sp 44 wait(250)
m 11a 13750
wait(250) 21a 14500
11a 13000 1sp 8
21a 16125 2sp 28
1sp 8 m
2sp 40 wait(250)
6. Система управления ТА
Система управления ТА может иметь три уровня - нижний, средний и верхний. На нижнем уровне осуществляется управление приводами с использованием соответствующих контроллеров или драйверов, а также сгенерированных IIII. ПО верхнего уровня реализует бизнес-логику процесса обслуживания клиента. ПО на экране монитора предлагает клиенту для выбора товар, который есть на полках. Выбрав товар, клиент должен оплатить его. По факту перевода денежной суммы со счета покупателя на счет продавца ПО запускает процесс доставки оплаченного товара со склада ТА в зону выдачи. В случае технического сбоя доставки товара в зону выдачи сумма денег возвращается на счет покупателя, и ТА закрывается на техническое обслуживание. ПО связывается с технической службой, которая устраняет проблему. На среднем уровне можно использовать платформу Arduino для связи между нижним и верхним уровнями управления, диагностики работы оборудования и решения других задач.
Остановимся подробнее на возможных способах реализации верхнего уровня управления, на котором решаются следующие задачи: организация взаимодействия ТА с покупателем, учет продаж и остатков товара на складе, прием платежей от покупателей, обмен данными с информационной системой владельца ТА. Реализовать эти задачи можно по-разному. От выбранного варианта зависит себестоимость ТА, его текущие возможности и потенциал дальнейшего развития. Можно решить перечисленные задачи, используя только средства Arduino. Но возможности микроконтроллеров Arduino ограничены для реализации интерфейса с покупателем. Программирование GUI низкоуровневое, мало библиотек, нет framework. На плате Arduino нельзя развернуть СУБД и нет средств для работы с базами данных (БД). В качестве альтернативы можно использовать SD-карты и писать данные о продажах, поступлении, об остатках товаров в CSV-файлы. Но возможности по программированию учета товаров ограничены, программирование низкоуровневое, трудоемкое, скорость работы алгоритмов низкая.
Включение в состав ТА планшетного персонального компьютера (ППК) и решение его средствами поставленных задач дает больше возможностей и перспектив дальнейшего развитие ТА. ППК
имеет более серьезные, чем плата Arduino, вычислительные возможности. На ППК можно реализовать мобильное приложение (МП) на платформе 1Cv8 с современным, декларативным и командным GUI, с полноценной объектно-ориентированной БД. В платформе есть средства для реализации HTTP и WEB-сервисов, средства для интеграции с Arduino, платежным терминалом и платежными системами. Стоимость лицензии платформы 1Cv8 на один ППК невысока (1600 руб.).
Для взаимодействия ТА с учетными программами владельца ТА можно на стороне МП реализовать HTTP-сервисы. Они менее ресурсоемки и трудоемки в реализации, чем WEB-сервисы. Данные, сериализованные в формат JSON, в разы меньше чем в формате XML.
На стороне учетной программы 1С:Бухгалтерия владельца ТА можно реализовать модуль для внешней обработки, который будет обращаться к HTTP-сервису по каналам интернет, загружать данные из ТА в объекты БД 1Cv8, выводить данные на экран или принтер. В первую очередь необходима внешняя обработка для заполнения документа «Отчет о розничных продажах» продажами за один день. Внешняя обработка будет формировать для МП HTTP-запросы GET и получать ответы в виде строк формата JSON с информацией о совершенных продажах. В МП можно реализовать оправку SMS и email-сообщений для рассылки отчетов и различных оповещений.
Для интеграции МП на платформе 1Cv8 с платами Arduino можно использовать возможности USB-портов или Bluetooth. Но лучше использовать средства протокола HTTP и технологии Ethernet. Для реализации HTTP-сервиса на плате Arduino можно использовать ethernet shield (плата расширения для работы в локальной сети). В листинге 3 приведен программный код, демонстрирующий реализацию HTTP-сервиса на стороне Arduino, который ждет управляющей команды от 1Cv8 после оплаты товара.
Листинг 3. Реализация HTTP-сервиса на стороне Arduino.
#include "etherShield.h" // подключаем библиотеки #include "ETHER_28J60.h"
static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x25}; // MAC-адрес static uint8_t ip[4] = {192, 168, 1, 17}; // IP-адрес
static uint16_t port = 80; // порт, на котором Arduino ожидает наше подключение ETHER_28J60 ethernet; // создаем объект WEB-сервера void setup() { thernet.setup(mac, ip, port); // инициализируем наш WEB-сервер // код инициализации ПП
}
void loop() { char*params; // переменная для хранения полученного запроса if (params = ethernet.serviceRequest()) // если что-то пришло, то считываем
// и выполняем код { if(params[0] == '1'){ // Если пришла команда 1, то выполняем // 1 -й программный код управления оборудованием
ethernet.print("1"); // формируем ответ "1" }
eise if(params[0] == '2') { // иначе, если пришла команда 2, то выполняем // 2-й программный код управления оборудованием
ethernet.print("2"); // отправляем ответ "2" (и так далее) }
else{ // Если пришло что то другое, то формируем ответ "0"
ethernet.print("0"); }
ethernet.respond(); // отправляем ответ клиенту HTTP-сервиса } }
В листинге 4 приведен программный код на встроенном языке платформы 1Cv8, демонстрирующий способ передачи управляющих команд и чтения данных из Arduino, используя средства протокола HTTP. Команда для Arduino и возвращаемое значение в 1Cv8 представляет собой произвольную строку, структура которой определяется разработчиком. Для передачи команды в Arduino формируется HTTP-запрос GET. Он возвращает ответ Arduino в виде строки.
Листинг 4. Передача управляющих команд в Arduino и получение результата выполнения на стороне платформы 1Cv8.
IP = "192.168.1.17:80"; // Наш IP адрес и порт
Команда = "1" // команда 1 - выключить, 2 - включить
// Команда = "... текст команды ..."
Соединение = Новый НТТРСоединение(1Р,,,,,3); // цифра 3 - таймаут
Заголовки = Новый Соответствие();
Заголовки.Вставитъ("СоШеШ-Туре", "application/x-www-form-urlencoded; charset=Windows-1251");
Запрос = Новый НТТРЗапрос("/" + Команда, Заголовки);
ОтветСервера = Соединение.Получитъ(Запрос); // ответ от Arduino
Ответ = ОтветСервера.ПолучитъТелоКакСтроку(); // переводим ответ
// в строку
Для организации приема платежей от покупателей можно использовать ППК с NFC-чипом или использовать POS-терминал. Технология NFC - это техническое средство осуществления платежей. ППК с NFC-чипом может стать платежным терминалом для бесконтактных банковских карт (NFC-карты). На ППК можно установить клиента платежного сервиса Google Pay или Apple Pay.
Заключение
В статье изложен опыт авторов в решении задач, связанных с проектированием и созданием ТА на основе средств робототехники. Область практического использования изложенных в статье результатов гораздо шире заявленной темы. Она распространяется на роботизацию складского оборудования, а также на проектирование различных роботизированных технологических комплексов, где необходимо подбирать и расставлять оборудование, разрабатывать программные движения роботов, осуществлять реализацию этих движений электроприводами, связывать исполнительный, тактический и стратегический уровни управления. Мы здесь не рассматривали МС с механическими схватами, использование которых снимает все вопросы, связанные с захватом товара для его доставки в зону покупателя. Расширение номенклатуры, массы и габаритов товара всегда можно обеспечить за счет усложнения конструкции МС вплоть до использования двуруких мобильных автономных роботов, в том числе шагающих аппаратов, надежность которых постоянно растет, а стоимость снижается.
Литература
1. Modeling and simulation of a tracked mobile inspection robot in MATLAB and V-REP software / M. Ciszewski, L. Mitka, T. Buratowski, M. Giergiel // Journal of Automation, Mobile Robotics & Intelligent Systems. - 2017. - Vol. 11, no. 2. - P. 5-11. DOI: 10.14313/JAMRIS_2-2017/11
2. Gonzalez, R. A Matlab-based interactive simulator for mobile robotics / R. Gonzalez,
C. Mahulea, M. Kloetzer // 2015 IEEE International Conference on Automation Science and Engineering (CASE). - 2015. - P. 310-315. DOI: 10.1109/CoASE.2015.7294097
3. Azak, S. E. Performance evaluation of the grid-based FastSLAM in V-REP using MATLAB / S. Azak, E. Erdogan // 2018 14th International Conference on Advanced Trends in Radioelecrtronics, Telecommunications and Computer Engineering (TCSET). - 2018. - P. 276-281. DOI: 10.1109/TCSET.2018.8336202
4. Integration Of Robotics Simulation Programs Into Educational Process In Kuban State University /1. Ryadchikov, S. Sechenev, A. Svidlov et al. // The European Proceedings of Social & Behavioural Sciences. - 2017. - P. 304-309. DOI: 10.15405/epsbs.2017.12.31
5. Casini, M. MARS: An Educational Environment for Multiagent Robot Simulations / M. Casini, A. Garulli //Modelling and Simulation in Engineering. - 2016. - P. 1-13. DOI: 10.1155/2016/5914706
6. Pennestri, E. Coordinate reduction strategies in multibody dynamics: a review / E. Pennestri, P.P. Valentini. - University of Rome Tor Vergata, Roma, 2007. - 17p.
7. Gurel, C.S. Modeling and Robot Simulation of a 5-DOF Robot Manipulator in MapleSim and SimMechanics Environments / C.S. Gurel. - University of Maryland, 2018. - 18p.
8. Docquier, N. ROBOTRAN: A powerful symbolic gnerator of multibody models / N. Docquier,
A. Poncelet, P. Fisette //Mechanical Sciences. - 2013. - P. 199-219. DOI: 10.5194/ms-4-199-2013
9. Verlinden, O. Symbolic generation of the kinematics of multibody systems in EasyDyn: From MuPAD to Xcas/Giac / O. Verlinden, L. Ben Fekih, G. Kouroussis // Theoretical and Applied Mechanics Letters. - 2013. - No. 3. DOI: 10.1063/2.13013012
10. Feature and Performance Comparison of the V-REP, Gazebo and ARGoS Robot Simulators / L. Pitonakova, M. Giuliani, A. Pipe, A. Winfield // Proceedings of the 19th Towards Autonomous Robotic Systems Conference (TAROS 2018). - 2018. DOI: 10.1007/978-3-319-96728-8 30
11. Development of a Khepera IV Library for the V-REP Simulator / E. Peralta, E. Fabregas, G. Farias et al. // IFAC-PapersOnLine - 11th IFAC Symposium on Advances in Control Education. -2016. - P. 81-86. DOI: 10.1016/j.ifacol.2016.07.157
12. On 3D simulators for multi-robot systems in ROS: MORSE or Gazebo? / F.M. Noori, D. Portugal, R. Rocha, M. Couceiro //2017 IEEE International Symposium on Safety, Security and Rescue Robotics (SSRR). - 2017. - P. 19-24. DOI: 10.1109/SSRR.2017.8088134
13. Еременко, О.С. Анализ возможностей библиотеки X3DOM для отображения трехмерного контента в сети интернет / О.С. Еременко, Е.С. Чердынцев //XI Студенческая международная заочная научно-практическая конференция «Молодежный научный форум: технические и математические науки». - 2014. - № 4 (11). - С. 20-25.
14. Власенко, А.Н. Использование WebGL в образовательном процессе при подготовке специалистов в области сварочного производства / А.Н. Власенко, В.В. Степанов // Дистанционное и виртуальное обучение. - 2016. - № 12. - С. 115-121.
15. SVG-разметка двухмерной графики: Опыт использования SVG в создании двухмерной графики / А.И. Телегин, Д.Н. Тимофеев, Д.И. Читалов, С.Г. Пудовкина. - Миасс: ЮУрГУ ЭТФ, 2015. - 73 с.
16. Телегин, В.А. Моделирование и анимация ходьбы плоских моделей шагающих аппаратов /
B.А. Телегин, М.И. Кайгородцев //Вестник ЮУрГУ. Серия «Машиностроение». - 2008. - Вып. 8, № 10. - С. 15-24.
17. Voinov, I.V. Maxima-code for derivation of dynamic reactions and generalized driving forces in the joints of robotic manipulators / I.V. Voinov, A.I. Telegin, D.I. Timofeev // International Conference on Industrial Engineering. - 2018.
18. Телегин, А.И. Динамическая развязка систем тел с замкнутыми ветвями / А.И. Телегин // Изв. РАН. Механика твердого тела. - 1999. - № 2. - C. 37-45.
Телегин Александр Иванович, д-р физ.-мат. наук, профессор, декан Электротехнического факультета, Южно-Уральский государственный университет, филиал в г. Миассе, г. Миасс; [email protected].
Тимофеев Дмитрий Николаевич, младший научный сотрудник кафедры автоматики, ЮжноУральский государственный университет, филиал в г. Миассе, г. Миасс; [email protected].
Пудовкина Светлана Геннадьевна, канд. техн. наук, доцент кафедры прикладной математики и ракетодинамики, Южно-Уральский государственный университет, филиал в г. Миассе, г. Миасс; [email protected].
Телегин Вадим Александрович, ведущий программист, ПО «АвтоРеал», [email protected].
Поступила в редакцию 26 августа 2019 г
DOI: 10.14529/ctcr190408
THE TRADE ROBOTIZATION
A.I. Telegin1, [email protected], D.N. Timofeev1, [email protected], S.G. Pudovkina1, [email protected], V.A. Telegin2, [email protected]
1 South Ural State University, Miass, Russian Federation,
2 AutoReal Ltd, Miass, Russian Federation
Russian food vending machines (VM) have been considered. Schemes of construction of robotic technical systems for automatic sale of goods and the principles of their operation have been proposed. The choice of manipulators delivering paid goods from the warehouse to the buyer has been justified. Examples of X3D-models of warehouses and shelves on which the goods are placed have been given. The SVG-model of manual and automatic animation of program movements of the manipulator in the process of delivery of goods from the warehouse to the buyer has been developed. An algorithm for automatic generation of program sequences for electric drives with a system of commands that specify the absolute and relative positions of the shafts of electric motors, maximum and ground speeds, as well as acceleration and deceleration has been proposed. The examples of generated program sequences for linear actuators the FAULHABER company have been given. The schemes of arrangement of manipulator drives, in which its dynamic equations are linear with constant coefficients. That schemes allow to solve elementary problems of optimal control of the manipulator in terms of performance. A three-level control system of VM has been described. The controllers or electric drive drivers in this system are used at the lower level, the middle level is implemented on the Arduino platform, and the tablet PC is used at the upper level. The possible software and hardware of communication between the VM and the buyer, accounting, sales and inventory in the warehouse, receiving payments are described.. The variants of Arduino integration with mobile applications and information systems on the 1cv8 platform have been considered. Lists and describes the SVG code in models of VM, allowing to place equipment, pick up the geometric dimensions of the warehouses, shelves, baskets, select the types of kinematic pairs and the lengths of manipulators links, build software the movements of manipulators and other tasks in the design of the VM.
Keywords: vending machine, SVG modeling, CSS animation, electric motor, dynamics equations, software sequence, FA ULHABER, Arduino, mobile application, mobile payments, HTTP service, NFC technology, JSON, 1Cv8, tablet PC.
References
1. Ciszewski M., Mitka L., Buratowski T., Giergiel M. Modeling and Simulation of a Tracked Mobile Inspection Robot in MATLAB and V-REP Software. Journal of Automation, Mobile Robotics & Intelligent Systems, 2017, vol. 11, no. 2, pp. 5-11. DOI: 10.14313/JAMRIS_2-2017/11
2. Gonzalez R., Mahulea C., Kloetzer M. A Matlab-Based Interactive Simulator for Mobile Robotics. 2015 IEEE International Conference on Automation Science and Engineering (CASE), 2015, pp. 310-315. DOI: 10.1109/CoASE.2015.7294097
3. Azak S., Erdogan E. Performance Evaluation of the Grid-Based FastSLAM in V-REP Using MATLAB. 2018 14th International Conference on Advanced Trends in Radioelecrtronics, Telecommunications and Computer Engineering (TCSET), 2018, pp. 276-281. DOI: 10.1109/TCSET.2018.8336202
4. Ryadchikov I., Sechenev S., Svidlov A., Sinitsa S., Volkodav P., Mamelin Y., Popko K., Nikulchev E. Integration of Robotics Simulation Programs Into Educational Process In Kuban State University. The European Proceedings of Social & Behavioural Sciences, 2017, pp. 304-309. DOI: 10.15405/epsbs.2017.12.31
5. Casini M., Garulli A. MARS: An Educational Environment for Multiagent Robot Simulations. Modelling and Simulation in Engineering, 2016, pp. 1-13. DOI: 10.1155/2016/5914706
6. Pennestri E., Valentini P.P. Coordinate Reduction Strategies in Multibody Dynamics: A Review. University of Rome Tor Vergata. Roma, 2007. 17 p.
7. Gurel C.S. Modeling and Robot Simulation of a 5-DOF Robot Manipulator in MapleSim and SimMechanics Environments. University of Maryland, 2018. 18 p.
8. Docquier N., Poncelet A., Fisette P. ROBOTRAN: A Powerful Symbolic Gnerator of Multibody Models. Mechanical Sciences, 2013, pp. 199-219. DOI: 10.5194/ms-4-199-2013
9. Verlinden O., Ben Fekih L., Kouroussis G. Symbolic Generation of the Kinematics of Multibody Systems in EasyDyn: From MuPAD to Xcas/Giac. Theoretical and Applied Mechanics Letters, 2013, no. 3. 6 p. DOI: 10.1063/2.13013012.
10. Pitonakova L., Giuliani M., Pipe A., Winfield A. Feature and Performance Comparison of the V-REP, Gazebo and ARGoS Robot Simulators. Proceedings of the 19th Towards Autonomous Robotic Systems Conference (TAROS 2018), 2018, pp. 357-368. DOI: 10.1007/978-3-319-96728-8_30
11. Peralta E., Fabregas E., Farias G., Vargas H., Dormido S. Development of a Khepera IV Library for the V-REP Simulator. IFAC-PapersOnLine - 11th IFAC Symposium on Advances in Control Education, 2016, pp. 81-86. DOI: 10.1016/j.ifacol.2016.07.157
12. Noori F.M., Portugal D., Rocha R., Couceiro M. On 3D Simulators for Multi-Robot Systems in ROS: MORSE or Gazebo. 2017 IEEE International Symposium on Safety, Security and Rescue Robotics (SSRR), 2017, pp. 19-24. DOI: 10.1109/SSRR.2017.8088134
13. Eremenko O.S., Cherdyntsev E.S. [Analysis of the Capabilities of the X3DOM Library for Displaying Three-Dimensional Content on the Internet]. XI Studencheskaya mezhdunarodnaya zaochnaya nauchno-prakticheskaya konferentsiya "Molodezhnyy nauchnyy forum: tekhnicheskie i matematicheskie nauki" [Student International Correspondence Scientific and Practical Conference "Youth Scientific Forum: Technical and Mathematical Sciences"], 2014, no. 4 (11), pp. 20-25. (in Russ.)
14. Vlasenko A.N. [The use of WebGL in the Educational Process in the Training of Specialists in the Field of Welding Production]. Distantsionnoe i virtual'noe obuchenie [Remote and Virtual Learning], 2016, no. 12, pp. 115-121. (in Russ.)
15. Telegin A.I., Timofeev D.N., Chitalov D.I., Pudovkina S.G. SVG-razmetka dvukhmernoy grafiki: Opyt ispol'zovaniya SVG v sozdanii dvukhmernoy grafiki [Two-Dimensional SVG Markup: Experience of Using SVG in Two-Dimensional Graphics]. Miass, SUSU, 2015. 73 p.
16. Telegin V.A., Kaigorodtzev M.I. [Modeling and Animation of Walking Flat Models of Walking Devices]. Bulletin of the South Ural State University. Ser. Mechanical Engineering, 2008, vol. 8, no. 10, pp. 15-24. (in Russ.)
17. Voinov I.V., Telegin A.I., Timofeev D.I. Maxima-Code for Derivation of Dynamic Reactions and Generalized Driving Forces in the Joints of Robotic Manipulators. International Conference on Industrial Engineering, 2018, pp. 265-269.
18. Telegin A.I. [Dynamic Decoupling of Closed-Body Systems]. Proceedings of the Russian Academy of Sciences. Solid Mechanics, 1999, no. 2, pp. 37-45.
Received 26 August 2019
ОБРАЗЕЦ ЦИТИРОВАНИЯ
FOR CITATION
Роботизация торговли / А.И. Телегин, Д.Н. Тимофеев, С.Г. Пудовкина, В.А. Телегин // Вестник ЮУрГУ. Серия «Компьютерные технологии, управление, радиоэлектроника». - 2019. - Т. 19, № 4. -
Telegin A.I., Timofeev D.N., Pudovkina S.G., Telegin V.A. The Trade Robotization. Bulletin of the South Ural State University. Ser. Computer Technologies, Automatic Control, Radio Electronics, 2019, vol. 19, no. 4, pp. 84-98. (in Russ.) DOI: 10.14529/ctcr190408
С. 84-98. DOI: 10.14529/ctcr190408