Beispiel #1
0
def main() -> None:

    parser = argparse.ArgumentParser(description=SERVICE_NAME)
    parser.add_argument("-s", "--swagger", action="store_true", default=False)
    parser.add_argument(
        "-d",
        "--debug",
        help="Set logging level to debug.",
        action="store_const",
        const=logging.DEBUG,
        default=logging.DEBUG
        if env.get_bool("ARCOR2_BUILD_DEBUG") else logging.INFO,
    )

    args = parser.parse_args()
    logger.setLevel(args.debug)

    run_app(
        app,
        SERVICE_NAME,
        arcor2_build.version(),
        port_from_url(URL),
        [ImportResult],
        print_spec=args.swagger,
    )
Beispiel #2
0
def main() -> None:

    parser = argparse.ArgumentParser(description=SERVICE_NAME)
    parser.add_argument("-s", "--swagger", action="store_true", default=False)
    args = parser.parse_args()

    global ws

    while not args.swagger:
        try:
            ws = websocket.create_connection(EXE_URL, enable_multithread=True)
            thread = Thread(target=ws_thread, daemon=True)
            thread.start()
            break
        except ConnectionRefusedError:
            print("Connecting to the Execution service...")
            time.sleep(1.0)

    run_app(
        app,
        SERVICE_NAME,
        arcor2_execution_rest_proxy.version(),
        PORT,
        [SummaryPackage, ExecutionInfo, Token],
        args.swagger,
    )
Beispiel #3
0
def main() -> None:

    parser = argparse.ArgumentParser(description=SERVICE_NAME)
    parser.add_argument("-s", "--swagger", action="store_true", default=False)
    parser.add_argument("-m",
                        "--mock",
                        action="store_true",
                        default=env.get_bool("ARCOR2_DOBOT_MOCK"))

    parser.add_argument(
        "-d",
        "--debug",
        help="Set logging level to debug.",
        action="store_const",
        const=logging.DEBUG,
        default=logging.DEBUG
        if env.get_bool("ARCOR2_DOBOT_DEBUG") else logging.INFO,
    )

    args = parser.parse_args()
    logger.setLevel(args.debug)

    global _mock
    _mock = args.mock
    if _mock:
        logger.info("Starting as a mock!")

    if not args.swagger:
        scene_service.wait_for()

    run_app(app, SERVICE_NAME, version(), port_from_url(URL), [Pose, Joint],
            args.swagger)

    if _dobot:
        _dobot.cleanup()
Beispiel #4
0
def main() -> None:

    parser = argparse.ArgumentParser(description=PROJECT_SERVICE_NAME)
    parser.add_argument("-s", "--swagger", action="store_true", default=False)
    args = parser.parse_args()

    run_app(
        app,
        PROJECT_SERVICE_NAME,
        version(),
        PROJECT_PORT,
        [
            common.Project,
            common.Scene,
            common.IdDesc,
            object_type.ObjectType,
            object_type.Box,
            object_type.Cylinder,
            object_type.Sphere,
            object_type.Mesh,
            common.WebApiError,
        ],
        args.swagger,
        api_version="0.16.0",
    )
Beispiel #5
0
def main() -> None:

    global inflation

    parser = argparse.ArgumentParser(description=SCENE_SERVICE_NAME)
    parser.add_argument("-s", "--swagger", action="store_true", default=False)

    parser.add_argument(
        "-d",
        "--debug",
        help="Set logging level to debug.",
        action="store_const",
        const=logging.DEBUG,
        default=logging.DEBUG
        if env.get_bool("ARCOR2_SCENE_DEBUG") else logging.INFO,
    )

    parser.add_argument(
        "-i",
        "--inflation",
        help="How much to inflate collision objects (meters).",
        nargs="?",
        default=env.get_float("ARCOR2_SCENE_INFLATION", 0.01),
        type=float,
    )

    args = parser.parse_args()

    logger.setLevel(args.debug)
    inflation = args.inflation

    run_app(
        app,
        SCENE_SERVICE_NAME,
        version(),
        SCENE_PORT,
        [
            common.Pose,
            object_type.Box,
            object_type.Cylinder,
            object_type.Sphere,
            object_type.Mesh,
            scene.MeshFocusAction,
            scene.LineCheck,
            scene.LineCheckResult,
        ],
        args.swagger,
        api_version="0.5.0",
    )
Beispiel #6
0
def main() -> None:

    parser = argparse.ArgumentParser(description=SERVICE_NAME)
    parser.add_argument("-s", "--swagger", action="store_true", default=False)
    parser.add_argument("-m", "--mock", action="store_true", default=False)
    args = parser.parse_args()

    global _mock
    _mock = args.mock
    if _mock:
        logger.info("Starting as a mock!")

    run_app(app, SERVICE_NAME, version(), version(), port_from_url(URL), [CameraParameters], args.swagger)

    if _kinect:
        _kinect.cleanup()
Beispiel #7
0
def main() -> None:

    parser = argparse.ArgumentParser(description=SCENE_SERVICE_NAME)
    parser.add_argument("-s", "--swagger", action="store_true", default=False)
    args = parser.parse_args()

    run_app(
        app,
        SCENE_SERVICE_NAME,
        version(),
        "0.4.0",
        SCENE_PORT,
        [
            common.Pose,
            object_type.Box,
            object_type.Cylinder,
            object_type.Sphere,
            object_type.Mesh,
            scene.MeshFocusAction,
        ],
        args.swagger,
    )
Beispiel #8
0
def main() -> None:

    parser = argparse.ArgumentParser(description=SERVICE_NAME)

    parser.add_argument(
        "-d",
        "--debug",
        help="Set logging level to debug.",
        action="store_const",
        const=logging.DEBUG,
        default=logging.DEBUG
        if env.get_bool("ARCOR2_CALIBRATION_DEBUG") else logging.INFO,
    )

    run_as_mock = env.get_bool("ARCOR2_CALIBRATION_MOCK")

    # argparse has not support for env vars so this is kind of workaround
    # TODO maybe it could be solved using a custom action like https://gist.github.com/orls/51525c86ee77a56ad396
    if not run_as_mock:

        group = parser.add_mutually_exclusive_group(required=True)

        group.add_argument(
            "--config-file",
            "-c",
            type=argparse.FileType("r"),
            help="Config file name containing a valid YAML configuration.",
        )

        sub_group = group.add_mutually_exclusive_group()
        sub_group.add_argument("-s",
                               "--swagger",
                               action="store_true",
                               default=False)
        sub_group.add_argument(
            "-m",
            "--mock",
            action="store_true",
            default=False,
            help=
            "Run the service in a mock mode. The same can be done by setting ARCOR2_CALIBRATION_MOCK.",
        )

    args = parser.parse_args()

    logger.setLevel(args.debug)

    if not (run_as_mock or args.swagger or args.mock):

        data = args.config_file.read()

        global MARKER_SIZE
        global MIN_DIST
        global MAX_DIST

        try:

            config = yaml.safe_load(data)

            MARKER_SIZE = float(config.get("marker_size", MARKER_SIZE))
            MIN_DIST = float(config.get("min_dist", MIN_DIST))
            MAX_DIST = float(config.get("max_dist", MAX_DIST))
            calibration.BLUR_THRESHOLD = float(
                config.get("blur_threshold", calibration.BLUR_THRESHOLD))

            for marker_id, marker in config["markers"].items():
                MARKERS[int(marker_id)] = Pose.from_dict(marker["pose"])

            logger.info(
                f"Loaded configuration id '{config['id']}' with {len(MARKERS)} marker(s) of size {MARKER_SIZE}."
            )

        except (KeyError, ValueError, TypeError, ValidationError):
            logger.exception("Failed to load the configuration file.")
            sys.exit(1)

    if not (MAX_DIST > MIN_DIST):
        logger.error("'max_dist' have to be bigger than 'min_dist'.")
        sys.exit(1)

    global _mock
    _mock = run_as_mock or args.mock
    if _mock:
        logger.info("Starting as a mock!")

    run_app(
        app,
        SERVICE_NAME,
        arcor2_calibration.version(),
        port_from_url(CALIBRATION_URL),
        [Pose, CalibrateRobotArgs, MarkerCorners, EstimatedPose],
        getattr(args, "swagger", False),
    )
Beispiel #9
0
def main() -> None:

    parser = argparse.ArgumentParser(description=SERVICE_NAME)
    parser.add_argument("-s", "--swagger", action="store_true", default=False)
    parser.add_argument("-m", "--mock", action="store_true", default=False)
    parser.add_argument(
        "-d",
        "--debug",
        help="Set logging level to debug.",
        action="store_const",
        const=logging.DEBUG,
        default=logging.INFO,
    )

    group = parser.add_mutually_exclusive_group()
    group.add_argument(
        "--config-file",
        "-c",
        type=argparse.FileType("r"),
        default=sys.stdin,
        help="Config file name containing a valid YAML configuration.",
    )
    group.add_argument(
        "yaml-config",
        nargs="?",
        type=str,
        help="Input string containing a valid YAML configuration.")

    args = parser.parse_args()

    logger.setLevel(args.debug)

    if not (args.swagger or args.mock):

        try:
            data = args.config_file.read()
        except AttributeError:
            data = args.yaml_config

        global MARKER_SIZE

        try:

            config = yaml.safe_load(data)

            MARKER_SIZE = float(config["marker_size"])

            for marker_id, marker in config["markers"].items():
                MARKERS[int(marker_id)] = Pose.from_dict(marker["pose"])

            logger.info(
                f"Loaded configuration id '{config['id']}' with {len(MARKERS)} marker(s) of size {MARKER_SIZE}."
            )

        except (KeyError, ValueError, TypeError, ValidationError):
            logger.exception("Failed to load the configuration file.")
            sys.exit(1)

    global _mock
    _mock = args.mock
    if _mock:
        logger.info("Starting as a mock!")

    run_app(
        app,
        SERVICE_NAME,
        arcor2_calibration.version(),
        arcor2_calibration.version(),
        port_from_url(CALIBRATION_URL),
        [Pose, CalibrateRobotArgs, MarkerCorners],
        args.swagger,
    )