function generate_load_regressor(path_to_urdf) % ---------------------------------------------------------------------- % The function generates regressor for the load, which is assumed to be % a rigid body % ----------------------------------------------------------------------- % Parse urdf to get robot description ur10 = parse_urdf(path_to_urdf); % Create symbolic generilized coordiates, their first and second deriatives q_sym = sym('q%d',[6,1],'real'); qd_sym = sym('qd%d',[6,1],'real'); q2d_sym = sym('q2d%d',[6,1],'real'); % ------------------------------------------------------------------------ % Getting gradient of energy functions, to derive dynamics % ------------------------------------------------------------------------ T_pk = sym(zeros(4,4,6)); % transformation between links w_kk(:,1) = sym(zeros(3,1)); % angular velocity k in frame k v_kk(:,1) = sym(zeros(3,1)); % linear velocity of the origin of frame k in frame k g_kk(:,1) = sym([0,0,9.81])'; % vector of graviatational accelerations in frame k p_kk(:,1) = sym(zeros(3,1)); % origin of frame k in frame k for i = 1:6 jnt_axs_k = str2num(ur10.robot.joint{i}.axis.Attributes.xyz)'; % Transformation from parent link frame p to current joint frame rpy_k = sym(str2num(ur10.robot.joint{i}.origin.Attributes.rpy)); R_pj = RPY(rpy_k); R_pj(abs(R_pj)