setFixedTransform

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

Описание

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

пример

setFixedTransform(jointObj,dhparams,"dh") устанавливает ChildToJointTransform свойство с использованием параметров Денавита-Хартенберга (DH). The JointToParentTransform задается значение матрицы тождеств. Параметры DH заданы в порядке [a alpha d theta].

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

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

Примеры

свернуть все

Используйте параметры Денавита-Хартенберга (DH) робота Puma560 ®, чтобы создать робота. Каждое твердое тело добавляется по одному с преобразованием «child-to-parent», заданным объектом joint.

Параметры DH определяют геометрию робота относительно того, как каждое твердое тело присоединено к его родительскому элементу. Для удобства настройте параметры для робота- Puma560 в матрице [1]. Робот Puma является серийной цепью манипулятором. Параметры 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., and B. Armstrong-Helouvry. «Поиск консенсуса среди параметров модели, сообщенных для робота PUMA 560». Материалы 1994 Международной конференции IEEE по робототехнике и автоматизации, IEEE Comput. Soc. Press, 1994, pp. 1608-13. DOI.org (Crossref), doi:10.1109/ROBOT.1994.351360.

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

свернуть все

rigidBodyJoint объект, заданный как указатель.

Однородное преобразование, заданное как матрица 4 на 4. Преобразование устанавливается в ChildToJointTransform свойство. The JointToParentTransform задается значение матрицы тождеств.

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

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

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

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

Ссылки

[1] Крейг, Джон Дж. Введение в робототехнику: механика и управление. Reading, MA: Addison-Wesley, 1989.

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

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

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

.
Введенный в R2016b
Для просмотра документации необходимо авторизоваться на сайте