removeConstraints

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

Описание

пример

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

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

Примеры

свернуть все

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

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

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

robot = loadrobot("atlas");

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

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

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

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

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;

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

addConfiguration(viztree)

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

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

viztree.MarkerBodyName = "r_hand";

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

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;

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

addConfiguration(viztree)

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

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

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

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

viztree.Constraints = {fixedWaist raiseRightLeg};                               

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

addConfiguration(viztree)

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

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

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

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

свернуть все

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

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

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

Введенный в R2020a

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