Использование всего этого на примере плоского двузвенного панимулятора.
- Выбрать свой манипулятор из словаря
manipulator
в модулelibs.initializtion
, указав его ключ-номер:
manipulator = {
0: 'PLANAR_2DOF',
1: 'KUKA_YOUBOT'
}[0]
- Перйти в корень дирекории проекта и в термиале выполнить:
$ python3 compute_regressor.py
В результате выполнения скрипта compute_regressor.py
создастся новая директория с названием выбранного манипулятора и следующим содержимым:
├── regressors │ └── PLANAR_2DOF_xi │ ├── __init__.py │ ├── xi_00.py │ ├── xi_01.py │ ├── xi_11.py │ ├── Xi.py │ └── zeros_in_regressor.txt
где xi_ij.py
─ модули с элементами регрессора (i, j in [0, n), Xi.py
─ сам регрессор, zeros_in_regressor.txt
─ файл с матрицей nxn, в котором единицами обозначены не нулевые элементы регрессора.
- Импортировать из полученного выше модуля
Xi.py
классXi
в модульxi_num.py
from regressors.PLANAR_2DOF_xi.Xi import Xi
-
Добавить в перменную
self._linerCols += [<сюда>]
в конструкторе классаXiNum
в модулеxi_num.py
номера линейно зависимых столбцов -
Для получения численных значений регрессора необходимо:
-
Создать экземпляр класса
XiNum
из модуляxi_num.py
, инициализировав его значениями DH-парметов выбранного манипулятораxi_num = XiNum(A, D)
-
Вызвать у него один из методов
xi_value = xi_num.getXiNum(q, dq, ddq) # регрессор в численном виде xi_value = xi_num.getXiNumEx(q, dq, ddq) # регрессор в численном виде с учетом трения xi_value = xi_num.getXiNumExCompressed(q, dq, ddq) # регрессор в численном виде c учетом трения и без линейно зависимых столбцов
-