コード例 #1
0
ファイル: tasks.py プロジェクト: chenzhikuo1/OCR-Python
 def __init__(self, env):
     NoRewardTask.__init__(self, env)
     self.rewardSensor = ["EdgesSumReal"]
     self.obsSensors = ["EdgesReal", "EdgesTarget"]
     self.inDim = len(self.getObservation())
     self.plotString = [
         "World Interactions", "Size", "Reward on Growing Task"
     ]
     self.env.mySensors = sensors.Sensors(self.obsSensors +
                                          self.rewardSensor)
     self.epiLen = 200  #suggested episode length
コード例 #2
0
ファイル: tasks.py プロジェクト: veronikaKochugova/DropWeak
 def __init__(self, env):
     NoRewardTask.__init__(self, env)
     self.rewardSensor = ["DistToOrigin"]
     self.obsSensors = [
         "EdgesTarget", "EdgesReal", "VerticesContact", "Time"
     ]
     self.inDim = len(self.getObservation())
     self.plotString = [
         "World Interactions", "Distance", "Reward on Walking Task"
     ]
     self.env.mySensors = sensors.Sensors(self.obsSensors +
                                          self.rewardSensor)
     self.epiLen = 2000  #suggested episode length
コード例 #3
0
ファイル: tasks.py プロジェクト: veronikaKochugova/DropWeak
 def __init__(self, env):
     NoRewardTask.__init__(self, env)
     self.rewardSensor = ["VerticesMinHight"]
     self.obsSensors = ["EdgesTarget", "EdgesReal", "VerticesContact"]
     self.inDim = len(self.getObservation())
     self.plotString = [
         "World Interactions", "Distance", "Reward on Walking Task"
     ]
     self.env.mySensors = sensors.Sensors(self.obsSensors +
                                          self.rewardSensor)
     self.epiLen = 500
     self.maxReward = 0.0
     self.maxSpeed = self.dif / 10.0
コード例 #4
0
    def __init__(self, gpo_count=2):
        self.sensors = sensors.Sensors()
        self.sensorlist = self.sensors.get_ids(
        )  #after initialisation then sensor can't be added until restart
        self.set_threads()
        self.gpo_count = gpo_count  #max number of gpos is 7 atm

        #create separate instances of GPO. Not sure if this is the right thing to do....
        for gpo_num in range(self.gpo_count):
            self.gpo.append(gpo.GPO(gpo_num))
            self.control_sensor.append(None)
            self.setpoints.append({})
            self.setpoints[gpo_num]['temp_on'] = 15.0
            self.setpoints[gpo_num]['temp_off'] = 21.0
コード例 #5
0
ファイル: tasks.py プロジェクト: veronikaKochugova/DropWeak
 def __init__(self, env):
     WalkTask.__init__(self, env)
     self.rewardSensor = ["Target"]
     self.obsSensors.append("Target")
     self.inDim = len(self.getObservation())
     self.plotString = [
         "World Interactions", "Distance", "Reward on Target Approach Task"
     ]
     self.env.mySensors = sensors.Sensors(self.obsSensors)
     self.env.mySensors.sensors[4].targetList = [array([160.0, 0.0, 0.0])]
     if self.env.hasRenderInterface():
         self.env.getRenderInterface(
         ).target = self.env.mySensors.sensors[4].targetList[0]
     self.epiLen = 2000
コード例 #6
0
def main():
    global noise
    sensor = sensors.Sensors()
    display = disp.Display(rotation=270)

    t_logger = threading.Thread(target=retardar_logger)
    t_logger.start()

    for v in variables:
        values[v] = np.ones(160)

    noise = noise * 60

    delay = 0.5  # Debounce the proximity tap
    ultimo_toque = 0  # cuando se hizo el ultimo toque

    # The main loop
    try:
        while True:
            proximity = sensor.get_proximity()

            if proximity > 1500 and time.time() - ultimo_toque > delay:
                ultimo_toque = time.time()
                # display.prender_apagar() Lo comento porque tengo activado el por luminocidad

            brillo_prom = values['light'][-60:].mean()
            display.prender_apagar_por_luminocidad(brillo_prom)

            # Everything on one screen
            raw_data = sensor.get_temperature()
            save_data(0, raw_data)

            raw_data = sensor.get_pressure()
            save_data(1, raw_data)

            raw_data = sensor.get_humidity()
            save_data(2, raw_data)

            if sensor.get_proximity() < 10:
                raw_data = sensor.get_lux()
            else:
                raw_data = 1
            save_data(3, raw_data)

            display.display_everything(variables, values, units)

    # Exit cleanly
    except KeyboardInterrupt:
        sys.exit(0)
コード例 #7
0
ファイル: clf_predict.py プロジェクト: rodrigost23/automailx
def main():
    p = Predict()
    s = sensors.Sensors()
    data = None
    try:
        while True:
            data = s.read() or data
            y_pred = p.predict(data)
            print("\r%s" % data, end='')
            if y_pred is None:
                print(" " * 25, end='')
            else:
                print("  Prediction: %s" % (y_pred) + " " * 5, end='')

    except KeyboardInterrupt:
        print("Interrupted." + " " * 36)
コード例 #8
0
 def __init__(self, startPos, startDirection):
     self.cam = camera.Camera()
     self.sens = sensors.Sensors()
     self.enc = encoders.Encoders()
     self.serv = servos.Servos()
     self.centeredInSquareLength = 7.5
     self.sideDistance = 7.05
     self.distanceBetweenSquares = 18
     self.speed = 7
     self.detectWallDistance = 15
     self.nav = navigate.Navigate(startPos, startDirection)
     self.useColor = False
     self.colorList = []
     self.foundColorList = []
     self.foundColorNorth = False
     self.foundColorEast = False
     self.foundColorSouth = False
     self.foundColorWest = False
コード例 #9
0
def start_iotly():
    """Starting..."""
    conf = config.load_config()

    mqttInstance = MqttHandler.MqttHandler(conf)
    mqttInstance.start()

    sensors = Sensors.Sensors(conf, mqttInstance)
    sensors.start()

    try:
        log.info("Ready.")
        while 1:
            time.sleep(100)
    except KeyboardInterrupt:
        mqttInstance.stop()
        sensors.stop()
        log.info("Quit")
コード例 #10
0
ファイル: main.py プロジェクト: joshjerred/AOS
    def __init__(self):
        self.logFileName = "./data/system/" + datetime.today().strftime(
            '%Y-%m-%d---%H-%M-%S') + ".txt"

        self.config = configparser.ConfigParser()
        self.config.read(configLocation)

        self.opMode = 'startup'

        self.sensors = sensors.Sensors()

        callsign = self.config['COMMUNICATION']['Callsign']
        self.communication = communication.Coms(callsign)

        self.previousAltitude_checkLanded = 0
        self.landed = False
        self.previousAltitude_checkDescending = 0
        self.descending = False
コード例 #11
0
def main():
    #Initialize the time
    #rtc = machine.RTC()
    #rtc.init((2014, 5, 1, 4, 13, 0, 0, 0))
    # sck = connect_to_lora()
    sck = 0

    sensor = sensors.Sensors()

    day = {}
    day['date'] = []

    # Every 24 hours, do a check on battery, light, acceleration and how much storage is left
    # while(True):
    # check_status(sck)
    # time.sleep(30)

    sensor.movement_detection(sensor, day)
コード例 #12
0
ファイル: agent.py プロジェクト: dinosaurioinvisible/r66yx1
 def __init__(self, x=100, y=100, o=0\
 , genotype=None\
 , energy=2000):
     # init
     self.x = x
     self.y = y
     self.o = o
     # from genotype
     self.genotype = genotype
     self.energy = self.genotype.energy
     self.r = self.genotype.r
     self.max_speed = self.genotype.max_speed
     self.wheels_sep = self.genotype.r
     self.feed_range = self.genotype.feed_range
     self.feed_rate = self.genotype.feed_rate
     self.com = np.random.rand()
     # modules
     self.sensors = sensors.Sensors(s_points=self.genotype.s_points,
                                    ir_angle=self.genotype.ir_angle,
                                    ray_length=self.genotype.ray_length,
                                    beam_spread=self.genotype.beam_spread,
                                    olf_angle=self.genotype.olf_angle,
                                    olf_range=self.genotype.olf_range,
                                    aud_angle=self.genotype.aud_angle,
                                    aud_range=self.genotype.aud_range)
     self.net = evol_net.RNN(n_input=self.genotype.n_in,
                             n_hidden=self.genotype.n_hidden,
                             n_output=self.genotype.n_out,
                             upper_t=self.genotype.ut,
                             lower_t=self.genotype.lt,
                             veto_t=self.genotype.vt,
                             W=self.genotype.W,
                             V=self.genotype.V)
     self.genotype.W = self.net.W
     self.genotype.V = self.net.V
     # SM state = [ir1, ir2, olf, aud1, aud2, e]
     self.state = None
     # data
     self.states = []
     self.positions = []
     self.body_states = []
     self.feeding_states = []
コード例 #13
0
    def __init__(self, address, port, password):
        self.address = address
        self.port = port
        self.password = password

        self.Server = Sockets.HandleSockets(self.address,
                                            self.port,
                                            self.password,
                                            mode="s",
                                            on_message=self.on_message)
        self.Server.start()

        self.Sensors = sensors.Sensors(50)

        flight_maneuvers.arm()

        self.controller = Controller.SimpleController()

        self.loop = DoEvery(1 / 50, self.update)
        self.loop.start()

        self.input_loop()
コード例 #14
0
ファイル: SensorNode.py プロジェクト: Minx0512/SensorNode
class SensorNode:
    """SensorNode class:
 
     main code to execute
 
 """

    nodeAddresses = ["A0:A0:A0:A0:A0"]
    port = "/dev/ttyAMA0"
    baudrate = 9600

    sens = sensors.Sensors(port, baudrate)

    for nodeAddr in nodeAddresses:
        #print(nodeAddr)
        sens.SetNodeAddress(nodeAddr)
        sens.Update()
        sens.InterpretResponse()
        print(sens)
        sens.spawnSensors()

    for sob in sens.sensorObjList:
        #print(sob)
        thr.append(Thread(UpdateThreads, (sob)))

    while 1:

        try:
            pass

        except (KeyboardInterrupt):
            for t in thr:
                t.join()
            for s in sens.sensorObjList:
                s.signal = 0
            sleep(1)
            sys.exit()
コード例 #15
0
def FloorShopManager():
    #  Declare variables
    op = operators.Operators()
    sen = sensors.Sensors(op)
    arm = armController.ArmController(op)
    inv = inventory.Inventory(op, sen) 
    # Loop through process of completing orders on the shop floor
    while not rospy.is_shutdown():
        # Listen for orders
        if len(op.currentOrders) > 0:
            # There are orders to be processed
            order = orders.Orders(op.currentOrders[0])
            agv = 'agv1'
            tray = 'Left'
            # loop through each kit and process
            for kit in order.kits:
                # Get type of parts we need to add to tray
                for part in kit['Objects']:
                    # Set procede to false
                    proceed = False
                    # Check whether this part has successfully being placed on tray and should procede
                    while proceed == False:
                        # Return part location from inventory
                        inventoryPart = False
                        # Set desired pose of part in tray
                        desiredPose = part.pose
                        # Wait for step to complete
                        while inventoryPart == False:
                            # Loop and wait for part to be found
                            inventoryPart = inv.getPart(part.type)
                            # Get part pose
                            rospy.loginfo("Part: " + str(inventoryPart))
                            rospy.loginfo("Desired Pose: " + str(desiredPose))
                            # Check if found, if not wait and try again
                            if inventoryPart == False:
                                # Wait
                                rospy.sleep(1.0)
                                # Scan inventory and update (this is really only for later when new parts
                                # are being actively placed on belt)
                                inv.updateInventory()
                        print "=========== Transfer Part: " + str(inventoryPart['Type'])
                        while op.gripperStateData.attached != True:
                            # Move arm to above part position
                            pose = arm.transformPose(inventoryPart['Pose'], [-0.2,0,0], [0,0,0,0], 'logical_camera_1_frame')
                            arm.poseTarget(pose)
                            rospy.loginfo("Arm Pose for part" + str(pose))
                            # Plan
                            arm.planPose()
                            # Execute plan
                            arm.executePlan()
                            # Wait
                            rospy.sleep(1.5)
                            # Move arm into contact with part
                            pose = arm.transformPose(inventoryPart['Pose'], [-0.02,0,0], [0,0,0,0], 'logical_camera_1_frame')
                            arm.poseTarget(pose)
                            # Plan
                            arm.planPose()
                            # Execute plan
                            arm.executePlan()
                            # Wait
                            rospy.sleep(0.5)
                            # Activate gripper first attempt
                            arm.gripper(True)
                            # Check
                            if op.gripperStateData.attached != True:
                                # Gripper failed
                                print "Gripper attempt failed!"
                                # Move arm into contact with part
                                pose = arm.transformPose(inventoryPart['Pose'], [-0.01,0,0], [0,0,0,0], 'logical_camera_1_frame')
                                arm.poseTarget(pose)
                                arm.planPose()
                                #raw_input("Press Enter to continue...")
                                arm.executePlan()
                                # Wait
                                rospy.sleep(0.5)
                                # Set count
                                count = 0
                                # Activate gripper in loop for 1.0 second
                                while op.gripperStateData.attached != True and count < 5:
                                    arm.gripper(True)
                                    # Update count and wait
                                    count += 1
                                    # Wait
                                    rospy.sleep(0.2)
                            while arm.armState() == 'Moving':
                                # Hold here
                                pass
                        #raw_input("Press Enter to continue...")
                        # Wait
                        rospy.sleep(1.0)
                        while arm.armState() == 'Moving':
                            # Hold here
                            pass
                        # Return arm to holding position
                        arm.handlePart()
                        # Wait 
                        rospy.sleep(1.5)
                        while arm.armState() == 'Moving':
                            # Hold here
                            pass
                        #raw_input("Press Enter to continue...")
                        # Move part to desired tray location
                        arm.moveToTray(tray)
                        #raw_input("Press Enter to continue...")
                        # Wait 
                        rospy.sleep(0.5)
                        while arm.armState() == 'Moving':
                            # Hold here
                            pass
                        # Move part to desired tray location
                        arm.moveOverTray(tray)
                        #raw_input("Press Enter to continue...")
                        # Wait 
                        rospy.sleep(0.5)
                        while arm.armState() == 'Moving':
                            # Hold here
                            pass
                        # Get tray pose
                        trayPose = arm.trayPose(agv + '_load_point_frame')
                        if agv == 'agv1':
                            # Check desired pose values
                            if desiredPose.position.x > 0.12:
                                # Lower value
                                desiredPose.position.x = 0.1
                            if desiredPose.position.y > 0.12:
                                # Lower value
                                desiredPose.position.y = 0.055
                            if desiredPose.position.x < -0.12:
                                # Lower value
                                desiredPose.position.x = -0.1
                        elif agv == 'agv2':
                            # Check desired pose values
                            if desiredPose.position.x > 0.09:
                                # Lower value
                                desiredPose.position.x = 0.055
                            if desiredPose.position.y < -0.12:
                                # Lower value
                                desiredPose.position.y = -0.055
                            if desiredPose.position.x < -0.12:
                                # Lower value
                                desiredPose.position.x = -0.1
                        # Offset to desired pose of part on tray
                        trayPose.pose.position.x += desiredPose.position.x
                        trayPose.pose.position.y += desiredPose.position.y
                        trayPose.pose.position.z += (desiredPose.position.z + 0.3)
                        # Set orinetation, currently just use these values, not sure how to get correct orientation from world yet
                        trayPose.pose.orientation.x = 0 
                        trayPose.pose.orientation.y = 0.917 
                        trayPose.pose.orientation.z = 0
                        trayPose.pose.orientation.w = 0.398
                        # Place part in correct position on tray according to order
                        arm.poseTarget(trayPose)
                        arm.planPose()
                        arm.executePlan()
                        # Wait 
                        rospy.sleep(0.5)
                        while arm.armState() == 'Moving':
                            # Hold here
                            pass
                        # Check whether we should procede
                        if op.gripperStateData.attached != True:
                            # Part has fallen off
                            print "Gripper is empty, Oh My!!"
                            proceed = False
                        else:
                            # Successful
                            proceed = True
                        # Inactivate gripper
                        arm.gripper(False)
                        # Wait 
                        rospy.sleep(0.5)
                        while arm.armState() == 'Moving':
                            # Hold here
                            pass
                        # Remove part from inventory
                        inv.removePart(inventoryPart)
                        # Retract arm
                        arm.moveToTray(tray)
                        # Wait 
                        rospy.sleep(0.5)
                        while arm.armState() == 'Moving':
                            # Hold here
                            pass
                        # Return arm to holding position
                        arm.handlePart()
                        # Wait 
                        rospy.sleep(0.5)
                        while arm.armState() == 'Moving':
                            # Hold here
                            pass
                        # Move over inventory
                        arm.moveOverInventory()
                        # Wait for some reason otherwise moveit screws up
                        rospy.sleep(1.0)
                        # Update inventory
                        inv.buildInventory()
                        
                        
            # Send AGV away
            print "Sending AGV away,..."
            if agv == 'agv1':
                # Submit 1st agv
                op.submitAGV(0, 'order_0')
            else:
                 # Submit 2nd agv
                op.submitAGV(1, 'order_0')
        else:
            # Do nothing and wait
            pass
コード例 #16
0
import paho.mqtt.client as mqtt
import datetime
import time
import ssl
import sensors
import json

host = "node02.myqtthub.com"
port = 1883
clean_session = True
client_id = "magnetometers"
user_name = "*****@*****.**"
password = "******"
# The sensor module that collects the data
magnetometers = sensors.Sensors()


def on_connect(client, userdata, flags, rc):
    """ Callback called when connection/reconnection is detected """
    print("Connect %s result is: %s" % (host, rc))

    if rc == 0:
        client.connected_flag = True
        print("connected OK")
        # Publish and retain a message describing magnetometers used to detect chicken with magnets attached to their legs in beds
        sensor = {
            "id": {2, 3},
            "name": {"SenseHat Magnetometer", "HMC5883L Magnetometer"},
            "type": "magnetometer",
            "isHostedBy": {
                "location": "Aberdeen"
コード例 #17
0
ファイル: ariac_qual_2.py プロジェクト: cdrwolfe/ariac_qual_2
def FloorShopManager():
    #  Declare variables
    op = operators.Operators()
    sen = sensors.Sensors(op)
    arm = armController.ArmController(op)
    inv = inventory.Inventory(op, sen) 
    # Loop through process of completing orders on the shop floor
    while not rospy.is_shutdown():
        # Listen for orders
        if len(op.currentOrders) > 0:
            # There are orders to be processed
            order = orders.Orders(op.currentOrders[0])
            agv = 'agv1'
            tray = 'Left'
            # loop through each kit and process
            for kit in order.kits:
                # Get type of parts we need to add to tray
                for part in kit['Objects']:
                    # Set procede to false
                    proceed = False
                    # Check whether this part has successfully being placed on tray and should procede
                    while proceed == False:
                        # Return part location from inventory
                        inventoryPart = None
                        # Set desired pose of part in tray
                        desiredPose = part.pose
                        # Update inventory
                        inv.updateInventory()
                        # Wait for step to complete
                        while inventoryPart is None:
                            # Loop and wait for part to be found
                            inventoryPart = inv.getPart(part.type)
                            # Get part pose
                            #rospy.loginfo("Part: " + str(inventoryPart))
                            #rospy.loginfo("Desired Pose: " + str(desiredPose))
                            # Check if found, if not wait and try again
                            if inventoryPart is None:
                                # Wait
                                rospy.sleep(1.0)
                                # Scan inventory and update (this is really only for later when new parts
                                # are being actively placed on belt)
                                inv.updateInventory()
                            # Check belt
                            
                        print "=========== Transfer Part: " + str(inventoryPart['Type'])
                        print "=========== Transfer Source: " + str(inventoryPart['Source'])
                        while op.gripperStateData.attached != True:
                            # Move over inventory
                            arm.moveOverInventory()
                            # Wait
                            rospy.sleep(1.0)
                            # Move arm to above part position
                            print 'Move arm to part'
                            pose = arm.transformPose(inventoryPart['Pose'], [0,0,0.2], [0,0,0,0], inventoryPart['Source'] + '_frame')
                            arm.poseTarget(pose)
                            #rospy.loginfo("Arm Pose for part" + str(pose))
                            # Plan
                            arm.planPose()
                            # Execute plan
                            arm.executePlan()
                            # Wait
                            rospy.sleep(1.5)
                            # Move arm into contact with part
                            pose = arm.transformPose(inventoryPart['Pose'], [0.0,0,0.02], [0,0,0,0], inventoryPart['Source'] + '_frame')
                            arm.poseTarget(pose)
                            # Plan
                            arm.planPose()
                            # Execute plan
                            arm.executePlan()
                            # Wait
                            rospy.sleep(0.5)
                            # Activate gripper first attempt
                            arm.gripper(True)
                            # Check
                            if op.gripperStateData.attached != True:
                                # Gripper failed
                                print "Gripper attempt failed!"
                                # Move arm into contact with part
                                pose = arm.transformPose(inventoryPart['Pose'], [0.0,0,0.01], [0,0,0,0], inventoryPart['Source'] + '_frame')
                                arm.poseTarget(pose)
                                arm.planPose()
                                arm.executePlan()
                                # Wait
                                rospy.sleep(0.5)
                                # Set count
                                count = 0
                                # Activate gripper in loop for 1.0 second
                                while op.gripperStateData.attached != True and count < 5:
                                    arm.gripper(True)
                                    # Update count and wait
                                    count += 1
                                    # Wait
                                    rospy.sleep(0.2)
                            while arm.armState() == 'Moving':
                                # Hold here
                                pass
                            # Wait
                            rospy.sleep(1.0)
                            # Return arm to holding position
                            arm.handlePart()
                            # Wait 
                            rospy.sleep(1.5)
                            while arm.armState() == 'Moving':
                                # Hold here
                                pass
                            if op.gripperStateData.attached != True:
                                # Gripper failed
                                print "Gripper failed part has fallen!"
                                # Reset inventory part and find a new one
                                inventoryPart = None
                                # are being actively placed on belt)
                                inv.updateInventory()   
                                # Find part
                                while inventoryPart is None:
                                    # Loop and wait for part to be found
                                    inventoryPart = inv.getPart(part.type)
                                    # Check if found, if not wait and try again
                                    if inventoryPart is None:
                                        # Wait
                                        rospy.sleep(1.0)
                                        # Scan inventory and update (this is really only for later when new parts
                                        # are being actively placed on belt)
                                        inv.updateInventory()                        
                        # Move part to desired tray location
                        arm.moveToTray(tray)
                        # Wait 
                        rospy.sleep(0.5)
                        while arm.armState() == 'Moving':
                            # Hold here
                            pass
                        # Move part to desired tray location
                        arm.moveOverTray(tray)
                        # Wait 
                        rospy.sleep(0.5)
                        while arm.armState() == 'Moving':
                            # Hold here
                            pass
                        # Get tray pose
                        trayPose = arm.trayPose(desiredPose, 'logical_camera_5_kit_tray_1_frame', inv)
                        trayPose.pose.position.z += 0.3
                        # Place part in correct position on tray according to order
                        arm.poseTarget(trayPose)
                        arm.planPose()
                        arm.executePlan()
                        # Wait 
                        rospy.sleep(0.5)
                        while arm.armState() == 'Moving':
                            # Hold here
                            pass
                        # Check whether we should procede
                        if op.gripperStateData.attached != True:
                            # Part has fallen off
                            print "Gripper is empty, Oh My!!"
                            proceed = False
                        else:
                            # Successful
                            proceed = True



                        # If our part fell off, retrieve from tray and place again
                        if (proceed == False):
                            # Move part to desired tray location
                            arm.moveOverTray(tray)
                            # Wait 
                            rospy.sleep(0.5)
                            while arm.armState() == 'Moving':
                                # Hold here
                                pass
                            # Attempt to pick up part, first get part on tray
                            fallenPart = arm.getFallenTrayPart('logical_camera_5_kit_tray_1_frame', inv)
                            # Offset z axis
                            fallenPart.pose.position.z += 0.02
                            arm.poseTarget(fallenPart)
                            # Plan
                            arm.planPose()
                            # Execute plan
                            arm.executePlan()
                            # Wait
                            rospy.sleep(1.5)
                            # Activate gripper first attempt
                            arm.gripper(True)
                            # Check
                            if op.gripperStateData.attached != True:
                                # Gripper failed
                                print "Gripper attempt failed!"
                                # Move arm into contact with part
                                fallenPart.pose.position.z -= 0.01
                                arm.poseTarget(fallenPart)
                                arm.planPose()
                                arm.executePlan()
                                # Wait
                                rospy.sleep(0.5)
                                # Set count
                                count = 0
                                # Activate gripper in loop for 1.0 second
                                while op.gripperStateData.attached != True and count < 5:
                                    arm.gripper(True)
                                    # Update count and wait
                                    count += 1
                                    # Wait
                                    rospy.sleep(0.2)
                            while arm.armState() == 'Moving':
                                # Hold here
                                pass                       
                            # Move part to desired tray location
                            arm.moveOverTray(tray)
                            # Wait 
                            rospy.sleep(0.5)
                            while arm.armState() == 'Moving':
                                # Hold here
                                pass
                             # Get tray pose
                            trayPose = arm.trayPose(desiredPose, 'logical_camera_5_kit_tray_1_frame', inv)
                            trayPose.pose.position.z += 0.3
                            # Place part in correct position on tray according to order
                            arm.poseTarget(trayPose)
                            arm.planPose()
                            arm.executePlan()
                            # Wait 
                            rospy.sleep(0.5)
                            while arm.armState() == 'Moving':
                                # Hold here
                                pass
                            # Check whether we should procede
                            if op.gripperStateData.attached != True:
                                # Part has fallen off
                                print "Gripper is empty, Oh My!!"
                                proceed = False
                            else:
                                # Successful
                                proceed = True



                            
                        # Inactivate gripper
                        arm.gripper(False)
                        # Wait 
                        rospy.sleep(0.5)
                        while arm.armState() == 'Moving':
                            # Hold here
                            pass
                        # Remove part from inventory
                        #inv.removePart(inventoryPart)
                        # Retract arm
                        arm.moveToTray(tray)
                        # Wait 
                        rospy.sleep(0.5)
                        while arm.armState() == 'Moving':
                            # Hold here
                            pass
                        # Return arm to holding position
                        arm.handlePart()
                        # Wait 
                        rospy.sleep(0.5)
                        while arm.armState() == 'Moving':
                            # Hold here
                            pass
                        # Move over inventory
                        arm.moveOverInventory()
                        # Wait for some reason otherwise moveit screws up
                        rospy.sleep(1.0)
                        # Update inventory
                        inv.buildInventory()        
                # Send AGV away
                print "Sending AGV away,..."
                # Set current agv state
                state = op.getAGVState(1)
                # Check
                if agv == 'agv1':
                    # Submit 1st agv
                    op.submitAGV(0, 'order_0')
                    rospy.sleep(0.5)
                    # Wait for return
                    while state != op.getAGVState(1):
                        # Hold here and wait for agv to return
                        if state == op.getAGVState(1):
                            print "AGV 1 back, restart!,.."
                            break
                    # Remove order
                    op.removeOrder(order.ID)
                else:
                    # Submit 2nd agv
                    op.submitAGV(1, 'order_0')
                    # Wait for return
                    while state != op.getAGVState(2):
                        # Hold here and wait for agv to return
                        if state == op.getAGVState(2):
                            print "AGV 2 back, restart!,.."
                            break
                    # Remove order
                    op.removeOrder(order.ID)
                print "Next kit?"
        else:
            # Do nothing and wait
            print "No Orders!!"
            op.endCompetition()
            rospy.sleep(2.5)
コード例 #18
0
import config
import db
import io_data
import sensors
import dashboard
import resources
import ambient
import random

import socket

from tendo import singleton
from utils import log_stderr, os_async_command

io_status = io_data.Status()
sensor = sensors.Sensors()
lcd = dashboard.Dashboard()
ambient = ambient.Ambient()

TEST_INIT_TEMP = 20.0
TEST_DELTA_EXT_INT_COEFF = .001
TEST_DELTA_THERMO_ON_TEMP_C = .03
current_status = ''
sig_command = False
is_status_changed = True

initial_time = datetime.datetime.now()
sig_switch_timeout = [datetime.datetime.now()]*len(config.BUTTONS)

temp = temp_avg_accu = temp_avg_sum = 0.0
temp_avg_counter = 0
コード例 #19
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('file',
                        nargs='?',
                        default=None,
                        help="Name of the file to save")
    parser.add_argument('-d',
                        '--duration',
                        type=int,
                        nargs='?',
                        default=None,
                        help="Duration to record in seconds")
    parser.add_argument('-a',
                        '--activities',
                        type=int,
                        nargs='?',
                        default=1,
                        help="Number of activities to record")
    args = parser.parse_args()
    filename = args.file
    duration = args.duration
    activities = args.activities

    if filename is None:
        i = 1
        while os.path.exists("data/data%d.csv" % i):
            i += 1
        filename = "data/data%d.csv" % i

    # Create directory if it doesn't exist
    if not os.path.exists(os.path.dirname(filename)):
        try:
            os.makedirs(os.path.dirname(filename))
        except OSError as exc:  # Guard against race condition
            if exc.errno != errno.EEXIST:
                raise

    # Start reading from serial port
    s = sensors.Sensors()
    print("Press Ctrl+C to terminate.")

    i = 0
    while i < activities:

        print("\n ACTIVITY %d:" % (i + 1))
        start_time = None
        total_time = None
        record_time = 0
        reply = None
        dq = deque()

        while duration is None or start_time is None or total_time <= duration:
            try:
                data = s.read()
                if data is None:
                    continue
                elif start_time is None:
                    start_time = time.time()
                    record_time = start_time - 0.5

                total_time = time.time() - start_time

                print("\r[%ds] " % (total_time), end='')
                print(str(data) + " " * 10, end='')

                if time.time() - record_time >= 0.5:
                    record_time = time.time()
                    dq.append({
                        'time': total_time,
                        'data': sensors.SensorData(*data.data())
                    })
                if dq and total_time - dq[0][
                        'time'] >= 1:  # if time more than 1 second
                    save_data = data - dq.popleft()['data']
                    with open(filename, "a", newline='') as csv_file:
                        csv_writer = csv.writer(csv_file)
                        csv_writer.writerow([i] + list(save_data.data()))
                    print("    Saved %s      " % (save_data), end='')
            except KeyboardInterrupt:
                print()
                reply = input("\n\n(C)ontinue, (q)uit, or next (a)ctivity?" +
                              " " * 100)
                if reply in ('a', 'A', 'q', 'Q'):
                    break
                else:
                    start_time = time.time()
                    dq.clear()
                    continue

        print("\r[%ds] " % (total_time), end='')
        if reply in ('q', 'Q'):
            break

        i += 1
        if not i >= activities and not (reply == "a" or reply == "A"):
            input("Press ENTER to continue")
コード例 #20
0
ファイル: robot.py プロジェクト: greygarth-club/robot
import wheels
import sensors
from time import sleep

#wheels.turn_left(0.2)
#wheels.forward(0.2)
#wheels.forward(0.2)
#wheels.forward(0.2)
#wheels.backward(0.2)
#wheels.turn_right(0.2)

sensor = sensors.Sensors(15, 14)
wheels = wheels.Wheels(27, 22, 25, 24, sensor)
wheels.setSpeed(0.7)
wheels.calibrate(1.1)
for i in range(10):
    wheels.forwardUntilClose(40)
    wheels.backwardUntilFurther(60)
コード例 #21
0
#    def createTableWaypoints():
#        try:
#            curs.execute('''CREATE TABLE IF NOT EXISTS Waypoint (Number int, Latitude text, Longitude text, Completed boolean)''')
#        except:
#            print("Table Waypoint not created")

#    #below is run once per second
#    def dataLog(time, speed, rudder, aftWin, forWin):
#        curs.execute("INSERT INTO stocks VAlUES  (')")

#Creating single objects for each class

rudderMain = rudder.Rudder(0)
sailMain = SailControl.sailControl(0, 0)
sensor = sensors.Sensors(0, 0, 0, 0)


class actionThreading:
    def threadStart():
        print("Threads Started")
        threading.Thread(target=startSteer).start()

    def startSteer():
        print("Rudder Steering Initialized")
        while True:
            rudderMain.Steer()  #get current heading, target heading)
            time.sleep(.1)

    def updateGPS():
        #gets gps data and updates the current craft heading
コード例 #22
0
from xmlrpc_server import XMLRPC_Server
import signal
import sys
import time
import logger

print("Starting atlantis service...")
dpy = display.Display()
dpy.printMessage("Initializing...", 0)

arduino_comm = arduinocomm.ArduinoComm()

leds = leds.RGBLEDStrip(GlobalConfig.leds_r, GlobalConfig.leds_g, GlobalConfig.leds_b)
leds.configPWM()

sensors = sensors.Sensors(arduino_comm)

relays = relay.RelayModule( GlobalConfig.relay_pins )
for dev in GlobalConfig.relay_devices:
  relays.registerDevice(dev[0], dev[1])

stream = streaming.Stream()

# Wait some seconds, to wait for the network to be completely configured before trying to start the server
time.sleep(10)
xmlrpc_server = XMLRPC_Server(relays, stream, sensors, leds)

rot = rotary.RotaryEncoder()

main_menu = menu.Menu(rot, dpy, relays, stream)
コード例 #23
0
ファイル: main.py プロジェクト: raspdrone/raspdrone
import sqlite3
import sensors
import dataxml
from flask import Flask, render_template, jsonify

app = Flask(__name__, template_folder="web", static_folder="web")
sensors = sensors.Sensors()


@app.route('/')
def index():
    return render_template("index.html")


@app.route('/get_data')
def get_data():
    conn = sqlite3.connect("data.db")
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM mesures")
    lines = cursor.fetchall()

    data = []
    for line in lines:
        new_data = {
            "id": line[0],
            "pression": round(line[3], 2),
            "temperature": round(line[2], 2),
            "timestamp": line[1],
            "altitude": round(line[4], 2)
        }
        data.append(new_data)
コード例 #24
0
    Arguments:
        agrs {float} -- value of arg
    """


# create the Server object and start it
Server = Sockets.HandleSockets("localhost",
                               1337,
                               "admin",
                               mode="s",
                               on_message=on_message)

Server.start()

# create sensor thread
Sensors = sensors.Sensors(send=send_telemetry)
Sensors.isDaemon = True
Sensors.start()

# get user input
try:
    while running:
        i = input("\r-> ")
        # parse for commands
        if i == "q":
            Server.close_all()
            Sockets.should_be_running = False
            exit()
            Server.join()
            print("server joined")
            running = False
コード例 #25
0
ファイル: eaServer.py プロジェクト: Ongoza/eaction
        # (r"/images/(.*)",tornado.web.StaticFileHandler, {"path": "static/images"},),
        # (r"/js/(.*)",tornado.web.StaticFileHandler, {"path": "static/js"},)
    ],
    debug=False,
    static_hash_cache=False)

if __name__ == "__main__":
    listDirs = ['static/logs']
    for directory in listDirs:
        if not os.path.exists(directory):
            print("create new dir " + directory)
            os.makedirs(directory)
    tornado.options.parse_command_line()
    # signal.signal(signal.SIGINT, application.signal_handler)
    try:
        suit = sensors.Sensors(options.host, options.port)
        suit.isDaemon = True
        suit.start()
        application.listen(options.port)
        logger.info("start websocketServer on port: " + str(options.port))
        # tornado.ioloop.PeriodicCallback(application.try_exit, 1000).start()
        logger.info("Press Ctrl-C for stop the server.")
        tornado.autoreload.watch(os.path.join(root_dir, "eaServer.py"))
        tornado.autoreload.watch(os.path.join(root_dir, "index.html"))
        for dir, _, files in os.walk('static/js'):
            for f in files:
                if not f.startswith('.'):
                    #logger.debug(dir + '/' +f)
                    tornado.autoreload.watch(dir + '/' + f)
        logger.debug("start Sensors thread")
        tornado.ioloop.IOLoop.instance().start()
コード例 #26
0
ファイル: experiment.py プロジェクト: liffiton/ATLeS
    def __init__(self, conf, args):
        self._conf = conf
        self._args = args

        # Create Sensors
        if sensors is not None:
            self._sensors = sensors.Sensors()
            self._sensors.begin()
        else:
            self._sensors = None
            logging.warn("sensors module not loaded.")

        # Background image manager
        if config.HAS_DISPLAY:
            self._display = display.Display()

        # Evaluate experiment setup expression
        self._control = eval(conf['experiment']['controller'])
        self._stim = eval(conf['experiment']['stimulus'])

        trigger_exp = conf['experiment']['trigger']
        trigger_code = compile(trigger_exp, '<string>', 'eval')

        def _trigger_func(pos_tank):
            xpos, ypos = pos_tank
            return eval(trigger_code)

        self._trigger = _trigger_func

        wiring.IR_on()
        if 'ambient_light_level' in conf['experiment']:
            wiring.visible_on(conf['experiment']['ambient_light_level'])

        # setup Stream (*after* starting stimulus, visible light bar, and IR light bar)
        if args.vidfile:
            self._stream = tracking.Stream(args.vidfile)
            args.width = self._stream.width
            args.height = self._stream.height
        else:
            params = {}
            self._stream = tracking.Stream(0,
                                           conf=conf['camera'],
                                           params=params)

        # Tank bounds in pixel coordinates
        # NOTE: tank Y coordinate is inverted w.r.t. pixel coordinates, hence (1.0 - ...).
        self._tx1 = int(self._stream.width *
                        self._conf['camera']['tank_min_x'])
        self._tx2 = int(self._stream.width *
                        self._conf['camera']['tank_max_x'])
        self._ty1 = int(self._stream.height *
                        (1.0 - self._conf['camera']['tank_max_y']))
        self._ty2 = int(self._stream.height *
                        (1.0 - self._conf['camera']['tank_min_y']))

        # Vidfile stats, if relevant
        if self._stream.sourcetype == 'file':
            # Get frame count, fps for calculating frame times
            self._framecount, self._fps = self._stream.get_video_stats()
            logging.info("Video file: %d frames, %d fps", self._framecount,
                         self._fps)

        # Tracking: Simple
        tank_width = self._tx2 - self._tx1
        tank_height = self._ty2 - self._ty1
        self._track = tracking.VelocityTracker(w=tank_width, h=tank_height)

        # Frame processing (though these feed into the Tracker, some also rely on its position estimate)
        filt_bgsub = tracking.TargetFilterBGSub()
        filt_bright = tracking.TargetFilterBrightness()
        filt_dist = tracking.TargetFilterDistance(self._track,
                                                  maxdist=int(tank_width *
                                                              0.1))
        # First try the AND of both filters' outputs;
        # then the background subtractor alone;
        # then the brightness filter alone but with a distance limit
        #   (brightness should only be needed if fish isn't moving,
        #    so don't accept large jumps from brightness filter)
        self._framefilters = [
            filt_bgsub & filt_bright, filt_bgsub, filt_bright & filt_dist
        ]
        self._proc = tracking.FrameProcessor()

        # For measuring status percentages
        self._statuses = collections.defaultdict(int)

        # Setup printing stats on exit
        atexit.register(self._print_stats)

        # Record status of previous frame to know when tracking is first lost.
        self._prev_status = None