Пример #1
0
def cb_generic(name, data):
    global now, interference
    original = data.data
    edited = data
    edited.data = (original if not interference else interference.edit(
        name, original))

    tester_update_var(name, original)

    if (name == 'light'):  # Integrate light levels
        global last_light_reading, insolation
        now = rospy.get_time()
        if (last_light_reading > 0):
            light_level = (original[0] + original[1]) / 2.0
            dt = now - last_light_reading
            insolation += dt * light_level / 3600.0
            #print("INSOLATION: %.2f %d %.2f" %(insolation, light_level, dt))
            tester_update_var('insolation', insolation)
        if (time_since_midnight(now) <
                time_since_midnight(last_light_reading)):
            #print("INSOLATION TODAY: %.1f" %insolation)
            insolation = 0  # Reset daily
        last_light_reading = now

    publishers[name].publish(edited)
    if (log):
        log_file = log_files[name]
        log_file.write(
            clock_time(now) + ", internal: " + str(original) + ", edited: " +
            str(edited.data) + "\n")
        log_file.flush()
        if (verbose):
            log_print("Logging %s data" % name)
Пример #2
0
def notify_user():
    global args, password, num_restarts
    if (args.email != None):
        print("Sending email regarding restarts to " + args.email)
        send_email.send(
            "*****@*****.**", password, args.email,
            "Problem with your TerraBot agent",
            ("Your autonomous agent has had to be restarted %d times.  The current Terrabot time is %s.\r\n\r\nYou should probably contact the instructors to upload a new version.\r\n\r\nSincerely,\r\nTerraBot\r\n"
             % (num_restarts, clock_time(rospy.get_time()))))
Пример #3
0
def camera_cb(data):
    global simulate, images

    print("Taking an image at %s, storing it in %s" %
          (clock_time(now), data.data))
    if simulate:
        publishers['cam'].publish(data.data)
    else:
        #        sp.call("raspistill -n -md 2 -awb off -awbg 1,1 -ss 30000 -o %s"
        sp.call("raspistill -n -md 4 -awb auto -ss 30000 -rot 180 -o %s" %
                data.data,
                shell=True)
    tester_update_var('camera', data.data)
Пример #4
0
def cb_generic(name, data):
    global now, grader, interference
    original = data.data
    edited = data
    edited.data = (original if not interference else interf_mod.edit(
        name, original))
    #edited.data = data.data # Why is this here?

    if grade: grader.update(name, edited.data)

    publishers[name].publish(edited)
    if (log):
        log_file = log_files[name]
        log_file.write(
            clock_time(now) + ", internal: " + str(original) + ", edited: " +
            str(edited.data) + "\n")
        log_file.flush()
        if (verbose):
            log_print("Logging %s data" % name)
Пример #5
0
def ping_cb(data):
    global last_ping
    last_ping = rospy.get_time()
    print("  PING! %s" % clock_time(last_ping))