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")
def __init__(self, fcl_path): self.system = Reader().load_from_file(fcl_path)