removeConstraints

Удалите ограничения инверсной кинематики

Описание

пример

removeConstraints(viztree)удаляет ограничение, сохраненное в последнем индексе Constraints свойство interactiveRigidBodyTree объект, viztree.

removeConstraints(viztree,index) удаляет ограничения с заданными индексами.

Примеры

свернуть все

Используйте interactiveRigidBodyTree возразите, чтобы вручную переместить робота на рисунке. Объект использует интерактивные маркеры на рисунке, чтобы отследить желаемые положения различных твердых тел в rigidBodyTree объект.

Загрузите модель робота

Используйте loadrobot функционируйте к предоставленным моделям робота доступа как rigidBodyTree объекты.

robot = loadrobot("atlas");

Визуализируйте робота и сохраните настройки

Создайте интерактивный древовидный объект и сопоставленную фигуру, задав загруженную модель робота и ее левую руку как исполнительный элемент конца.

viztree = interactiveRigidBodyTree(robot,"MarkerBodyName","l_hand");

Figure Interactive Visualization contains an axes. The axes contains 179 objects of type patch, line, surface. This object represents pelvis.

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

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

Программно установите текущую настройку. Присвойте вектор из длины, равной количеству нефиксированных соединений в RigidBodyTree к Configuration свойство.

currConfig = homeConfiguration(viztree.RigidBodyTree);
currConfig(1:10) = [ 0.2201 -0.1319 0.2278 -0.3415 0.4996 ...
                     0.0747 0.0377 0.0718 -0.8117 -0.0427]';
viztree.Configuration = currConfig;

Figure Interactive Visualization contains an axes. The axes contains 179 objects of type patch, line, surface. This object represents pelvis.

Сохраните текущую настройку робота в StoredConfigurations свойство.

addConfiguration(viztree)

Чтобы переключить исполнительный элемент конца на различное твердое тело, щелкните правой кнопкой по желаемому телу по фигуре и выберите тело Set как тело маркера. Используйте этот процесс, чтобы выбрать правую систему координат.

Можно также установить MarkerBodyName свойство к определенному имени тела.

viztree.MarkerBodyName = "r_hand";

Figure Interactive Visualization contains an axes. The axes contains 179 objects of type patch, line, surface. This object represents pelvis.

Переместите правую руку в новое положение. Установите настройку программно. Маркер перемещается в новое положение исполнительного элемента конца.

currConfig(1:18) = [-0.1350 -0.1498 -0.0167 -0.3415 0.4996 0.0747
                     0.0377 0.0718 -0.8117 -0.0427 0 0.4349 
                    -0.5738 0.0563 -0.0095 0.0518 0.8762 -0.0895]';
                
viztree.Configuration = currConfig;

Figure Interactive Visualization contains an axes. The axes contains 179 objects of type patch, line, surface. This object represents pelvis.

Сохраните текущую настройку.

addConfiguration(viztree)

Добавьте ограничения

По умолчанию модель робота уважает только объединенные пределы rigidBodyJoint объекты сопоставлены с RigidBodyTree свойство. Чтобы добавить ограничения, сгенерируйте Ограничительные объекты Робота и задайте их как массив ячеек в Constraints свойство. Чтобы видеть список автоматизированных ограничений, смотрите Инверсную кинематику. Задайте цель положения для таза, чтобы сохранить зафиксированным к исходному положению. Задайте цель положения для правой ноги, которая будет повышена в передней передней стороне и выше ее текущего положения.

fixedWaist = constraintPoseTarget("pelvis");
raiseRightLeg = constraintPositionTarget("r_foot","TargetPosition",[1 0 0.5]);

Примените эти ограничения к интерактивному объекту дерева твердого тела как массив ячеек. Правая нога на получившемся рисунке меняет положение.

viztree.Constraints = {fixedWaist raiseRightLeg};                               

Figure Interactive Visualization contains an axes. The axes contains 179 objects of type patch, line, surface. This object represents pelvis.

Заметьте изменение в положении правой ноги. Сохраните эту настройку также.

addConfiguration(viztree)

Воспроизведите настройки

Чтобы воспроизвести настройки, выполните итерации через сохраненный индекс настроек и установите текущую настройку, равную сохраненному вектор-столбцу настройки в каждой итерации. Поскольку настройки хранятся как вектор-столбцы, используйте второе измерение матрицы.

for i = 1:size(viztree.StoredConfigurations,2)
    viztree.Configuration = viztree.StoredConfigurations(:,i);
    pause(0.5)
end

Figure Interactive Visualization contains an axes. The axes contains 179 objects of type patch, line, surface. This object represents pelvis.

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

свернуть все

Интерактивная визуализация модели робота дерева твердого тела в виде interactiveRigidBodyTree объект.

Индексируйте местоположения, чтобы удалить настройки в виде положительного целого числа или вектора из положительных целых чисел.

Типы данных: double

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