예제 #1
0
# asr_subscriber = RosSubscriber('asr',debug=True)

debug = DebugModule()

# hook modules up to each other
mic.subscribe(asr)
mic.subscribe(mic_publisher)
asr.subscribe(iasr)
iasr.subscribe(asr_publisher)
iasr.subscribe(debug)

# initialize modules
mic.run()
mic_publisher.run()
asr.run()
asr_publisher.run()
# asr_subscriber.run()
iasr.run()
debug.run()

input()  # keep things running

# rosnode.stop()
mic.stop()
mic_publisher.stop()
asr.stop()
asr_publisher.stop()
# asr_subscriber.stop()
iasr.stop()
debug.stop()
예제 #2
0
def init_all(robot : cozmo.robot.Robot):
    
    domain_dir = '/home/casey/git/retico/data/cozmo/dm/dialogue.xml'
    aod_endpoint = ""
    aod_key = ""
    wac_dir = '/home/casey/git/retico/data/wac/subset'
    mask_rcnn_labels = '/home/casey/git/retico/data/maskrcnn/label_map.pbtxt'
    mask_rcnn_model = '/home/casey/git/retico/data/maskrcnn/frozen_inference_graph.pb'

    opendial_variables = ['face_count', # CozmoStateModule
                           'num_objs', # ObjectDetector
                           'near_object', # CozmoRefer
                           'exploring', # CozmoRefer
                           'aligned', # CozmoRefer
                           'word_to_find', # WordsAsClassifiersModule
                           'best_object', # WordsAsClassifiersModule
                           'obj_confidence'] # WordsAsClassifiersModule

    #
    # INSTANTIATE MODULES
    #
    # mic = RespeakerMicrophoneModule('192.168.0.102:8000')
    # asr = GoogleASRModule(rate=16000)
    
    mic = MicrophoneModule(1000)
    asr = GoogleASRModule()
    iasr = IncrementalizeASRModule()
    dm = OpenDialModule(domain_dir=domain_dir, variables=opendial_variables)
    cozmo_refer = CozmoReferModule(robot)
    cozmo_camera = CozmoCameraModule(robot)
    # cozmo_camera = WebcamModule()
    # cozmo_state = CozmoStateModule(robot)
    # object_detector = AzureObjectDetectionModule(aod_key, aod_endpoint)
    object_detector = MaskrRCNNObjectDetection(mask_rcnn_labels, mask_rcnn_model)
    feature_extractor = KerasObjectFeatureExtractorModule()
    wac = WordsAsClassifiersModule(wac_dir=wac_dir)
    debug = DebugModule()

    # psi related modules
    # WriterSingleton should use the *source* ip address (i.e., this machine's)
    # WriterSingleton(ip='192.168.0.101', port='12346') # create the zeromq writer
    # psi = ZeroMQWriter(topic='retico')
   
    # mic as input
    mic.subscribe(asr)
    asr.subscribe(iasr)
    iasr.subscribe(wac)
    wac.subscribe(dm)
    dm.subscribe(cozmo_refer)

    # robot state as input
    # cozmo_state.subscribe(dm)
    wac.subscribe(cozmo_refer)
    object_detector.subscribe(dm)
    object_detector.subscribe(cozmo_refer)
    cozmo_refer.subscribe(dm)

    # robot camera as input
    cozmo_camera.subscribe(object_detector)
    object_detector.subscribe(feature_extractor)
    feature_extractor.subscribe(wac)
    # feature_extractor.subscribe(debug)

    # iasr.subscribe(psi)
    # wac.subscribe(psi)
    # dm.subscribe(psi)
    # feature_extractor.subscribe(psi)
    # object_detector.subscribe(psi)

    #
    # INITIALIZE MODULES
    # 
    mic.run()
    asr.run()
    iasr.run()
    dm.run()
    cozmo_refer.run() # IF I MAKE THIS RUN EVERYTHING SLOWS DOWN
    # cozmo_state.run()
    cozmo_camera.run()
    object_detector.run()
    feature_extractor.run()
    wac.run()
    debug.run()
    # psi.run()

    input() # keep everything running

    mic.stop()
    asr.stop()
    iasr.stop()
    cozmo_refer.stop()
    # cozmo_state.stop()
    dm.stop()
    cozmo_camera.stop()
    object_detector.stop()
    feature_extractor.stop()
    wac.stop()
    debug.stop()