- •Введение
- •1. Основные понятия и определения.
- •1.2. Кинематические пары и их классификация.
- •1.3. Кинематические цепи.
- •1.4. Краткие сведения из теории матриц.
- •2. Создание алгоритма решения прямой задачи о положениях.
- •2.1. Определение числа степеней подвижности ok
- •2.1.2. Определение числа степеней подвижности для кинематической структуры манипулятора ПР модели М20П.40.01.
- •2.1.3. Определение числа степеней подвижности для кинематической структуры манипулятора ПР модели М10П.62.01.
- •2.1.4. Определение числа степеней подвижности для кинематической структуры манипулятора ПР.
- •2.2. Назначение собственных систем координат.
- •2.2.1. Общие принципы назначения собственных систем координат.
- •2.2.2. Назначение собственных систем координат при решении задачи для кинематической структуры манипулятора ПР мод. М20П.40.01.
- •2.2.3. Назначение собственных систем координат при решении задачи для кинематической структуры манипулятора ПР мод. М10П.62.01.
- •2.2.4. Назначение собственных систем координат при решении прямой задачи о положениях для кинематической структуры ПР.
- •2.3. Преобразования систем координат. (edit)
- •2.3.1. Общие принципы преобразования систем координат.
- •2.3.2. Преобразования систем координат для кинематической структуры манипулятора ПР модели М20П.40.01.
- •2.3.3. Преобразования систем координат для кинематической структуры манипулятора ПР модели М10П.62.01.
- •2.3.4. Преобразования систем координат для кинематической структуры манипулятора ПР.
- •3. Реализация вычислительного алгоритма на ЭВМ.
- •3.1. Работа с системой MathCAD.
- •3.1.1. Общее описание системы и ее запуск.
- •3.1.2. Общие приемы работы в среде.
- •3.1.3. Работа с векторами и матрицами.
- •3.2. Тестирование алгоритма.
- •3.2.1. Классификация ошибок.
- •3.2.2. Проверка правильности решения прямой задачи о положениях манипулятора ПР.
- •Список литературы
- •Приложения
- •Решение прямой задачи о положениях для кинематической структуры манипулятора ПР модели М20П.40.01.
- •Решение прямой задачи о положениях для кинематической структуры манипулятора ПР модели М10П.62.01.
- •Решение прямой задачи о положениях для кинематической структуры манипулятора ПР
- •Варианты заданий.
Еще один немаловажный способ увеличения удобства понимания реализован- ного алгоритма – это использование комментариев. В среде MathCAD они задаются с помощью текстовых блоков, задаваемых либо «горячей» клавишей «"» (вместе с
Shift).
3.1.3. Работа с векторами и матрицами.
Ввода шаблона вектора или матрицы в документ можно добиться нескольким способами: «горячей» комбинацией Ctrl+M; выбором пиктограммы
на панели Matrix; с помощью пункта меню Insert ► Matrix… Каждое из перечисленных дейст- вий приведет к вызову мастера «Insert Matrix», на полях Rows и Columns которого необходимо задать число строк и столбцов соответственно. После этого в документ будет вставлен шаблон матрицы в круглых скобках, который необходимо заполнить значениями элементов.
Операции над матрицами, как указанные в п. 1.4. так и другие, система MathCAD умеет производить сама (в том смысле, что не требуется программировать порядок получения элементов результирующей матрицы на каком-либо языке). При невыполнении необходимых условий операции (например, при перемножении двух матриц число столбцов первой не равно числу строк второй) система сообщит об ошибке. Однако при решении прямой задачи о положениях манипулятора ПР будут использоваться матрицы размерностью 4×4, что делает операцию их перемножения возможной в любом случае.
3.2.Тестирование алгоритма.
3.2.1.Классификация ошибок.
Получение вектора, содержащего декартовы координаты точки схвата робота, не означает, что в программе нет ошибок. Убедиться, что программа работает пра- вильно можно только в процессе проверки ее работоспособности, который называ-
ется тестирование.
Обычно программа редко сразу начинает работать так, как надо, или работает правильно только на некотором ограниченном наборе исходных данных. Это свиде- тельствует о том, что в программе есть ошибки. Процесс поиска и устранение оши- бок называется отладкой.
Ошибки, с которыми можно столкнуться при решении прямой задачи о поло- жениях манипулятора ПР с использованием системы MathCAD могут быть синтак- сическими или алгоритмическими.
Синтаксические ошибки наиболее легко устранимы. Их обнаруживает компи- лятор системы MathCAD, а пользователю остается только внести изменения в текст программы. К подобным ошибкам относятся, например, ошибки в именах перемен- ных, констант или функций. Кроме этого, пользователи порой забывают указывать скобки при передаче аргументов функциям или опускают символ операции умно-
51
жения, что допускается при решении математических задач вручную и совершенно неприемлемо при машинной реализации алгоритмов (это также может привести к возникновению алгоритмической ошибки).
С алгоритмическими ошибками дело обстоит иначе. При пробных запусках программа выполняется и выдает некоторый результат, анализ которого выявляет его неправильность. Для того чтобы устранить алгоритмическую ошибку, прихо- дится анализировать алгоритм. Одними из самых распространенных алгоритмиче-
ских ошибок являются пропуски или неуместное добавление знака минус перед выражениями, а также изменение порядка умножения расширенных матриц преоб- разования.
3.2.2. Проверка правильности решения прямой задачи о положениях манипулятора ПР.
Получение некоторого ответа при решении задач не гарантирует его правиль- ности. В большинстве случаев для проверки ответ подставляется в исходные дан- ные (например, при решении уравнений). Однако подобный подход при решении прямой задачи о положениях манипулятора ПР не даст результата. Выходом может служить составление уравнений на основе тригонометрических соотношений.
Так для кинематической структуры манипулятора ПР модели М20П.40.01 (рис. 2.4, б) справедливо следующее векторное уравнение:
çæ xA ÷ö |
çæ(s3 + L4 )×cos(ϕ1 +π |
||||
ç yA ÷ |
= ç (s3 + L4 )×sin(ϕ1 +π |
||||
ç z |
÷ |
ç |
s |
2 |
+ L |
è |
A ø |
è |
|
2 |
|
/2)ö æ -(s3 + L4 ) ×sin (ϕ1 )ö
/2)÷÷ = çç (s3 + L4 )×cos(ϕ1 ) ÷÷ .
÷ç s + L ÷ ø è 2 2 ø
На основании результатов п. 2.3.2. для вычисления координат точки схвата ро- бота было получено векторно-матричное уравнение, преобразование которого дает
следующий вектор: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
æ -(s3 + L4 )sinϕ1 |
|
|
||||||
æ cosϕ1 |
-sinϕ1 |
0 |
0 |
öæ1 |
0 |
0 |
0 |
öæ1 |
0 |
0 |
0 |
öæ 0 |
ö |
|
ö |
|
||||||||
ç |
|
cosϕ1 |
0 |
0 |
֍ |
0 |
0 |
1 |
0 |
֍ |
0 |
1 |
0 |
0 |
֍ |
0 |
÷ |
|
ç |
(s3 + L4 )cosϕ1 |
÷ |
|
||
ç sinϕ1 |
֍ |
֍ |
֍ |
÷ |
= |
ç |
÷ |
. |
||||||||||||||||
ç 0 |
0 |
1 |
s |
֍0 -1 |
0 |
L |
֍0 0 1 s |
֍ L |
÷ |
ç |
s |
|
+ L |
÷ |
||||||||||
|
2 |
|
||||||||||||||||||||||
ç |
|
|
|
2 |
֍ |
|
|
|
2 |
֍ |
|
|
|
3 |
֍ |
4 |
|
ç |
|
2 |
÷ |
|
||
0 |
0 |
0 |
1 |
0 0 |
0 |
1 |
0 0 0 1 |
1 |
÷ |
|
ç |
|
|
1 |
÷ |
|
||||||||
è |
øè |
øè |
øè |
ø |
|
è |
|
|
ø |
|
||||||||||||||
Это демонстрирует правильность решения прямой задачи при любых значени- ях переменных и постоянных параметров кинематической структуры манипулятора, поскольку результаты в общем виде идентичны.
Однако подобный подход оправдан при расчете сравнительно простых струк- тур. Уже для кинематической структуры манипулятора ПР мод. М10П.62.01, имеющей, кстати, тоже 4 степени подвижности, расчет координат точки схвата в неподвижной системе выглядит сложнее. Проверка правильности решения задачи для структуры, представленной на рис. 2.3, при использовании такого метода весь- ма трудоемка.
52
В данном случае имеет смысл провести проверку алгоритма на некотором мно- жестве входных данных, для которого известно множество координат точки схвата робота. Объем тестовых работ, в конечном счете, определяет сам разработчик. При этом не следует сводить все к единственному набору входных данных, но и увле- каться в то же время не надо. Общее количество проверок в общем случае зависит от количества кинематических пар с тем, чтобы зафиксировать изменения обоб- щенных координат в каждой из них. Достаточным количеством можно считать от 3 до 5 проверок. Данные для проверки берутся, исходя из кинематической структуры.
Проведем проверку для кинематической структуры манипулятора ПР мод. М10П.62.01. Назначим постоянные параметры структуры: L1 = 350 , L2 = 250 ,
R2 = 200 , L3 = 500 , L4 = 100 . Для нужд тестирования назначим так же и перемен- ные параметры кинематической структуры – обобщенные координаты: ϕ1 = −90o ,
ϕ2 |
= 180o , |
s3 = 50 |
(рис. 3.1, а); ϕ1 = 90o , |
ϕ2 = 180o , s3 = 60 (рис. 3.1, б); ϕ1 = 0o , |
ϕ2 |
= 90o , s3 |
= −40 |
(рис. 3.1, в). |
|
|
а) |
|
б) |
в) |
Рис. 3.1. Различные положения кинематической структуры манипулятора ПР.
Очевидно, что для указанных случаев координаты точки схвата робота можно вычислить «вручную», а затем подставить соответствующие случаю значения обобщенных координат в алгоритм с тем, чтобы сравнить полученные ответы. Све- дя результаты обоих методов расчета в табл. 3.1, проверим правильность реализо- ванного алгоритма.
Сравнивая числовые значения, можно сделать вывод о правильности получен- ных результатов, а следовательно, и сам алгоритм можно считать адекватно описы- вающим кинематическую структуру манипулятора данного ПР (при этом нижняя единица в колонке векторов А0 была введена для возможности выполнения вектор- но-матричных операций).
Проверим теперь алгоритм расчета кинематической структуры манипулятора, представленного на рис. 2.3. Назначим постоянные параметры структуры: L1 = 200 ,
R2 = 150 , R3 = 100 , L3 = 300 , L4 = 350 , L5 =100 , L6 = 100 , L7 = 200 , R7 = 100 ,
L8 = 150 , L9 = 100 , R9 = 20 . Кроме этого зададим переменные параметры кинема- тической структуры – обобщенные координаты: s1 = 100 , α2 = 90o , s3 =150 ,
53
α4 |
= 90o , |
s5 |
= -50 , α6 = 180o , |
|
s7 = 200 , |
α8 = 270o , |
α9 |
= 0 |
|
(рис. 3.2, а); |
s1 = 80 , |
|||||||||||
α2 |
= 90o , s3 |
=100 , α4 |
= 90o , s5 |
= -70 , α6 |
= 270o , s7 = 150 , α8 |
= 270o , α9 = 90o (рис. |
||||||||||||||||
3.2, б); |
s1 = 110 , |
α2 |
= 180o , |
s3 |
=120 , |
α4 = 180o , |
s5 = 60 , |
α6 = 180o , |
s7 = 180 , |
|||||||||||||
α8 |
= 90o , α9 |
=180o |
(рис. 3.2, в). |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 3.1 |
||
|
|
Результаты «ручного» расчета |
Результаты выполнения алгоритма |
|
||||||||||||||||||
|
|
æ x ö |
|
æ -(L2 + L3 + L4 ) |
ö |
|
æ -850ö |
|
|
æ -850ö |
|
|
||||||||||
|
|
|
|
|
|
ç |
550 |
÷ |
|
|
||||||||||||
|
|
ç y ÷ = |
ç |
L + R |
|
÷ = |
ç |
550 |
÷ |
|
A = ç |
÷ |
|
|
||||||||
|
|
ç ÷ |
|
ç |
1 |
2 |
|
÷ |
|
ç |
50 |
÷ |
|
0 |
ç 50 ÷ |
|
|
|||||
|
|
ç z ÷ |
|
ç |
s |
|
|
÷ |
|
ç |
÷ |
|
|
ç |
|
|
÷ |
|
|
|||
|
|
è |
ø |
|
è |
3 |
|
|
ø |
|
è |
|
|
ø |
|
|
1 |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
è |
ø |
|
|
||
|
|
|
æ x ö |
æ L2 + L3 + L4 |
ö |
|
æ 850 ö |
|
|
|
æ |
850 ö |
|
|
||||||||
|
|
|
|
|
|
|
ç |
550 |
÷ |
|
|
|||||||||||
|
|
|
ç y |
÷ |
= ç |
L + R |
÷ |
= |
ç |
550 |
÷ |
|
|
A = ç |
÷ |
|
|
|||||
|
|
|
ç |
÷ ç |
1 |
2 |
÷ |
|
ç |
-60 |
÷ |
|
|
0 |
ç -60÷ |
|
|
|||||
|
|
|
ç z |
÷ ç |
-s |
÷ ç |
÷ |
|
|
|
ç |
|
|
÷ |
|
|
||||||
|
|
|
è |
ø |
è |
|
3 |
ø |
|
è |
|
|
ø |
|
|
|
1 |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
è |
ø |
|
|
||
|
|
æ x ö æ |
s3 |
|
|
ö æ -40 ö |
|
|
æ |
-40 ö |
|
|
||||||||||
|
|
|
|
|
|
ç |
|
|
÷ |
|
|
|||||||||||
|
|
ç y |
÷ = ç L + L + L + L |
÷ = ç |
1200 |
÷ |
|
A = ç1200 ÷ |
|
|
||||||||||||
|
|
ç |
÷ |
ç 1 |
2 |
3 |
4 |
÷ |
|
ç |
|
|
÷ |
|
0 |
ç -200÷ |
|
|
||||
|
|
ç z |
÷ |
ç |
-R |
|
÷ |
|
ç |
-200÷ |
|
|
ç |
|
|
÷ |
|
|
||||
|
|
è |
ø |
è |
|
2 |
|
ø |
|
è |
|
|
ø |
|
|
1 |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
è |
ø |
|
|
||
|
|
Для случаев, изображенных на рис. 3.2, координаты точки схвата робота также |
||||||||||||||||||||
можно вычислить, не прибегая к использованию аппарата матричного исчисления. Также сводя результаты обоих методов расчета в табл. 3.2 и сравнивая их, проверим правильность реализованного алгоритма.
а) б) в)
Рис. 3.2. Различные положения кинематической структуры.
54
Таблица 3.2
|
|
|
|
Результаты «ручного» расчета |
|
|
Результаты выполнения |
|||||||||||||
|
|
|
|
|
|
алгоритма |
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
æ x ö |
æ |
|
s1 + s5 - L8 - L9 |
|
|
ö |
|
æ -200ö |
|
|
æ |
-200ö |
||||||||
|
|
|
|
|
|
ç |
900 |
÷ |
||||||||||||
ç y |
÷ |
= ç R - R + L + L + s + L |
÷ |
= |
ç |
900 |
÷ |
|
A = ç |
÷ |
||||||||||
ç |
|
÷ |
ç |
2 |
3 |
4 |
5 7 |
|
7 |
÷ |
|
ç |
770 |
÷ |
|
0 |
ç |
770 |
÷ |
|
ç z |
÷ |
ç |
L + s + L + R + R |
|
÷ |
|
ç |
÷ |
|
|
ç |
|
÷ |
|||||||
è ø è |
1 |
3 |
3 |
7 |
9 |
|
ø è |
|
ø |
|
|
1 |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
è |
ø |
|
æ x ö |
æ |
|
s1 + s5 - L8 - L9 |
|
|
ö |
|
æ -240ö |
|
|
æ |
-240ö |
||||||||
|
|
|
|
|
|
ç |
400 |
÷ |
||||||||||||
ç y |
÷ |
= ç |
R - R + L + L - R |
|
÷ |
= |
ç |
400 |
÷ |
|
A = ç |
÷ |
||||||||
ç |
|
|
÷ |
ç |
2 |
3 |
4 |
5 |
7 |
|
÷ |
|
ç |
970 |
÷ |
|
0 |
ç |
970 |
÷ |
ç z |
÷ |
ç L + s + L + s |
+ L + R |
÷ |
|
ç |
÷ |
|
|
ç |
|
÷ |
||||||||
è ø è |
1 |
3 |
3 7 |
7 |
|
9 |
ø è |
|
ø |
|
|
1 |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
è |
ø |
|
æ x ö |
|
|
æ |
s1 - R2 + R3 + R7 - R9 |
|
|
ö |
|
æ 140 ö |
|
æ |
140 ö |
||||||||
|
|
|
|
|
|
ç |
310 |
÷ |
||||||||||||
ç y |
÷ |
= |
ç |
|
s + L + L |
|
|
|
÷ |
= ç 310 |
÷ |
A = ç |
÷ |
|||||||
ç |
÷ |
|
|
ç |
|
5 |
8 |
9 |
|
+ L |
÷ |
|
ç |
|
÷ |
0 |
ç1450÷ |
|||
ç z |
÷ |
|
|
ç L + s + L + L + L + s |
7 |
÷ |
|
ç1450 |
÷ |
|
ç |
|
÷ |
|||||||
è |
ø è 1 |
3 |
3 |
4 |
5 |
|
7 ø è |
|
ø |
|
1 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
è |
ø |
|
Здесь также первая тройка значений в обоих векторах идентична, что свиде- тельствует о правильности проведенных расчетов.
Таким образом, протестировав алгоритм, можно с большей уверенностью гово- рить о верности решения прямой задачи о положениях для кинематической струк- туры манипулятора ПР.
55
