Esempio n. 1
0
    def __init__(self, factory):
        """Constructor.

        Args:
            factory (factory.FactoryCreate)
        """
        self.create = factory.create_create()
        self.time = factory.create_time_helper()
        self.servo = factory.create_servo()
        self.sonar = factory.create_sonar()
        # Add the IP-address of your computer here if you run on the robot
        self.virtual_create = factory.create_virtual_create()
        self.pdTheta = pd_controller.PDController(500, 40, -200, 200)
        self.pidTheta = pid_controller.PIDController(200,
                                                     5,
                                                     50, [-10, 10],
                                                     [-200, 200],
                                                     is_angle=True)
        self.map = lab8_map.Map("lab8_map.json")
        self.base_speed = 100
        self.odometry = odometry.Odometry()
        self.particle_filter = ParticleFilter(
            map=self.map,
            virtual_create=self.virtual_create,
            num_particles=100,
            distance=STRAIGHT_DISTANCE,
            sigma_sensor=0.1,
            sigma_theta=0.05,
            sigma_distance=0.01,
        )
        _ = self.create.sim_get_position()
 def __init__(self, factory):
     self.create = factory.create_create()
     self.time = factory.create_time_helper()
     self.sonar = factory.create_sonar()
     self.servo = factory.create_servo()
     #self.p_controller = p_controller.PController(1000, -75, 75)
     self.pd_controller = pd_controller.PDController(1000, 100, -75, 75)
Esempio n. 3
0
 def __init__(self, factory):
     self.create = factory.create_create()
     self.time = factory.create_time_helper()
     self.sonar = factory.create_sonar()
     self.servo = factory.create_servo()
     self.odometry = odometry.Odometry()
     self.pdTheta = pd_controller.PDController(75, 1, -200, 200)
     # self.pdTheta = pd_controller.PDController(200, 10, -75, 75)
     # self.pdTheta = pd_controller.PDController(500, 100, -200, 200)
     self.pidTheta = pid_controller.PIDController(75, 20, 1, -100, 100,
                                                  -100, 100)
Esempio n. 4
0
 def __init__(self, factory):
     self.create = factory.create_create()
     self.time = factory.create_time_helper()
     self.sonar = factory.create_sonar()
     self.servo = factory.create_servo()
     self.odometry = odometry.Odometry()
     self.pdTheta = pd_controller.PDController(self.theta_kp, self.theta_kd,
                                               -200, 200)
     # self.pidTheta = pid_controller.PIDController(self.theta_kp, self.theta_kd, self.theta_ki, -200, 200)
     self.pidXY = pid_controller.PIDController(self.xy_kp, self.xy_kd,
                                               self.xy_ki, -200, 200)
    def __init__(self, factory):
        """Constructor.
        Args:
            factory (factory.FactoryCreate)
        """
        self.create = factory.create_create()
        self.time = factory.create_time_helper()
        self.servo = factory.create_servo()
        self.sonar = factory.create_sonar()
        self.arm = factory.create_kuka_lbr4p()
        self.virtual_create = factory.create_virtual_create()
        # self.virtual_create = factory.create_virtual_create("192.168.1.XXX")
        self.odometry = odometry.Odometry()
        self.mapJ = lab8_map.Map("lab8_map.json")
        self.map = rrt_map.Map("configuration_space.png")
        self.rrt = rrt.RRT(self.map)
        self.path = []
        self.is_localized = False

        # TODO identify good PID controller gains
        self.pd_controller = pd_controller.PDController(1000, 100, -75, 75)
        self.pdWF = pid_controller.PIDController(200, 50, 0, [0, 0], [-50, 50])
        self.pidTheta = pid_controller.PIDController(200,
                                                     0,
                                                     100, [-10, 10], [-50, 50],
                                                     is_angle=True)
        self.pidTheta2 = pid_controller.PIDController(300,
                                                      5,
                                                      50, [-10, 10],
                                                      [-200, 200],
                                                      is_angle=True)
        self.pidDistance = pid_controller.PIDController(1000,
                                                        0,
                                                        50, [0, 0],
                                                        [-200, 200],
                                                        is_angle=False)
        # TODO identify good particle filter parameters
        self.pf = particle_filter.ParticleFilter(self.mapJ, 1000, 0.06, 0.15,
                                                 0.2)

        self.joint_angles = np.zeros(7)