예제 #1
0
    def __init__(self, canvas):
        self.history = defaultdict(list)

        # view
        self.canvas = canvas
        self.last_x = 400
        self.rod_len = 80
        self.rod_y_start = 300-20-30
        rod_y_end = self.rod_y_start - self.rod_len

        self.rect = canvas.create_rectangle(self.last_x-35, 300-20-30, self.last_x+35, 300-20)
        self.w1 = canvas.create_oval(self.last_x-30, 300-20, self.last_x-10, 300)
        self.w2 = canvas.create_oval(self.last_x+10, 300-20, self.last_x+30, 300)
        self.ball = canvas.create_oval(self.last_x - 10, rod_y_end - 10,
                                       self.last_x + 10, rod_y_end + 10
                                       , fill="gray")
        self.rod = canvas.create_line(self.last_x, self.rod_y_start,
                                      self.last_x, rod_y_end
                                      , width=3, fill="gray")
        self.x_offset = 400

        # simulation
        self.x = 0.0
        self.x_dot = 0.0
        self.x_dot_dot = 0.0
        self.theta = 0.0
        self.theta_dot = 0.0
        self.theta_dot_dot = 0.0
        self.time_scale = 0.01
        self.f = 0

        # controller
        self.input = {}
        self.output = {"F":0}
        self.controller = Reader().load_from_file("inverted_pendulum.fcl")
예제 #2
0
 def __init__(self, fcl_path):
     self.system = Reader().load_from_file(fcl_path)