Скамко (Инструкция по эксплуатации программного обеспечения)

Посмотреть архив целиком

Инструкция по эксплуатации (ИЭ-1)

программного обеспечения


Блок управления манипулятора «Скамко-1»





Содержание

1. Описание программного обеспечения

1.1. Программа «Система управления робота Скамко-1» (ckamko.exe)

1.2 Система команд интерпретатора.

1.3 Команды движения

1.4 Модуль драйвера порта

1.5 Пульт ручного управления

2. Протокол обмена между ПК и блоком управления

3. Алгоритмы ПО приводного уровня.

3.1 Алгоритм основного цикла программы

3.2 Алгоритм обработки сервисных команд

3.3 Алгоритм управления работой привода

3.4 Алгоритм режима калибровки с помощью концевых датчиков

3.5 Алгоритм разгона/торможения привода

4. Инструкция по прошивке микроконтроллеров Atmega128 и Atmega8




1. Описание программного обеспечения


1.1. Программа «Система управления робота Скамко-1» (ckamko.exe)

Программа «Система управления робота Скамко-1» (файл ckamko.exe) представляет собой интерфейс верхнего уровня системы управления робота.

Она предназначена для организации взаимодействия СУ с пользователем и позволяет:

  • Обеспечивать связь между компьютером с операционной системой Windows XP и контроллером управления приводами и технологического оборудования.

  • обеспечивать связь с вышестоящим уровнем системы управления по сети

  • обеспечивать связь с системой технического зрения

  • осуществлять непрерывную диагностику приводов манипулятора

  • контролировать текущие координаты всех звеньев манипулятора и его схвата

  • обучать робот точкам

  • решать прямую и обратную кинематические задачи в целях управления роботом в позиционном и контурном режимах.


В ее состав вошли:

  1. Интерпретатор робото-ориентированного языка на основе Javascript

  2. Модуль драйвера COM-порта

  3. Пульт ручного управления

  4. Модуль для работы с файлами


Ядро программы представляет интерпретатор робото-ориентированного языка программирования. Разработанный мною язык программирования базируется на языке Javascript и поэтому подчиняется всем правилам, которые ему присущи. Мною был разработан набор из 17 макрокоманд, доступных пользователю. Синтаксис макрокоманд похож на синтаксис языка ARPS, что делает обучение пользователя, знакомого с ним, работе с языком программирования робота «Скамко-1» очень быстрым.

Скриптовые языки одним из которх является Javascript работают с системными функциями через COM автоматизацию (COM Automation), поэтому мною был создан COM сервер Control c одним интерфейсом, содержащим 17 методов (method) и несколько служебных свойств (property). Для того чтобы подключиться к серверу автоматизации Jasvasript использует функцию ActiveXObject(), передавая ей ProgID сервера. Для запуска файла *.js используется программа WinScript, входящая в состав операционной системы Widows XP. Это позволяет отслеживать завершение одноименного процесса операционной системы, а соответственно и выполнения скрипта. Запуск набранной пользователем программы осуществляется по схеме, упрощенно показанной на рисунке 1.

Рис 1


Файл functions.lst содержит описание макро-команд обращения к интерфейсным функциям сервера Control. Набор описаний может быть расширен при доработке языка программирования и расширения его системы команд. Структуру макро-описания рассмотрим на примере команды GO( ). Входным параметром является структура типа POINT, которая задается командой POINT (X, Y, Z, PHI), где X, Y, Z, PHI – это соответственно координаты и ориентация схвата в декартовой системе координат. Кроме того, структура POINT дополняется еще 10 полями при использовании локальной системы координат, речь о которой пойдет ниже.


Пример описания макрокоманды:

function GO(pt)

{

if (pt.using_frame != 111)

{

server.Go(pt.x, pt.y, pt.z, pt.orient);

}

else

{

server.Go_Frame(pt.x, pt.y, pt.z, pt.orient, pt.x1, pt.y1, pt.z1, pt.x2, pt.y2, pt.z2, pt.x3, pt.y3, pt.z3);

}

}


Сначала идет ключевое слово function, говорящее о том, что текст заключенный в фигурные скобки, представляет собой описание макрофункции. Затем идет название функции GO и ее входной параметр pt. По значению поля using_frame структуры point интерпретатор определяет, является ли эта точка заданной в глобальной системе координат, или она задана в системе координат какого-либо фрейма. Если точка задана в глобальной системе координат, то следует вызов метода Go сервера автоматизации. Описание методов находится в файле CONTROLIMPL.СPP ( Implementation of TControlImpl (CoClass: Control, Interface: IControl) ). Если значение using_frame установлено в 111, то точка задана в локальной системе координат фрейма, поэтому вызывается другой метод – Go_Frame. Его входные параметры кроме координат и ориентации схвата содержат координаты трех точек, по которым составляется фрейм.


Интерфейс пользователя представлен на рисунке 2


Рис 2


Команды вводятся пользователем с клавиатуры в окне «Text». При этом должны быть соблюдены определенные правила, называемые синтаксисом языка.

Каждая новая команда и вообще ключевое слово должны вводиться с новой строки. В конце строки должна ставиться точка с запятой(;).

После того как программа набрана и нажата кнопка «Выполнить» программа проверяет синтаксис текста. Если встречается ошибка, то ее код и содержание выдается пользователю в всплывающем окне, которое генерирует JavaScript. В настоящее время коды ошибок не расшифровываются, однако это легко реализовать, воспользовавшись механизмом «исключений» (exception), которые генерирует операционная система Windows XP и программа WinScript в частности.

Из-за того, что манипулятор «СКАМКО» не обладает датчиками положения текущее положение сочленений неизвестно. Поэтому предлагается прежде чем перемещать схват в нужную точку выполнить операцию калибровки. Данная задача реализована командой “CALIBRATE()”. Встречая этот оператор, интерпретатор выдает команду на калибровку системы управления, а после получения отчета о выполнении, осуществляет перемещение всех звеньев в нулевое (домашнее) положение. После этого продолжается разбор следующих команд.


1.2 Система команд интерпертатора.


CALIBRATE() - без параметров. Запускает процедуру калибровки

SPEED(X) X –целое. Задает скорость передвижения манипулятора

DELAY(MS) – задержка в миллисекундах

OPEN() – без параметров. Открывает схват манипулятора

CLOSE() – без параметров. Закрывает схват манипулятора

PRINT(“message”) – выводит текстовое сообщение в появляющемся окне.


Для следующих команд в качестве аргумента используется структура типа POINT.

struct Point{ VARIANT x; VARIANT y; VARIANT z; VARIANT orient; };


Для задания точки служит команда POINT (X, Y, Z, Orientation).

Пример задания точки : var point1 = POINT (1, 2, 3, 4);


Локальная система координат FRAME


Для задания локальной системы координат служат 2 команды.

MAKEFRAME(точка1, точка2, точка3) – задает фрейм по трем точкам POINT

var frame = MAKEFRAME(pt1, pt2, pt3);

точка pt1 – начало системы координат фрейма

точка pt2 – направление оси Х фрейма относительно точки pt1

точка pt3 – точка, через которую проходит плоскость, параллельная оси X фрейма.


POINTTOFRAME(точка , фрейм) - задает точку POINT в локальной системе координат FRAME.

Pt1 = POINTTOFRAME(pt, frame); - в этом случае точка pt имеет координаты X, Y, Z, PHI в глобальной системе координат, а точка Pt1 имеет численно равные координаты X, Y, Z, PHI в системе координат фрейма frame.


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


Рис 3


Пусть имеются две системы координат с центрами O и О1 соответственно, тогда вектор OA = OO1+O1A. Пусть координаты точки А в системе координат (О1, x1, y1, z1) известны, тогда для вычисления координат искомого вектора OA выполним следующие операции над вектором O1A:


OA = R * O1A + OO1, где R – матрица 3x3, а OO1 – вектор 3x1.


Вектор OO1 имеет координаты точки начала фрейма и по умолчанию нам известен.


Предположим, что начала введенных систем координат совпадают и найдем матрицу R.



Элементы каждого столбца матрицы поворота R представляют собой компоненты проекции каждого орта системы OX1Y1Z1 на оси системы OXYZ.


Рис 4


Точка M имеет координаты (P2X, P2Y, P2Z), точка N - (P3X, P3Y,P3Z) – они так же задаются пользователем в команде создания фрейма.


Сперва найдем направляющие косинусы оси OX1:

;

;

Рассмотрим треугольник ONM:


Рис 5


;

;


;

Тогда вектор ;


Соответственно направляющие косинусы:

:

Оставшийся третий орт находится как векторное произведение: Z1 = X1 x Y1

Таким образом команды, использующие фреймы переходят от координат локальной системы координат к глобальной.


1.3 Команды движения.


MOVEJOINT(JOINT, ANGLE) – Поворачивает степень JOINT манипулятора на угол ANGLE


GO(A) – A – это точка POINT. Выводит манипулятор в точку A. Без планирования траекторий степеней подвижности.


GOS(A) – A – это точка POINT. Выводит манипулятор в точку A. Движение выполняется от текущей точки к точке A по прямой.


Случайные файлы

Файл
151256.rtf
1.doc
178888.rtf
CBRR5616.DOC
83074.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.