Exemple #1
0
    def load_robot(self):
        """
        Load either the default robot or the last used robot at the
        start of the program.

        Returns:
            An instance of `Robot` class.
        """
        par_file_path = configfile.get_last_robot()
        if par_file_path is None:
            # when last used robot was not saved
            return samplerobots.rx90()
        elif not os.path.exists(par_file_path):
            # when the PAR file does not exist
            self.message_error("The PAR file does not exist.")
            return samplerobots.rx90()
        else:
            robo_name = os.path.split(par_file_path)[1][:-4]
            robo, flag = parfile.readpar(robo_name, par_file_path)
            if robo is None:
                robo = samplerobots.rx90()
                self.message_error("File could not be read!")
            elif flag == tools.FAIL:
                robo = samplerobots.rx90()
                self.message_warning(
                    "While reading file an error occured."
                )
            return robo
Exemple #2
0
 def test_igm_rx90(self):
     print "######## test_igm ##########"
     robo = samplerobots.rx90()
     #robo.r[6] = var('R6')
     #robo.gamma[6] = var('G6')  # invgeom.T_GENERAL
     nTm = invgeom.T_GENERAL
     invgeom._paul_solve(robo, self.symo, nTm, 0, robo.nf)
     self.symo.gen_func_string('IGM_gen',
                               robo.q_vec,
                               invgeom.T_GENERAL,
                               syntax='matlab')
     igm_f = self.symo.gen_func('IGM_gen', robo.q_vec, invgeom.T_GENERAL)
     T = geometry.dgm(robo,
                      self.symo,
                      0,
                      robo.nf,
                      fast_form=True,
                      trig_subs=True)
     f06 = self.symo.gen_func('DGM_generated1', T, robo.q_vec)
     for x in xrange(100):
         arg = random.normal(size=robo.nj)
         Ttest = f06(arg)
         solution = igm_f(Ttest)
         for q in solution:
             self.assertLess(amax(matrix(f06(q)) - Ttest), 1e-12)
Exemple #3
0
    def test_igm_rx90(self):
        robo = samplerobots.rx90()
        nTm = invdata.T_GENERAL
        self.symo.write_line("\r\n*******************PIEPER METHOD STARTS********************** \r\n")
        pieper._pieper_solve(robo, self.symo, nTm, 0, robo.nf)
##        self.symo.gen_func_string('IGM_gen', robo.q_vec,
##                                  invgeom.T_GENERAL, syntax='matlab')
        igm_f = self.symo.gen_func('IGM_gen', robo.q_vec,
                                   invdata.T_GENERAL)
        self.symo.write_line("\r\n*******************PIEPER METHOD FINISHED********************")
Exemple #4
0
 def test_igm_rx90(self):
     robo = samplerobots.rx90()
     nTm = invdata.T_GENERAL
     self.symo.write_line(
         "\r\n*******************PIEPER METHOD STARTS********************** \r\n"
     )
     pieper._pieper_solve(robo, self.symo, nTm, 0, robo.nf)
     ##        self.symo.gen_func_string('IGM_gen', robo.q_vec,
     ##                                  invgeom.T_GENERAL, syntax='matlab')
     igm_f = self.symo.gen_func('IGM_gen', robo.q_vec, invdata.T_GENERAL)
     self.symo.write_line(
         "\r\n*******************PIEPER METHOD FINISHED********************"
     )
Exemple #5
0
 def test_igm_rx90(self):
     robo = samplerobots.rx90()
     #robo.r[6] = var('R6')
     #robo.gamma[6] = var('G6')  # invgeom.T_GENERAL
     nTm = invgeom.T_GENERAL
     invgeom._paul_solve(robo, self.symo, nTm, 0, robo.nf)
     self.symo.gen_func_string('IGM_gen', robo.q_vec,
                               invgeom.T_GENERAL, syntax='matlab')
     igm_f = self.symo.gen_func('IGM_gen', robo.q_vec,
                                invgeom.T_GENERAL)
     T = geometry.dgm(robo, self.symo, 0, robo.nf,
                      fast_form=True, trig_subs=True)
     f06 = self.symo.gen_func('DGM_generated1', T, robo.q_vec)
     for x in xrange(100):
         arg = random.normal(size=robo.nj)
         Ttest = f06(arg)
         solution = igm_f(Ttest)
         for q in solution:
             self.assertLess(amax(matrix(f06(q))-Ttest), 1e-12)
Exemple #6
0
    def test_dynamics(self):
        robo = samplerobots.rx90()

        print 'Inverse dynamic model using Newton - Euler Algorith'
        dynamics.inverse_dynamic_NE(robo)

        print 'Direct dynamic model using Newton - Euler Algorith'
        dynamics.direct_dynamic_NE(robo)

        print 'Dynamic identification model using Newton - Euler Algorith'
        dynamics.dynamic_identification_NE(robo)

        print 'Inertia Matrix using composite links'
        dynamics.inertia_matrix(robo)

        print 'Coriolis torques using Newton - Euler Algorith'
        dynamics.pseudo_force_NE(robo)

        print 'Base parameters computation'
        dynamics.base_paremeters(robo)
Exemple #7
0
    def test_dynamics(self):
        robo = samplerobots.rx90()

        print 'Inverse dynamic model using Newton - Euler Algorith'
        dynamics.inverse_dynamic_NE(robo)

        print 'Direct dynamic model using Newton - Euler Algorith'
        dynamics.direct_dynamic_NE(robo)

        print 'Dynamic identification model using Newton - Euler Algorith'
        dynamics.dynamic_identification_NE(robo)

        print 'Inertia Matrix using composite links'
        dynamics.inertia_matrix(robo)

        print 'Coriolis torques using Newton - Euler Algorith'
        dynamics.pseudo_force_NE(robo)

        print 'Base parameters computation'
        dynamics.base_paremeters(robo)
Exemple #8
0
 def setUp(self):
     self.orig_robo = samplerobots.rx90()
Exemple #9
0
 def setUp(self):
     self.symo = symbolmgr.SymbolManager()
     self.robo = samplerobots.rx90()
Exemple #10
0
        if self.solve_loops:
            self.canvas.solve()
            self.update_spin_controls()
        self.canvas.OnDraw()

    def CheckFrames(self, evt):
        self.canvas.show_frames(evt.EventObject.GetChecked())
        self.tButton.Value = False
        evt.EventObject.DeselectAll()

    def SelectFrames(self, evt):
        selections = evt.EventObject.GetSelections()
        if selections:
            self.canvas.centralize_to_frame(selections[0])

    def OnSliderChanged(self, _):
        self.canvas.change_lengths(self.jnt_slider.Value / 100.)


if __name__ == '__main__':
    app = wx.PySimpleApp()
    from pysymoro import robot
    robo = samplerobots.rx90()
    robo.d[3] = 1.
    robo.r[4] = 1.
    frame = MainWindow(prefix='', robo=robo)
    import profile
    profile.run('frame.canvas.OnPaintAll(wx.CommandEvent())', sort='cumtime')
    app.MainLoop()
    app.Destroy()
Exemple #11
0
 def setUp(self):
     self.orig_robo = samplerobots.rx90()
Exemple #12
0
        if self.solve_loops:
            self.canvas.solve()
            self.update_spin_controls()
        self.canvas.OnDraw()

    def CheckFrames(self, evt):
        self.canvas.show_frames(evt.EventObject.GetChecked())
        self.tButton.Value = False
        evt.EventObject.DeselectAll()

    def SelectFrames(self, evt):
        selections = evt.EventObject.GetSelections()
        if selections:
            self.canvas.centralize_to_frame(selections[0])

    def OnSliderChanged(self, _):
        self.canvas.change_lengths(self.jnt_slider.Value/100.)


if __name__ == '__main__':
    app = wx.PySimpleApp()
    from pysymoro import robot
    robo = samplerobots.rx90()
    robo.d[3] = 1.
    robo.r[4] = 1.
    frame = MainWindow(prefix='', robo=robo)
    import profile
    profile.run('frame.canvas.OnPaintAll(wx.CommandEvent())', sort='cumtime')
    app.MainLoop()
    app.Destroy()