def eval_constants(self):
        config = self.config

        self.R_ground = np.array([[0], [0], [0]], dtype=np.float64)
        self.P_ground = np.array([[1], [0], [0], [0]], dtype=np.float64)
        self.Pg_ground = np.array([[1], [0], [0], [0]], dtype=np.float64)
        self.m_ground = 1.0
        self.Jbar_ground = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]],
                                    dtype=np.float64)
        self.F_rbs_body_gravity = np.array(
            [[0], [0], [-9810.0 * config.m_rbs_body]], dtype=np.float64)
        self.T_rbs_body_fas_TSDA = Z3x1
        self.T_ground_fas_TSDA = Z3x1

        self.Mbar_rbs_body_jcs_trans = multi_dot(
            [A(config.P_rbs_body).T,
             triad(config.ax1_jcs_trans)])
        self.Mbar_ground_jcs_trans = multi_dot(
            [A(self.P_ground).T,
             triad(config.ax1_jcs_trans)])
        self.ubar_rbs_body_jcs_trans = (
            multi_dot([A(config.P_rbs_body).T, config.pt1_jcs_trans]) +
            (-1) * multi_dot([A(config.P_rbs_body).T, config.R_rbs_body]))
        self.ubar_ground_jcs_trans = (
            multi_dot([A(self.P_ground).T, config.pt1_jcs_trans]) +
            (-1) * multi_dot([A(self.P_ground).T, self.R_ground]))
        self.ubar_rbs_body_fas_TSDA = (
            multi_dot([A(config.P_rbs_body).T, config.pt1_fas_TSDA]) +
            (-1) * multi_dot([A(config.P_rbs_body).T, config.R_rbs_body]))
        self.ubar_ground_fas_TSDA = (
            multi_dot([A(self.P_ground).T, config.pt2_fas_TSDA]) +
            (-1) * multi_dot([A(self.P_ground).T, self.R_ground]))
Beispiel #2
0
    def eval_constants(self):
        config = self.config

        self.F_rbs_rack_gravity = np.array(
            [[0], [0], [-9810.0 * config.m_rbs_rack]], dtype=np.float64)

        self.Mbar_rbs_rack_jcs_rack = multi_dot(
            [A(config.P_rbs_rack).T,
             triad(config.ax1_jcs_rack)])
        self.Mbar_vbs_chassis_jcs_rack = multi_dot(
            [A(config.P_vbs_chassis).T,
             triad(config.ax1_jcs_rack)])
        self.ubar_rbs_rack_jcs_rack = (
            multi_dot([A(config.P_rbs_rack).T, config.pt1_jcs_rack]) +
            (-1) * multi_dot([A(config.P_rbs_rack).T, config.R_rbs_rack]))
        self.ubar_vbs_chassis_jcs_rack = (
            multi_dot([A(config.P_vbs_chassis).T, config.pt1_jcs_rack]) +
            (-1) *
            multi_dot([A(config.P_vbs_chassis).T, config.R_vbs_chassis]))
        self.Mbar_rbs_rack_jcs_rack = multi_dot(
            [A(config.P_rbs_rack).T,
             triad(config.ax1_jcs_rack)])
        self.Mbar_vbs_chassis_jcs_rack = multi_dot(
            [A(config.P_vbs_chassis).T,
             triad(config.ax1_jcs_rack)])
        self.ubar_rbs_rack_jcs_rack = (
            multi_dot([A(config.P_rbs_rack).T, config.pt1_jcs_rack]) +
            (-1) * multi_dot([A(config.P_rbs_rack).T, config.R_rbs_rack]))
        self.ubar_vbs_chassis_jcs_rack = (
            multi_dot([A(config.P_vbs_chassis).T, config.pt1_jcs_rack]) +
            (-1) *
            multi_dot([A(config.P_vbs_chassis).T, config.R_vbs_chassis]))
Beispiel #3
0
    def eval_constants(self):
        config = self.config

        self.R_ground = np.array([[0], [0], [0]], dtype=np.float64)
        self.P_ground = np.array([[1], [0], [0], [0]], dtype=np.float64)
        self.Pg_ground = np.array([[1], [0], [0], [0]], dtype=np.float64)
        self.m_ground = 1.0
        self.Jbar_ground = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]], dtype=np.float64)
        self.F_rbs_body_gravity = np.array([[0], [0], [-9810.0*config.m_rbs_body]], dtype=np.float64)

        self.M_ground = self.m_ground * I3
        self.M_rbs_body = config.m_rbs_body * I3
        self.Mbar_ground_jcs_a = multi_dot([A(self.P_ground).T,triad(config.ax1_jcs_a)])
        self.Mbar_rbs_body_jcs_a = multi_dot([A(config.P_rbs_body).T,triad(config.ax1_jcs_a)])
        self.ubar_ground_jcs_a = (multi_dot([A(self.P_ground).T,config.pt1_jcs_a]) + (-1) * multi_dot([A(self.P_ground).T,self.R_ground]))
        self.ubar_rbs_body_jcs_a = (multi_dot([A(config.P_rbs_body).T,config.pt1_jcs_a]) + (-1) * multi_dot([A(config.P_rbs_body).T,config.R_rbs_body]))
Beispiel #4
0
    def eval_constants(self):
        config = self.config

        self.F_rbr_inner_shaft_gravity = np.array([[0], [0], [-9810.0*config.m_rbr_inner_shaft]], dtype=np.float64)
        self.F_rbr_inner_shaft_far_drive = Z3x1
        self.F_rbl_inner_shaft_gravity = np.array([[0], [0], [-9810.0*config.m_rbl_inner_shaft]], dtype=np.float64)
        self.F_rbl_inner_shaft_fal_drive = Z3x1
        self.F_rbr_coupling_gravity = np.array([[0], [0], [-9810.0*config.m_rbr_coupling]], dtype=np.float64)
        self.F_rbl_coupling_gravity = np.array([[0], [0], [-9810.0*config.m_rbl_coupling]], dtype=np.float64)

        self.vbar_rbr_inner_shaft_far_drive = multi_dot([A(config.P_rbr_inner_shaft).T,config.ax1_far_drive,(multi_dot([config.ax1_far_drive.T,A(config.P_rbr_inner_shaft),A(config.P_rbr_inner_shaft).T,config.ax1_far_drive]))**(-1.0/2.0)])
        self.Mbar_rbr_inner_shaft_far_drive = multi_dot([A(config.P_rbr_inner_shaft).T,triad(config.ax1_far_drive)])
        self.Mbar_vbs_ground_far_drive = multi_dot([A(config.P_vbs_ground).T,triad(config.ax1_far_drive)])
        self.Mbar_rbr_inner_shaft_jcr_diff_joint = multi_dot([A(config.P_rbr_inner_shaft).T,triad(config.ax1_jcr_diff_joint)])
        self.Mbar_vbs_differential_jcr_diff_joint = multi_dot([A(config.P_vbs_differential).T,triad(config.ax1_jcr_diff_joint)])
        self.ubar_rbr_inner_shaft_jcr_diff_joint = (multi_dot([A(config.P_rbr_inner_shaft).T,config.pt1_jcr_diff_joint]) + (-1) * multi_dot([A(config.P_rbr_inner_shaft).T,config.R_rbr_inner_shaft]))
        self.ubar_vbs_differential_jcr_diff_joint = (multi_dot([A(config.P_vbs_differential).T,config.pt1_jcr_diff_joint]) + (-1) * multi_dot([A(config.P_vbs_differential).T,config.R_vbs_differential]))
        self.Mbar_rbr_inner_shaft_jcr_inner_cv = multi_dot([A(config.P_rbr_inner_shaft).T,triad(config.ax1_jcr_inner_cv)])
        self.Mbar_rbr_coupling_jcr_inner_cv = multi_dot([A(config.P_rbr_coupling).T,triad(config.ax2_jcr_inner_cv,triad(config.ax1_jcr_inner_cv)[0:3,1:2])])
        self.ubar_rbr_inner_shaft_jcr_inner_cv = (multi_dot([A(config.P_rbr_inner_shaft).T,config.pt1_jcr_inner_cv]) + (-1) * multi_dot([A(config.P_rbr_inner_shaft).T,config.R_rbr_inner_shaft]))
        self.ubar_rbr_coupling_jcr_inner_cv = (multi_dot([A(config.P_rbr_coupling).T,config.pt1_jcr_inner_cv]) + (-1) * multi_dot([A(config.P_rbr_coupling).T,config.R_rbr_coupling]))
        self.vbar_rbl_inner_shaft_fal_drive = multi_dot([A(config.P_rbl_inner_shaft).T,config.ax1_fal_drive,(multi_dot([config.ax1_fal_drive.T,A(config.P_rbl_inner_shaft),A(config.P_rbl_inner_shaft).T,config.ax1_fal_drive]))**(-1.0/2.0)])
        self.Mbar_rbl_inner_shaft_fal_drive = multi_dot([A(config.P_rbl_inner_shaft).T,triad(config.ax1_fal_drive)])
        self.Mbar_vbs_ground_fal_drive = multi_dot([A(config.P_vbs_ground).T,triad(config.ax1_fal_drive)])
        self.Mbar_rbl_inner_shaft_jcl_diff_joint = multi_dot([A(config.P_rbl_inner_shaft).T,triad(config.ax1_jcl_diff_joint)])
        self.Mbar_vbs_differential_jcl_diff_joint = multi_dot([A(config.P_vbs_differential).T,triad(config.ax1_jcl_diff_joint)])
        self.ubar_rbl_inner_shaft_jcl_diff_joint = (multi_dot([A(config.P_rbl_inner_shaft).T,config.pt1_jcl_diff_joint]) + (-1) * multi_dot([A(config.P_rbl_inner_shaft).T,config.R_rbl_inner_shaft]))
        self.ubar_vbs_differential_jcl_diff_joint = (multi_dot([A(config.P_vbs_differential).T,config.pt1_jcl_diff_joint]) + (-1) * multi_dot([A(config.P_vbs_differential).T,config.R_vbs_differential]))
        self.Mbar_rbl_inner_shaft_jcl_inner_cv = multi_dot([A(config.P_rbl_inner_shaft).T,triad(config.ax1_jcl_inner_cv)])
        self.Mbar_rbl_coupling_jcl_inner_cv = multi_dot([A(config.P_rbl_coupling).T,triad(config.ax2_jcl_inner_cv,triad(config.ax1_jcl_inner_cv)[0:3,1:2])])
        self.ubar_rbl_inner_shaft_jcl_inner_cv = (multi_dot([A(config.P_rbl_inner_shaft).T,config.pt1_jcl_inner_cv]) + (-1) * multi_dot([A(config.P_rbl_inner_shaft).T,config.R_rbl_inner_shaft]))
        self.ubar_rbl_coupling_jcl_inner_cv = (multi_dot([A(config.P_rbl_coupling).T,config.pt1_jcl_inner_cv]) + (-1) * multi_dot([A(config.P_rbl_coupling).T,config.R_rbl_coupling]))
        self.Mbar_rbr_coupling_jcr_outer_cv = multi_dot([A(config.P_rbr_coupling).T,triad(config.ax1_jcr_outer_cv)])
        self.Mbar_vbr_wheel_hub_jcr_outer_cv = multi_dot([A(config.P_vbr_wheel_hub).T,triad(config.ax2_jcr_outer_cv,triad(config.ax1_jcr_outer_cv)[0:3,1:2])])
        self.ubar_rbr_coupling_jcr_outer_cv = (multi_dot([A(config.P_rbr_coupling).T,config.pt1_jcr_outer_cv]) + (-1) * multi_dot([A(config.P_rbr_coupling).T,config.R_rbr_coupling]))
        self.ubar_vbr_wheel_hub_jcr_outer_cv = (multi_dot([A(config.P_vbr_wheel_hub).T,config.pt1_jcr_outer_cv]) + (-1) * multi_dot([A(config.P_vbr_wheel_hub).T,config.R_vbr_wheel_hub]))
        self.Mbar_rbl_coupling_jcl_outer_cv = multi_dot([A(config.P_rbl_coupling).T,triad(config.ax1_jcl_outer_cv)])
        self.Mbar_vbl_wheel_hub_jcl_outer_cv = multi_dot([A(config.P_vbl_wheel_hub).T,triad(config.ax2_jcl_outer_cv,triad(config.ax1_jcl_outer_cv)[0:3,1:2])])
        self.ubar_rbl_coupling_jcl_outer_cv = (multi_dot([A(config.P_rbl_coupling).T,config.pt1_jcl_outer_cv]) + (-1) * multi_dot([A(config.P_rbl_coupling).T,config.R_rbl_coupling]))
        self.ubar_vbl_wheel_hub_jcl_outer_cv = (multi_dot([A(config.P_vbl_wheel_hub).T,config.pt1_jcl_outer_cv]) + (-1) * multi_dot([A(config.P_vbl_wheel_hub).T,config.R_vbl_wheel_hub]))
Beispiel #5
0
    def eval_constants(self):
        config = self.config

        self.R_ground = np.array([[0], [0], [0]], dtype=np.float64)
        self.P_ground = np.array([[1], [0], [0], [0]], dtype=np.float64)
        self.Pg_ground = np.array([[1], [0], [0], [0]], dtype=np.float64)
        self.m_ground = 1.0
        self.Jbar_ground = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]],
                                    dtype=np.float64)
        self.F_rbs_l1_gravity = np.array(
            [[0], [0], [-9810.0 * config.m_rbs_l1]], dtype=np.float64)
        self.F_rbs_l2_gravity = np.array(
            [[0], [0], [-9810.0 * config.m_rbs_l2]], dtype=np.float64)
        self.F_rbs_l3_gravity = np.array(
            [[0], [0], [-9810.0 * config.m_rbs_l3]], dtype=np.float64)

        self.Mbar_ground_jcs_a = multi_dot(
            [A(self.P_ground).T, triad(config.ax1_jcs_a)])
        self.Mbar_rbs_l1_jcs_a = multi_dot(
            [A(config.P_rbs_l1).T,
             triad(config.ax1_jcs_a)])
        self.ubar_ground_jcs_a = (
            multi_dot([A(self.P_ground).T, config.pt1_jcs_a]) +
            (-1) * multi_dot([A(self.P_ground).T, self.R_ground]))
        self.ubar_rbs_l1_jcs_a = (
            multi_dot([A(config.P_rbs_l1).T, config.pt1_jcs_a]) +
            (-1) * multi_dot([A(config.P_rbs_l1).T, config.R_rbs_l1]))
        self.Mbar_ground_jcs_a = multi_dot(
            [A(self.P_ground).T, triad(config.ax1_jcs_a)])
        self.Mbar_rbs_l1_jcs_a = multi_dot(
            [A(config.P_rbs_l1).T,
             triad(config.ax1_jcs_a)])
        self.Mbar_rbs_l1_jcs_b = multi_dot(
            [A(config.P_rbs_l1).T,
             triad(config.ax1_jcs_b)])
        self.Mbar_rbs_l2_jcs_b = multi_dot(
            [A(config.P_rbs_l2).T,
             triad(config.ax1_jcs_b)])
        self.ubar_rbs_l1_jcs_b = (
            multi_dot([A(config.P_rbs_l1).T, config.pt1_jcs_b]) +
            (-1) * multi_dot([A(config.P_rbs_l1).T, config.R_rbs_l1]))
        self.ubar_rbs_l2_jcs_b = (
            multi_dot([A(config.P_rbs_l2).T, config.pt1_jcs_b]) +
            (-1) * multi_dot([A(config.P_rbs_l2).T, config.R_rbs_l2]))
        self.Mbar_rbs_l2_jcs_c = multi_dot(
            [A(config.P_rbs_l2).T,
             triad(config.ax1_jcs_c)])
        self.Mbar_rbs_l3_jcs_c = multi_dot([
            A(config.P_rbs_l3).T,
            triad(config.ax2_jcs_c,
                  triad(config.ax1_jcs_c)[0:3, 1:2])
        ])
        self.ubar_rbs_l2_jcs_c = (
            multi_dot([A(config.P_rbs_l2).T, config.pt1_jcs_c]) +
            (-1) * multi_dot([A(config.P_rbs_l2).T, config.R_rbs_l2]))
        self.ubar_rbs_l3_jcs_c = (
            multi_dot([A(config.P_rbs_l3).T, config.pt1_jcs_c]) +
            (-1) * multi_dot([A(config.P_rbs_l3).T, config.R_rbs_l3]))
        self.Mbar_rbs_l3_jcs_d = multi_dot(
            [A(config.P_rbs_l3).T,
             triad(config.ax1_jcs_d)])
        self.Mbar_ground_jcs_d = multi_dot(
            [A(self.P_ground).T, triad(config.ax1_jcs_d)])
        self.ubar_rbs_l3_jcs_d = (
            multi_dot([A(config.P_rbs_l3).T, config.pt1_jcs_d]) +
            (-1) * multi_dot([A(config.P_rbs_l3).T, config.R_rbs_l3]))
        self.ubar_ground_jcs_d = (
            multi_dot([A(self.P_ground).T, config.pt1_jcs_d]) +
            (-1) * multi_dot([A(self.P_ground).T, self.R_ground]))
Beispiel #6
0
    def eval_constants(self):
        config = self.config

        self.R_ground = np.array([[0], [0], [0]], dtype=np.float64)
        self.P_ground = np.array([[1], [0], [0], [0]], dtype=np.float64)
        self.Pg_ground = np.array([[1], [0], [0], [0]], dtype=np.float64)
        self.m_ground = 1.0
        self.Jbar_ground = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]],
                                    dtype=np.float64)
        self.F_rbs_l1_gravity = np.array(
            [[0], [0], [-9810.0 * config.m_rbs_l1]], dtype=np.float64)
        self.F_rbs_l2_gravity = np.array(
            [[0], [0], [-9810.0 * config.m_rbs_l2]], dtype=np.float64)
        self.F_rbs_l3_gravity = np.array(
            [[0], [0], [-9810.0 * config.m_rbs_l3]], dtype=np.float64)
        self.F_rbs_l4_gravity = np.array(
            [[0], [0], [-9810.0 * config.m_rbs_l4]], dtype=np.float64)
        self.F_rbs_l5_gravity = np.array(
            [[0], [0], [-9810.0 * config.m_rbs_l5]], dtype=np.float64)
        self.F_rbs_l6_gravity = np.array(
            [[0], [0], [-9810.0 * config.m_rbs_l6]], dtype=np.float64)
        self.F_rbs_l7_gravity = np.array(
            [[0], [0], [-9810.0 * config.m_rbs_l7]], dtype=np.float64)
        self.F_rbs_l8_gravity = np.array(
            [[0], [0], [-9810.0 * config.m_rbs_l8]], dtype=np.float64)
        self.F_rbs_l9_gravity = np.array(
            [[0], [0], [-9810.0 * config.m_rbs_l9]], dtype=np.float64)

        self.Mbar_ground_jcs_j1 = multi_dot(
            [A(self.P_ground).T, triad(config.ax1_jcs_j1)])
        self.Mbar_rbs_l1_jcs_j1 = multi_dot(
            [A(config.P_rbs_l1).T,
             triad(config.ax1_jcs_j1)])
        self.ubar_ground_jcs_j1 = (
            multi_dot([A(self.P_ground).T, config.pt1_jcs_j1]) +
            (-1) * multi_dot([A(self.P_ground).T, self.R_ground]))
        self.ubar_rbs_l1_jcs_j1 = (
            multi_dot([A(config.P_rbs_l1).T, config.pt1_jcs_j1]) +
            (-1) * multi_dot([A(config.P_rbs_l1).T, config.R_rbs_l1]))
        self.Mbar_rbs_l1_jcs_j2 = multi_dot(
            [A(config.P_rbs_l1).T,
             triad(config.ax1_jcs_j2)])
        self.Mbar_rbs_l2_jcs_j2 = multi_dot(
            [A(config.P_rbs_l2).T,
             triad(config.ax1_jcs_j2)])
        self.ubar_rbs_l1_jcs_j2 = (
            multi_dot([A(config.P_rbs_l1).T, config.pt1_jcs_j2]) +
            (-1) * multi_dot([A(config.P_rbs_l1).T, config.R_rbs_l1]))
        self.ubar_rbs_l2_jcs_j2 = (
            multi_dot([A(config.P_rbs_l2).T, config.pt1_jcs_j2]) +
            (-1) * multi_dot([A(config.P_rbs_l2).T, config.R_rbs_l2]))
        self.Mbar_rbs_l2_jcs_j3 = multi_dot(
            [A(config.P_rbs_l2).T,
             triad(config.ax1_jcs_j3)])
        self.Mbar_rbs_l3_jcs_j3 = multi_dot(
            [A(config.P_rbs_l3).T,
             triad(config.ax1_jcs_j3)])
        self.ubar_rbs_l2_jcs_j3 = (
            multi_dot([A(config.P_rbs_l2).T, config.pt1_jcs_j3]) +
            (-1) * multi_dot([A(config.P_rbs_l2).T, config.R_rbs_l2]))
        self.ubar_rbs_l3_jcs_j3 = (
            multi_dot([A(config.P_rbs_l3).T, config.pt1_jcs_j3]) +
            (-1) * multi_dot([A(config.P_rbs_l3).T, config.R_rbs_l3]))
        self.Mbar_rbs_l3_jcs_j4 = multi_dot(
            [A(config.P_rbs_l3).T,
             triad(config.ax1_jcs_j4)])
        self.Mbar_ground_jcs_j4 = multi_dot(
            [A(self.P_ground).T, triad(config.ax1_jcs_j4)])
        self.ubar_rbs_l3_jcs_j4 = (
            multi_dot([A(config.P_rbs_l3).T, config.pt1_jcs_j4]) +
            (-1) * multi_dot([A(config.P_rbs_l3).T, config.R_rbs_l3]))
        self.ubar_ground_jcs_j4 = (
            multi_dot([A(self.P_ground).T, config.pt1_jcs_j4]) +
            (-1) * multi_dot([A(self.P_ground).T, self.R_ground]))
        self.Mbar_rbs_l3_jcs_j5 = multi_dot(
            [A(config.P_rbs_l3).T,
             triad(config.ax1_jcs_j5)])
        self.Mbar_rbs_l4_jcs_j5 = multi_dot(
            [A(config.P_rbs_l4).T,
             triad(config.ax1_jcs_j5)])
        self.ubar_rbs_l3_jcs_j5 = (
            multi_dot([A(config.P_rbs_l3).T, config.pt1_jcs_j5]) +
            (-1) * multi_dot([A(config.P_rbs_l3).T, config.R_rbs_l3]))
        self.ubar_rbs_l4_jcs_j5 = (
            multi_dot([A(config.P_rbs_l4).T, config.pt1_jcs_j5]) +
            (-1) * multi_dot([A(config.P_rbs_l4).T, config.R_rbs_l4]))
        self.Mbar_rbs_l4_jcs_j6 = multi_dot(
            [A(config.P_rbs_l4).T,
             triad(config.ax1_jcs_j6)])
        self.Mbar_rbs_l5_jcs_j6 = multi_dot(
            [A(config.P_rbs_l5).T,
             triad(config.ax1_jcs_j6)])
        self.ubar_rbs_l4_jcs_j6 = (
            multi_dot([A(config.P_rbs_l4).T, config.pt1_jcs_j6]) +
            (-1) * multi_dot([A(config.P_rbs_l4).T, config.R_rbs_l4]))
        self.ubar_rbs_l5_jcs_j6 = (
            multi_dot([A(config.P_rbs_l5).T, config.pt1_jcs_j6]) +
            (-1) * multi_dot([A(config.P_rbs_l5).T, config.R_rbs_l5]))
        self.Mbar_rbs_l5_jcs_j7 = multi_dot(
            [A(config.P_rbs_l5).T,
             triad(config.ax1_jcs_j7)])
        self.Mbar_ground_jcs_j7 = multi_dot(
            [A(self.P_ground).T, triad(config.ax1_jcs_j7)])
        self.ubar_rbs_l5_jcs_j7 = (
            multi_dot([A(config.P_rbs_l5).T, config.pt1_jcs_j7]) +
            (-1) * multi_dot([A(config.P_rbs_l5).T, config.R_rbs_l5]))
        self.ubar_ground_jcs_j7 = (
            multi_dot([A(self.P_ground).T, config.pt1_jcs_j7]) +
            (-1) * multi_dot([A(self.P_ground).T, self.R_ground]))
        self.Mbar_rbs_l5_jcs_j8 = multi_dot(
            [A(config.P_rbs_l5).T,
             triad(config.ax1_jcs_j8)])
        self.Mbar_rbs_l6_jcs_j8 = multi_dot(
            [A(config.P_rbs_l6).T,
             triad(config.ax1_jcs_j8)])
        self.ubar_rbs_l5_jcs_j8 = (
            multi_dot([A(config.P_rbs_l5).T, config.pt1_jcs_j8]) +
            (-1) * multi_dot([A(config.P_rbs_l5).T, config.R_rbs_l5]))
        self.ubar_rbs_l6_jcs_j8 = (
            multi_dot([A(config.P_rbs_l6).T, config.pt1_jcs_j8]) +
            (-1) * multi_dot([A(config.P_rbs_l6).T, config.R_rbs_l6]))
        self.Mbar_rbs_l6_jcs_j9 = multi_dot(
            [A(config.P_rbs_l6).T,
             triad(config.ax1_jcs_j9)])
        self.Mbar_rbs_l7_jcs_j9 = multi_dot(
            [A(config.P_rbs_l7).T,
             triad(config.ax1_jcs_j9)])
        self.ubar_rbs_l6_jcs_j9 = (
            multi_dot([A(config.P_rbs_l6).T, config.pt1_jcs_j9]) +
            (-1) * multi_dot([A(config.P_rbs_l6).T, config.R_rbs_l6]))
        self.ubar_rbs_l7_jcs_j9 = (
            multi_dot([A(config.P_rbs_l7).T, config.pt1_jcs_j9]) +
            (-1) * multi_dot([A(config.P_rbs_l7).T, config.R_rbs_l7]))
        self.Mbar_rbs_l7_jcs_j10 = multi_dot(
            [A(config.P_rbs_l7).T,
             triad(config.ax1_jcs_j10)])
        self.Mbar_ground_jcs_j10 = multi_dot(
            [A(self.P_ground).T, triad(config.ax1_jcs_j10)])
        self.ubar_rbs_l7_jcs_j10 = (
            multi_dot([A(config.P_rbs_l7).T, config.pt1_jcs_j10]) +
            (-1) * multi_dot([A(config.P_rbs_l7).T, config.R_rbs_l7]))
        self.ubar_ground_jcs_j10 = (
            multi_dot([A(self.P_ground).T, config.pt1_jcs_j10]) +
            (-1) * multi_dot([A(self.P_ground).T, self.R_ground]))
        self.Mbar_rbs_l7_jcs_j11 = multi_dot(
            [A(config.P_rbs_l7).T,
             triad(config.ax1_jcs_j11)])
        self.Mbar_rbs_l8_jcs_j11 = multi_dot(
            [A(config.P_rbs_l8).T,
             triad(config.ax1_jcs_j11)])
        self.ubar_rbs_l7_jcs_j11 = (
            multi_dot([A(config.P_rbs_l7).T, config.pt1_jcs_j11]) +
            (-1) * multi_dot([A(config.P_rbs_l7).T, config.R_rbs_l7]))
        self.ubar_rbs_l8_jcs_j11 = (
            multi_dot([A(config.P_rbs_l8).T, config.pt1_jcs_j11]) +
            (-1) * multi_dot([A(config.P_rbs_l8).T, config.R_rbs_l8]))
        self.Mbar_rbs_l8_jcs_j12 = multi_dot(
            [A(config.P_rbs_l8).T,
             triad(config.ax1_jcs_j12)])
        self.Mbar_rbs_l9_jcs_j12 = multi_dot(
            [A(config.P_rbs_l9).T,
             triad(config.ax1_jcs_j12)])
        self.ubar_rbs_l8_jcs_j12 = (
            multi_dot([A(config.P_rbs_l8).T, config.pt1_jcs_j12]) +
            (-1) * multi_dot([A(config.P_rbs_l8).T, config.R_rbs_l8]))
        self.ubar_rbs_l9_jcs_j12 = (
            multi_dot([A(config.P_rbs_l9).T, config.pt1_jcs_j12]) +
            (-1) * multi_dot([A(config.P_rbs_l9).T, config.R_rbs_l9]))
        self.Mbar_rbs_l9_jcs_j13 = multi_dot(
            [A(config.P_rbs_l9).T,
             triad(config.ax1_jcs_j13)])
        self.Mbar_ground_jcs_j13 = multi_dot(
            [A(self.P_ground).T, triad(config.ax1_jcs_j13)])
        self.ubar_rbs_l9_jcs_j13 = (
            multi_dot([A(config.P_rbs_l9).T, config.pt1_jcs_j13]) +
            (-1) * multi_dot([A(config.P_rbs_l9).T, config.R_rbs_l9]))
        self.ubar_ground_jcs_j13 = (
            multi_dot([A(self.P_ground).T, config.pt1_jcs_j13]) +
            (-1) * multi_dot([A(self.P_ground).T, self.R_ground]))
    def eval_constants(self):
        config = self.config

        self.F_rbs_coupler_gravity = np.array(
            [[0], [0], [-9810.0 * config.m_rbs_coupler]], dtype=np.float64)
        self.F_rbr_rocker_gravity = np.array(
            [[0], [0], [-9810.0 * config.m_rbr_rocker]], dtype=np.float64)
        self.F_rbl_rocker_gravity = np.array(
            [[0], [0], [-9810.0 * config.m_rbl_rocker]], dtype=np.float64)

        self.Mbar_rbr_rocker_jcr_rocker_chassis = multi_dot(
            [A(config.P_rbr_rocker).T,
             triad(config.ax1_jcr_rocker_chassis)])
        self.Mbar_vbs_chassis_jcr_rocker_chassis = multi_dot(
            [A(config.P_vbs_chassis).T,
             triad(config.ax1_jcr_rocker_chassis)])
        self.ubar_rbr_rocker_jcr_rocker_chassis = (
            multi_dot(
                [A(config.P_rbr_rocker).T, config.pt1_jcr_rocker_chassis]) +
            (-1) * multi_dot([A(config.P_rbr_rocker).T, config.R_rbr_rocker]))
        self.ubar_vbs_chassis_jcr_rocker_chassis = (
            multi_dot(
                [A(config.P_vbs_chassis).T, config.pt1_jcr_rocker_chassis]) +
            (-1) *
            multi_dot([A(config.P_vbs_chassis).T, config.R_vbs_chassis]))
        self.Mbar_rbr_rocker_jcs_rocker_uni = multi_dot(
            [A(config.P_rbr_rocker).T,
             triad(config.ax1_jcs_rocker_uni)])
        self.Mbar_rbs_coupler_jcs_rocker_uni = multi_dot([
            A(config.P_rbs_coupler).T,
            triad(config.ax2_jcs_rocker_uni,
                  triad(config.ax1_jcs_rocker_uni)[0:3, 1:2])
        ])
        self.ubar_rbr_rocker_jcs_rocker_uni = (
            multi_dot([A(config.P_rbr_rocker).T, config.pt1_jcs_rocker_uni]) +
            (-1) * multi_dot([A(config.P_rbr_rocker).T, config.R_rbr_rocker]))
        self.ubar_rbs_coupler_jcs_rocker_uni = (
            multi_dot([A(config.P_rbs_coupler).T, config.pt1_jcs_rocker_uni]) +
            (-1) *
            multi_dot([A(config.P_rbs_coupler).T, config.R_rbs_coupler]))
        self.Mbar_rbl_rocker_jcl_rocker_chassis = multi_dot(
            [A(config.P_rbl_rocker).T,
             triad(config.ax1_jcl_rocker_chassis)])
        self.Mbar_vbs_chassis_jcl_rocker_chassis = multi_dot(
            [A(config.P_vbs_chassis).T,
             triad(config.ax1_jcl_rocker_chassis)])
        self.ubar_rbl_rocker_jcl_rocker_chassis = (
            multi_dot(
                [A(config.P_rbl_rocker).T, config.pt1_jcl_rocker_chassis]) +
            (-1) * multi_dot([A(config.P_rbl_rocker).T, config.R_rbl_rocker]))
        self.ubar_vbs_chassis_jcl_rocker_chassis = (
            multi_dot(
                [A(config.P_vbs_chassis).T, config.pt1_jcl_rocker_chassis]) +
            (-1) *
            multi_dot([A(config.P_vbs_chassis).T, config.R_vbs_chassis]))
        self.Mbar_rbl_rocker_jcl_rocker_chassis = multi_dot(
            [A(config.P_rbl_rocker).T,
             triad(config.ax1_jcl_rocker_chassis)])
        self.Mbar_vbs_chassis_jcl_rocker_chassis = multi_dot(
            [A(config.P_vbs_chassis).T,
             triad(config.ax1_jcl_rocker_chassis)])
        self.Mbar_rbl_rocker_jcs_rocker_sph = multi_dot(
            [A(config.P_rbl_rocker).T,
             triad(config.ax1_jcs_rocker_sph)])
        self.Mbar_rbs_coupler_jcs_rocker_sph = multi_dot(
            [A(config.P_rbs_coupler).T,
             triad(config.ax1_jcs_rocker_sph)])
        self.ubar_rbl_rocker_jcs_rocker_sph = (
            multi_dot([A(config.P_rbl_rocker).T, config.pt1_jcs_rocker_sph]) +
            (-1) * multi_dot([A(config.P_rbl_rocker).T, config.R_rbl_rocker]))
        self.ubar_rbs_coupler_jcs_rocker_sph = (
            multi_dot([A(config.P_rbs_coupler).T, config.pt1_jcs_rocker_sph]) +
            (-1) *
            multi_dot([A(config.P_rbs_coupler).T, config.R_rbs_coupler]))
    def eval_constants(self):
        config = self.config

        self.F_rbs_input_shaft_gravity = np.array([[0], [0], [-9810.0*config.m_rbs_input_shaft]], dtype=np.float64)
        self.F_rbs_connect_shaft_gravity = np.array([[0], [0], [-9810.0*config.m_rbs_connect_shaft]], dtype=np.float64)
        self.F_rbs_output_shaft_gravity = np.array([[0], [0], [-9810.0*config.m_rbs_output_shaft]], dtype=np.float64)

        self.Mbar_rbs_input_shaft_jcs_input_bearing = multi_dot([A(config.P_rbs_input_shaft).T,triad(config.ax1_jcs_input_bearing)])
        self.Mbar_vbs_chassis_jcs_input_bearing = multi_dot([A(config.P_vbs_chassis).T,triad(config.ax1_jcs_input_bearing)])
        self.ubar_rbs_input_shaft_jcs_input_bearing = (multi_dot([A(config.P_rbs_input_shaft).T,config.pt1_jcs_input_bearing]) + -1*multi_dot([A(config.P_rbs_input_shaft).T,config.R_rbs_input_shaft]))
        self.ubar_vbs_chassis_jcs_input_bearing = (multi_dot([A(config.P_vbs_chassis).T,config.pt1_jcs_input_bearing]) + -1*multi_dot([A(config.P_vbs_chassis).T,config.R_vbs_chassis]))
        self.Mbar_rbs_input_shaft_jcs_input_bearing = multi_dot([A(config.P_rbs_input_shaft).T,triad(config.ax1_jcs_input_bearing)])
        self.Mbar_vbs_chassis_jcs_input_bearing = multi_dot([A(config.P_vbs_chassis).T,triad(config.ax1_jcs_input_bearing)])
        self.Mbar_rbs_input_shaft_jcs_input_connect = multi_dot([A(config.P_rbs_input_shaft).T,triad(config.ax1_jcs_input_connect)])
        self.Mbar_rbs_connect_shaft_jcs_input_connect = multi_dot([A(config.P_rbs_connect_shaft).T,triad(config.ax2_jcs_input_connect,triad(config.ax1_jcs_input_connect)[0:3,1:2])])
        self.ubar_rbs_input_shaft_jcs_input_connect = (multi_dot([A(config.P_rbs_input_shaft).T,config.pt1_jcs_input_connect]) + -1*multi_dot([A(config.P_rbs_input_shaft).T,config.R_rbs_input_shaft]))
        self.ubar_rbs_connect_shaft_jcs_input_connect = (multi_dot([A(config.P_rbs_connect_shaft).T,config.pt1_jcs_input_connect]) + -1*multi_dot([A(config.P_rbs_connect_shaft).T,config.R_rbs_connect_shaft]))
        self.Mbar_rbs_output_shaft_jcs_output_connect = multi_dot([A(config.P_rbs_output_shaft).T,triad(config.ax1_jcs_output_connect)])
        self.Mbar_rbs_connect_shaft_jcs_output_connect = multi_dot([A(config.P_rbs_connect_shaft).T,triad(config.ax2_jcs_output_connect,triad(config.ax1_jcs_output_connect)[0:3,1:2])])
        self.ubar_rbs_output_shaft_jcs_output_connect = (multi_dot([A(config.P_rbs_output_shaft).T,config.pt1_jcs_output_connect]) + -1*multi_dot([A(config.P_rbs_output_shaft).T,config.R_rbs_output_shaft]))
        self.ubar_rbs_connect_shaft_jcs_output_connect = (multi_dot([A(config.P_rbs_connect_shaft).T,config.pt1_jcs_output_connect]) + -1*multi_dot([A(config.P_rbs_connect_shaft).T,config.R_rbs_connect_shaft]))
        self.Mbar_rbs_output_shaft_jcs_output_bearing = multi_dot([A(config.P_rbs_output_shaft).T,triad(config.ax1_jcs_output_bearing)])
        self.Mbar_vbs_chassis_jcs_output_bearing = multi_dot([A(config.P_vbs_chassis).T,triad(config.ax1_jcs_output_bearing)])
        self.ubar_rbs_output_shaft_jcs_output_bearing = (multi_dot([A(config.P_rbs_output_shaft).T,config.pt1_jcs_output_bearing]) + -1*multi_dot([A(config.P_rbs_output_shaft).T,config.R_rbs_output_shaft]))
        self.ubar_vbs_chassis_jcs_output_bearing = (multi_dot([A(config.P_vbs_chassis).T,config.pt1_jcs_output_bearing]) + -1*multi_dot([A(config.P_vbs_chassis).T,config.R_vbs_chassis]))
    def eval_constants(self):
        config = self.config

    

        self.Mbar_vbr_wheel_hub_jcr_hub_bearing = multi_dot([A(config.P_vbr_wheel_hub).T,triad(config.ax1_jcr_hub_bearing)])
        self.Mbar_vbr_wheel_upright_jcr_hub_bearing = multi_dot([A(config.P_vbr_wheel_upright).T,triad(config.ax1_jcr_hub_bearing)])
        self.Mbar_vbl_wheel_hub_jcl_hub_bearing = multi_dot([A(config.P_vbl_wheel_hub).T,triad(config.ax1_jcl_hub_bearing)])
        self.Mbar_vbl_wheel_upright_jcl_hub_bearing = multi_dot([A(config.P_vbl_wheel_upright).T,triad(config.ax1_jcl_hub_bearing)])