Этот пример показывает, как использовать блоки алгоритма манипулятора для вычисления и сравнения динамики из-за силы тяжести для робота.
Задайте две подобные модели робота с различными ускорениями тяжести. Загрузите модель робота KUKA LBR в рабочую область 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, с помощью кнопки коллбэка Load Robot Models.
open_system('gravity_dynamics_model.slx')
Блок Forward Dynamics вычисляет ускорения соединений из-за силы тяжести для заданного lbr
строение робота без начальной скорости, крутящего момента или внешних сил. Блок Обратной Динамики затем вычисляет крутящие моменты, необходимые для соединения, чтобы создать те же ускорения без силы тяжести при помощи lbr2
робот. Наконец, блок Gravity Torque вычисляет крутящий момент, требуемый для противодействия тяжести для lbr
робот.
Запустите модель. Помимо некоторых небольших численных различий, коэффициент тяжести и крутящий момент, требуемый для ускорений от силы тяжести, являются одинаковыми значениями с противоположными направлениями.