- PVSM.RU - https://www.pvsm.ru -

Добрый день, уважаемые читатели!
LabView – кросплатформенная графическая среда разработки фирмы National Instruments. LabView широко используется в системах сбора данных, а так же для управления техническими объектами и технологическими процессами.

Отличительной особенностью LabView является «заточенность» среды для разработки под «железо». Большое количество библиотек, разработанных для взаимодействия с оборудованием различных производителей, позволяет очень быстро и комфортно прототипировать решения различных задач, в том числе для управлениям роботами и системами машинного зрения. Помимо официального LabVIEW Robotics Module, предлагаемым National Instruments, и содержащим библиотеки для взаимодействия с различными робототехническими компонентами, энтузиасты сами разрабатывают большое количество библиотек и, что самое ценное, распространяют их бесплатно. На сегодняшний день можно увидеть большое количество решений в робототехнике с иcпользованием LabView – в нашей стране одним из самых ярких за последнее время — Автономный робот команды НАМТ на «Робокросс-2013» и «Eurathlon 2013».
Я являюсь выпускником МГТУ им. Н.Э.Баумана и увлекаюсь робототехникой, хотя основным направлением моей деятельности является промышленная автоматизация. Познакомившись с LabView несколько лет назад, я влюбился в эту среду, и с тех пор пытаюсь использовать ее везде, где только можно. В настоящее время, помимо использования LabView в различных проектах, я занимаюсь проведением факультативных занятий и лабораторных работ для студентов, связанных с применением LabView в системах сбора данных. С недавнего времени, благодаря нашему роботоцентру, мне удалось получать робототехнические наборы для использования их в различных научных целях. В связи с этим, я бы хотел опубликовать цикл работ, связанных с использованием LabView в робототехнике, причем основной упор будет делаться на реализации простейших примеров, для дальнейшего использования их при проведения лабораторных работ для студентов. Не так давно, мне предложили разобраться с робототехническим конструктором от корейской фирмы Robotis и разработать несколько простейших примеров на LabView для взаимодействия с этим конструктором. Особый интерес представляло то, что обмен данными необходимо было организовать через беспроводной интерфейс Zigbee. В качестве опытных образцов ко мне попали наборы OLLO BUG и Bioloid STEM.


Отличительной особенностью OLLO являются более «простые» комплектующие по сравнению с Bioloid. В частности, в состав набора OLLO входит контроллер CM-100, тогда как с набором Bioloid поставляется CM-530.


Для организации беспроводного интерфейса была использована связка из «родных» адаптеров, поставляемых Robotis:
1. ZIG-100/110A — подключается к контроллеру (тот, который с хвостом) и устанавливается на переходник (который выполнен в виде чипа).

2. ZIG2Serial — платка, по сути представляющая собой переходник с zigbee модуля на стандартный rs-232.

3. USB2Dynamixel — очень интересная и полезная вещь. Может работать в 3х режимах — TTL, RS485, RS232 — наш вариант. Мы используем данный адаптер как переходник с USB на RS232.

В результате получилась вот такая конструкция:

Дело осталось за малым — установить связь между двумя «половинками» ZIG-100/110A и перейти собственно к передвиганию квадратиков по экрану реализации примеров на LabView. Это делается с помощью «родной» программы — RoboPlus Manager и сам процесс очень подробно описано на сайте разработчика.
Для того, чтобы наши контроллеры понимали, что к ним подключен ZigBee модуль и вели обмен данными между ним и подключенной к ним периферией потребовалось написать для них соответствующую прошивку. Прошивка писалась с помощью родной RoboPlus Task. Процесс написания прошивки выглядит следующим образом:

Поскольку из RoboPlus Task невозможно вытащить код прошивки в приятном для глаза виде и компактной форме, то я не буду в дальнейшем выкладывать скрины прошивок. Тем более что сам процесс разработки довольно интуитивен и особых проблем не вызывает. Если кого-то заинтересуют сами прошивки — я добавлю их в формате .tsk.
Первоначально подразумевалось, что придется самому разрабатывать библиотеку для работы с ZIG2Serial, но покопавшись, на официальном сайте Robotis я обнаружил Zigbee SDK, который без проблем интегрировался в LabView через классический Import Shared Library (.dll). Данный процесс я провел на LV2010 и LV2012 — проблем при интеграции обнаружено не было. В результате у нас появилась еще одна палитра в User Libraries:

Для демонстрации возможностей LabView было принято решение в качестве обучающих примеров реализовать следующее:
1. Отправка управляющих команд на контроллер через Zigbee интерфейс.
2. Опрос массива инфракрасных сенсоров, подключенных к контроллеру.
3. Опрос инфракрасных сенсоров.
4. Взаимодействие с сервоприводами Dynamixel.
Итак, начнем по-порядку:
Под управляющими командами в данном примере я подразумеваю команды, которые контроллер воспринимает как команды, отправленные с пульта управления RC-100, но ничто не запрещает нам отправлять любые другие — просто в этом случае нам пришлось бы дополнительно модифицировать прошивку.

Принцип работы в данном случае следующий — подключается по com-порту к адаптеру, и передаем данные на контроллер. Контроллер их интерпретирует и отправляет соответствующие команды на сервоприводы робота.
В итоге, для данного примера блок-диаграмма выглядит следующим образом:

и лицевая панель:

К контроллеру CM-530 возможно подключение массива сенсоров IR SENSOR ARRAY.

В качестве примера мы будем опрашивать интересующий нас сенсор по требованию.
Принцип работы в данном случае следующий — подключается по com-порту к адаптеру, отправляем на контроллер номер интересующего нас сенсора — в ответ получаем с него значение.
В результате блок-диаграмма выглядит следующим образом:

и лицевая панель:

Помимо массива ик-сенсоров к контролерам можно подключить отдельные IR Sensor.

Реализация данного примера существенно не отличается от реализации предыдущего, поэтому я позволю себе не останавливаться на процессе разработки, просто покажу что в итоге получилось.
Блок-диаграмма выглядит следующим образом:

лицевая панель:

В состав набора Bioloid STEM входит 2 сервопривода Dynamixel AX-12A, причем с ними можно работать в 2х режимах — Joint и Wheel. В режиме Wheel сервопривод выступает в роли вращающегося мотора, основным показателем является скорость вращения. В режиме Joint сервопривод выполняет роль шарнира, основным показателем которого является отклонение на некоторую величину от своего начального положения. Режимы работы переключаются через RoboPlus Manager. Отличительной особенностью данного примера является непрерывный обмен с контроллером по Zigbee интерфейсу. Для этого в блок диаграмму были добавлены параллельно работающие циклы While Loop. После выбора режима работы (вращение приводов или контроль их отклонения) на контроллер непрерывно отправляются данные, представляющие собой целочисленные значения от 1 до 1023. Для режима Wheel эти данные являются значением скорости, а для режима Joint – величиной отклонения положения привода от нулевого.
Блок-диаграмма выглядит следующим образом:

лицевая панель:

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







Основным источником информации при разработке являлся www.robotis.com/ [1] — официальный сайт производителя.
Автор: Axelis
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/news/60207
Ссылки в тексте:
[1] www.robotis.com/: http://www.robotis.com/
[2] Источник: http://habrahabr.ru/post/223395/
Нажмите здесь для печати.