@asyncio.coroutine def main(r): task = asyncio.ensure_future(wall_fondle(r)) try: yield From(asyncio.wait_for(task, SILO_TIME)) except asyncio.TimeoutError: pass yield From(clean_up(r)) if __name__ == "__main__": with TAMProxy() as tamproxy: r = Robot(tamproxy) m = Mapper(r.drive.odometer, map=Arena.load('../sw/mapping/red_map.txt')) cam = Camera(geom=constants.camera_geometry, id=CAMERA_ID) v = Vision(cam) w = Window(500, [m, CameraPanel(v), ControlPanel(r)]) while w.get_key() != ' ': pass log.debug("started") loop = asyncio.get_event_loop() loop.set_debug(True) loop.run_until_complete(main(r)) loop.close()