Ejemplo n.º 1
0
    def __init__(self, physics_controller):
        '''
            :param physics_controller: `pyfrc.physics.core.PhysicsInterface` object
                                       to communicate simulation effects to
        '''

        self.physics_controller = physics_controller
        self.position = 0

        self.physics_controller.add_device_gyro_channel('adxrs450_spi_0_angle')

        targets = [
            # right
            VisionSim.Target(15, 13, 250, 0),
            # middle
            VisionSim.Target(16.5, 15.5, 295, 65),
            # left
            VisionSim.Target(15, 18, 0, 110)
        ]

        self.vision = VisionSim(targets,
                                61.0,
                                1.5,
                                15,
                                15,
                                physics_controller=physics_controller)
Ejemplo n.º 2
0
    def __init__(self, physics_controller):
        '''
            :param physics_controller: `pyfrc.physics.core.PhysicsInterface` object
                                       to communicate simulation effects to
        '''

        self.physics_controller = physics_controller
        self.position = 0

        self.ft_per_sec = 5
        self.wheel_circumference = 18.8

        self.physics_controller.add_device_gyro_channel('adxrs450_spi_0_angle')

        if VisionSim is not None:
            targets = [
                # right
                VisionSim.Target(16, 12, 250, 20),  # angle is 122.23
                # middle
                VisionSim.Target(18.5, 16, 295, 65),  # angle is 180
                # left
                VisionSim.Target(16, 20, 320, 110),  # angle is -142
            ]

            self.vision = VisionSim(targets,
                                    61.0,
                                    1.5,
                                    15,
                                    15,
                                    physics_controller=self.physics_controller)
        else:
            self.vision = None
Ejemplo n.º 3
0
    def __init__(self, physics_controller):
        """
            The constructor must take the following arguments:
            
            :param physics_controller: The physics controller interface
            :type  physics_controller: :class:`.PhysicsInterface`
        """
        self.physics_controller = physics_controller
        self.position = 0

        self.physics_controller.add_device_gyro_channel("navxmxp_spi_4_angle")
        # Change these parameters to fit your robot!
        bumper_width = 3.25 * units.inch

        self.drivetrain = tankmodel.TankModel.theory(
            motor_cfgs.MOTOR_CFG_CIM,  # motor configuration
            137 * units.lbs,  # robot mass
            1 / 75,  # drivetrain gear ratio
            2,  # motors per side
            35 * units.inch,  # robot wheelbase
            29 * units.inch + bumper_width * 2,  # robot width
            29 * units.inch + bumper_width * 2,  # robot length
            8 * units.centimeter,  # wheel diameter
        )

        # Precompute the encoder constant
        # -> encoder counts per revolution / wheel circumference
        self.kEncoder = (4096) / (.08 * math.pi)

        self.l_distance = 0
        self.r_distance = 0
        targets = [
            # right
            VisionSim.Target(15, 13, 250, 0),
            # middle
            VisionSim.Target(16.5, 15.5, 295, 65),
            # left
            VisionSim.Target(15, 18, 0, 110),
            VisionSim.Target(10, 25, 250, 0),
        ]
        self.vision = VisionSim(targets,
                                61.0,
                                1.5,
                                20,
                                15,
                                physics_controller=physics_controller)
Ejemplo n.º 4
0
    def initialize(self, hal_data):
        self.visionTable = NetworkTables.getTable('limelight')
        self.visionTable.putNumber('tv', 1)
        self.visionTable.putNumber('tx', 0)
        self.visionTable.putNumber('ty', 0)
        self.visionTable.putNumber('ts', 0)
        self.visionTable.putNumber('ta', 5)

        visionTarget = VisionSim.Target(self.visionX, self.visionY,
                                        self.visionAngleStart,
                                        self.visionAngleEnd)
        self.visionSim = VisionSim([visionTarget], 60, 2, 50)
        hal_data['alliance_station'] = self.allianceStation
Ejemplo n.º 5
0
    def initialize(self, hal_data):
        self.visionTable = NetworkTables.getTable('limelight')
        self.visionTable.putNumber('tv',
                                   1)  # some arbitrary default vision data
        self.visionTable.putNumber('tx', 0)
        self.visionTable.putNumber('ty', 0)
        self.visionTable.putNumber('ts', 0)
        self.visionTable.putNumber('ta', 5)

        visionTarget = VisionSim.Target(self.visionX, self.visionY,
                                        self.visionAngleStart,
                                        self.visionAngleEnd)
        self.visionSim = VisionSim([visionTarget], 60, 2, 50)
        hal_data['alliance_station'] = self.allianceStation

        self._drivePositionState = None

        ctre.TalonSRX._use_notifier = False  # speed up position mode in simulator by a lot
Ejemplo n.º 6
0
    def __init__(self, physics_controller):
        """
            :param physics_controller: `pyfrc.physics.core.Physics` object
                                       to communicate simulation effects to
        """

        self.physics_controller = physics_controller
        self.position = 0

        self.physics_controller.add_device_gyro_channel("navxmxp_i2c_1_angle")
        self.physics_controller.add_device_gyro_channel("navxmxp_spi_4_angle")

        targets = [
            #everything on the left side of the field
            VisionSim.Target(18.5, 12.5, 90, 270),  # front cargo
            VisionSim.Target(0, 2, -90, 90),  #  pickup station           
            VisionSim.Target(22, 11.25, 180, 360),  # cargo side 1
            VisionSim.Target(23.75, 11.25, 180, 360),  # cargo side 2
            VisionSim.Target(25.5, 11.25, 180, 360),  # cargo side 3
            VisionSim.Target(17.5, 2, 90 - 29, 90 - 29 + 180),  # rocket fromt
            VisionSim.Target(21, 2, -90 + 29, -90 + 29 + 180),  # rocket back

            #everything on the left side of the field
            VisionSim.Target(18.5, 27 - 12.5, 90, 270),  # front cargo
            VisionSim.Target(0, 27 - 2, -90, 90),  #  pickup station           
            VisionSim.Target(22, 27 - 11.25, 0, 180),  # cargo side 1
            VisionSim.Target(23.75, 27 - 11.25, 0, 180),  # cargo side 2
            VisionSim.Target(25.5, 27 - 11.25, 0, 180),  # cargo side 3
            VisionSim.Target(17.5, 27 - 2, 90 + 29,
                             90 + 29 + 180),  # rocket fromt
            VisionSim.Target(21, 27 - 2, -90 - 29,
                             -90 - 29 + 180),  # rocket back
            VisionSim.Target(18.5, 14.5, 90, 270),  # front right cargo
        ]

        self.vision = VisionSim(
            targets,
            61.0,  #camera FOV
            .1,  #close limit (ft)
            10,  #far limit (ft)
            15,  #update rate (hz)
            physics_controller=physics_controller)