setFixedTransform

Установите зафиксированный, преобразовывают свойства соединения

Описание

setFixedTransform(jointObj,tform) устанавливает JointToParentTransform свойство rigidBodyJoint возразите непосредственно с заданным однородным преобразованием, tform.

пример

setFixedTransform(jointObj,dhparams,"dh") устанавливает ChildToJointTransform свойство с помощью параметров Denavit-Hartenberg (DH). JointToParentTransform свойство установлено в единичную матрицу. Параметры DH даны в порядке [a alpha d theta].

Для шарнирных соединений, theta вход проигнорирован при определении фиксированного преобразования между соединениями, потому что тот угол зависит от объединенной настройки. Для призматических соединений, d вход проигнорирован. Для получения дополнительной информации см. Модель Робота Дерева Твердого тела.

setFixedTransform(jointObj,mdhparams,"mdh") устанавливает JointToParentTransform свойство с помощью измененных параметров DH. ChildToJointTransform свойство установлено в единичную матрицу. Модифицированные параметры DH даны в порядке [a alpha d theta].

Примеры

свернуть все

Используйте параметры Denavit-Hartenberg (DH) робота Puma560®, чтобы создать робота. Каждое твердое тело добавляется по одному, с дочерним элементом к родительскому элементу преобразовывают заданный объединенным объектом.

Параметры DH задают геометрию робота с отношением к тому, как каждое твердое тело присоединено к своему родительскому элементу. Для удобства установите параметры для робота Puma560 в матрице [1]. Робот Пумы является последовательным цепочечным манипулятором. Параметры DH относительно предыдущей линии в матрице, соответствуя предыдущему объединенному прикреплению.

dhparams = [0   	pi/2	0   	0;
            0.4318	0       0       0
            0.0203	-pi/2	0.15005	0;
            0   	pi/2	0.4318	0;
            0       -pi/2	0   	0;
            0       0       0       0];

Создайте объект дерева твердого тела создать робота.

robot = rigidBodyTree;

Создайте первое твердое тело и добавьте его в робота. Добавить твердое тело:

  1. Создайте rigidBody возразите и дайте ему уникальное имя.

  2. Создайте rigidBodyJoint возразите и дайте ему уникальное имя.

  3. Используйте setFixedTransform задавать преобразование от тела к телу с помощью параметров DH. Последний элемент параметров DH, theta, проигнорирован, потому что угол зависит от объединенного положения.

  4. Вызовите addBody присоединить первый сустав к базовой системе координат робота.

body1 = rigidBody('body1');
jnt1 = rigidBodyJoint('jnt1','revolute');

setFixedTransform(jnt1,dhparams(1,:),'dh');
body1.Joint = jnt1;

addBody(robot,body1,'base')

Создайте и добавьте другие твердые тела в робота. Задайте предыдущее имя тела при вызове addBody присоединить его. Каждое фиксированное преобразование относительно предыдущей объединенной координатной системы координат.

body2 = rigidBody('body2');
jnt2 = rigidBodyJoint('jnt2','revolute');
body3 = rigidBody('body3');
jnt3 = rigidBodyJoint('jnt3','revolute');
body4 = rigidBody('body4');
jnt4 = rigidBodyJoint('jnt4','revolute');
body5 = rigidBody('body5');
jnt5 = rigidBodyJoint('jnt5','revolute');
body6 = rigidBody('body6');
jnt6 = rigidBodyJoint('jnt6','revolute');

setFixedTransform(jnt2,dhparams(2,:),'dh');
setFixedTransform(jnt3,dhparams(3,:),'dh');
setFixedTransform(jnt4,dhparams(4,:),'dh');
setFixedTransform(jnt5,dhparams(5,:),'dh');
setFixedTransform(jnt6,dhparams(6,:),'dh');

body2.Joint = jnt2;
body3.Joint = jnt3;
body4.Joint = jnt4;
body5.Joint = jnt5;
body6.Joint = jnt6;

addBody(robot,body2,'body1')
addBody(robot,body3,'body2')
addBody(robot,body4,'body3')
addBody(robot,body5,'body4')
addBody(robot,body6,'body5')

Проверьте, что ваш робот был создан правильно при помощи showdetails или show функция. showdetails списки все тела в командном окне MATLAB®. show отображает робота с данной настройкой (домой по умолчанию). Вызовы axis измените пределы по осям и скройте подписи по осям.

showdetails(robot)
--------------------
Robot: (6 bodies)

 Idx    Body Name   Joint Name   Joint Type    Parent Name(Idx)   Children Name(s)
 ---    ---------   ----------   ----------    ----------------   ----------------
   1        body1         jnt1     revolute             base(0)   body2(2)  
   2        body2         jnt2     revolute            body1(1)   body3(3)  
   3        body3         jnt3     revolute            body2(2)   body4(4)  
   4        body4         jnt4     revolute            body3(3)   body5(5)  
   5        body5         jnt5     revolute            body4(4)   body6(6)  
   6        body6         jnt6     revolute            body5(5)   
--------------------
show(robot);
axis([-0.5,0.5,-0.5,0.5,-0.5,0.5])
axis off

Ссылки

[1] Corke, P. I. и Б. Армстронг-Хелуври. “Поиск Согласия среди Параметров модели, о которых Сообщают для робота PUMA 560”. Продолжения 1 994 Международных конференций IEEE по вопросам Робототехники и Автоматизации, IEEE Comput. Soc. Нажмите, 1994, стр 1608–13. DOI.org (Crossref), doi:10.1109/ROBOT.1994.351360.

Входные параметры

свернуть все

rigidBodyJoint объект в виде указателя.

Гомогенное преобразование в виде матрицы 4 на 4. Преобразование установлено в ChildToJointTransform свойство. JointToParentTransform свойство установлено в единичную матрицу.

Параметры Denavit-Hartenberg (DH) в виде четырехэлементного вектора, [a alpha d theta]. Эти параметры используются, чтобы установить ChildToJointTransform свойство. JointToParentTransform свойство установлено в единичную матрицу.

theta вход проигнорирован при определении фиксированного преобразования между соединениями, потому что тот угол зависит от объединенной настройки. Для получения дополнительной информации см. Модель Робота Дерева Твердого тела.

Модифицированные параметры Denavit-Hartenberg (DH) в виде четырехэлементного вектора, [a alpha d theta]. Эти параметры используются, чтобы установить JointToParentTransform свойство. ChildToJointTransform установлен в единичную матрицу.

theta вход проигнорирован при определении фиксированного преобразования между соединениями, потому что тот угол зависит от объединенной настройки. Для получения дополнительной информации см. Модель Робота Дерева Твердого тела.

Ссылки

[1] Крэйг, Джон Дж. Введение в робототехнику: механика и управление. Чтение, MA: Аддисон-Уэсли, 1989.

[2] Siciliano, Бруно. Робототехника: моделирование, планируя и управляет. Лондон: Спрингер, 2009.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Смотрите также

| |

Введенный в R2017b