В этом примере показано, как использовать блоки алгоритма манипулятора, чтобы вычислить и сравнить динамику из-за силы тяжести для робота манипулятора.
Задайте две подобных модели робота с различными ускорениями силы тяжести. Загрузите модель робота LBR KUKA в рабочую область MATLAB® и создайте копию его. Для первой модели робота, lbr
, задайте нормальный вектор силы тяжести, [0 0 -9.81]
. Для копии, lbr2, используют вектор силы тяжести по умолчанию, [0 0 0]
. Эти модели робота также заданы в параметрах дерева Твердого тела блоков в модели.
load('exampleLBR.mat','lbr') lbr.DataFormat = 'column'; lbr2 = copy(lbr); lbr.Gravity = [0 0 -9.81];
Откройте модель динамики силы тяжести. В случае необходимости перезагрузите модели робота, заданные кодом MATLAB с помощью кнопки коллбэка Моделей Робота Загрузки.
open_system('gravity_dynamics_model.slx')
Блок Forward Dynamics вычисляет объединенные ускорения из-за силы тяжести для данного lbr
настройка робота без начальной скорости, крутящего момента или внешней силы. Блок Inverse Dynamics затем вычисляет крутящие моменты, необходимые для соединения, чтобы создать те те же ускорения без силы тяжести при помощи lbr2
робот. Наконец, блок Gravity Torque вычисляет крутящий момент, требуемый противодействовать силе тяжести для lbr
робот.
Запустите модель. Помимо некоторых небольших числовых различий, крутящий момент силы тяжести и крутящий момент, требуемый для ускорений из-за силы тяжести, являются тем же значением с противоположными направлениями.