isar 1.20.3__tar.gz → 1.21.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of isar might be problematic. Click here for more details.
- {isar-1.20.3 → isar-1.21.0}/PKG-INFO +1 -1
- {isar-1.20.3 → isar-1.21.0}/requirements.txt +11 -11
- {isar-1.20.3 → isar-1.21.0}/src/isar/config/settings.py +4 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/script.py +3 -1
- {isar-1.20.3 → isar-1.21.0}/src/isar/state_machine/state_machine.py +16 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/state_machine/states/monitor.py +4 -1
- {isar-1.20.3 → isar-1.21.0}/src/isar/state_machine/states/paused.py +5 -2
- {isar-1.20.3 → isar-1.21.0}/src/isar.egg-info/PKG-INFO +1 -1
- {isar-1.20.3 → isar-1.21.0}/src/robot_interface/robot_interface.py +38 -0
- {isar-1.20.3 → isar-1.21.0}/tests/mocks/robot_interface.py +6 -0
- {isar-1.20.3 → isar-1.21.0}/.dockerignore +0 -0
- {isar-1.20.3 → isar-1.21.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {isar-1.20.3 → isar-1.21.0}/.github/ISSUE_TEMPLATE/feature.md +0 -0
- {isar-1.20.3 → isar-1.21.0}/.github/ISSUE_TEMPLATE/improvement.md +0 -0
- {isar-1.20.3 → isar-1.21.0}/.github/release.yml +0 -0
- {isar-1.20.3 → isar-1.21.0}/.github/workflows/compile_requirements.yml +0 -0
- {isar-1.20.3 → isar-1.21.0}/.github/workflows/project_automations.yml +0 -0
- {isar-1.20.3 → isar-1.21.0}/.github/workflows/publish_isar_base_image.yml +0 -0
- {isar-1.20.3 → isar-1.21.0}/.github/workflows/pythonpackage.yml +0 -0
- {isar-1.20.3 → isar-1.21.0}/.github/workflows/pythonpublish.yml +0 -0
- {isar-1.20.3 → isar-1.21.0}/.github/workflows/stale.yml +0 -0
- {isar-1.20.3 → isar-1.21.0}/.gitignore +0 -0
- {isar-1.20.3 → isar-1.21.0}/.pre-commit-config.yaml +0 -0
- {isar-1.20.3 → isar-1.21.0}/Dockerfile +0 -0
- {isar-1.20.3 → isar-1.21.0}/LICENSE +0 -0
- {isar-1.20.3 → isar-1.21.0}/README.md +0 -0
- {isar-1.20.3 → isar-1.21.0}/SECURITY.md +0 -0
- {isar-1.20.3 → isar-1.21.0}/docker-compose-turtlebot.yml +0 -0
- {isar-1.20.3 → isar-1.21.0}/docker-compose.yml +0 -0
- {isar-1.20.3 → isar-1.21.0}/docs/Makefile +0 -0
- {isar-1.20.3 → isar-1.21.0}/docs/make.bat +0 -0
- {isar-1.20.3 → isar-1.21.0}/docs/rst_processing.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/docs/source/conf.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/docs/source/index.rst +0 -0
- {isar-1.20.3 → isar-1.21.0}/docs/source/readme_link.md +0 -0
- {isar-1.20.3 → isar-1.21.0}/docs/state_machine_diagram.png +0 -0
- {isar-1.20.3 → isar-1.21.0}/main.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/pyproject.toml +0 -0
- {isar-1.20.3 → isar-1.21.0}/radixconfig.yml +0 -0
- {isar-1.20.3 → isar-1.21.0}/setup.cfg +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/__init__.py +0 -0
- {isar-1.20.3/tests/mocks → isar-1.21.0/src/isar/apis}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/apis/api.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/apis/models/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/apis/models/models.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/apis/models/start_mission_definition.py +0 -0
- {isar-1.20.3/tests/isar/state_machine/states → isar-1.21.0/src/isar/apis/schedule}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/apis/schedule/scheduling_controller.py +0 -0
- {isar-1.20.3/tests/isar/state_machine → isar-1.21.0/src/isar/apis/security}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/apis/security/authentication.py +0 -0
- {isar-1.20.3/tests/isar/services/utilities → isar-1.21.0/src/isar/config}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/config/certs/ca-cert.pem +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/config/configuration_error.py +0 -0
- {isar-1.20.3/tests/isar/services/service_connections/echo → isar-1.21.0/src/isar/config/keyvault}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/config/keyvault/keyvault_error.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/config/keyvault/keyvault_service.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/config/log.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/config/logging.conf +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/config/maps/JSP1_intermediate_deck.json +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/config/maps/JSP1_weather_deck.json +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/config/maps/default_map.json +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/config/maps/klab_b.json +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/config/maps/klab_compressor.json +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/config/maps/klab_turtlebot.json +0 -0
- {isar-1.20.3/tests/integration/turtlebot → isar-1.21.0/src/isar}/config/maps/turtleworld.json +0 -0
- {isar-1.20.3/tests/isar/services/service_connections → isar-1.21.0/src/isar/config/predefined_mission_definition}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/config/predefined_mission_definition/default_exr.json +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/config/predefined_mission_definition/default_mission.json +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/config/predefined_mission_definition/default_turtlebot.json +0 -0
- {isar-1.20.3/tests/isar/services/readers → isar-1.21.0/src/isar/config/predefined_missions}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/config/predefined_missions/default.json +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/config/predefined_missions/default_turtlebot.json +0 -0
- {isar-1.20.3/tests/isar/services → isar-1.21.0/src/isar/config/predefined_poses}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/config/predefined_poses/predefined_poses.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/config/settings.env +0 -0
- {isar-1.20.3/tests/isar/models/communication → isar-1.21.0/src/isar/mission_planner}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/mission_planner/local_planner.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/mission_planner/mission_planner_interface.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/mission_planner/sequential_task_selector.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/mission_planner/task_selector_interface.py +0 -0
- {isar-1.20.3/tests → isar-1.21.0/src}/isar/models/__init__.py +0 -0
- {isar-1.20.3/tests/isar/mission → isar-1.21.0/src/isar/models/communication}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/models/communication/message.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/models/communication/queues/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/models/communication/queues/queue_io.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/models/communication/queues/queue_timeout_error.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/models/communication/queues/queues.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/models/communication/queues/status_queue.py +0 -0
- {isar-1.20.3/tests/isar/apis/security → isar-1.21.0/src/isar/models/mission_metadata}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/modules.py +0 -0
- {isar-1.20.3/tests/isar/apis/scheduler → isar-1.21.0/src/isar/services}/__init__.py +0 -0
- {isar-1.20.3/tests/isar/apis → isar-1.21.0/src/isar/services/auth}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/services/auth/azure_credentials.py +0 -0
- {isar-1.20.3/tests/isar → isar-1.21.0/src/isar/services/readers}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/services/readers/base_reader.py +0 -0
- {isar-1.20.3/tests/integration/turtlebot/config/missions → isar-1.21.0/src/isar/services/service_connections}/__init__.py +0 -0
- {isar-1.20.3/tests/integration/turtlebot/config/maps → isar-1.21.0/src/isar/services/service_connections/mqtt}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/services/service_connections/mqtt/mqtt_client.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/services/service_connections/mqtt/robot_heartbeat_publisher.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/services/service_connections/mqtt/robot_info_publisher.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/services/service_connections/request_handler.py +0 -0
- {isar-1.20.3/tests/integration/turtlebot/config → isar-1.21.0/src/isar/services/service_connections/stid}/__init__.py +0 -0
- {isar-1.20.3/tests/integration/turtlebot → isar-1.21.0/src/isar/services/utilities}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/services/utilities/queue_utilities.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/services/utilities/scheduling_utilities.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/services/utilities/threaded_request.py +0 -0
- {isar-1.20.3/tests/integration → isar-1.21.0/src/isar/state_machine}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/state_machine/states/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/state_machine/states/idle.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/state_machine/states/initialize.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/state_machine/states/initiate.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/state_machine/states/off.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/state_machine/states/offline.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/state_machine/states/stop.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/state_machine/states_enum.py +0 -0
- {isar-1.20.3/tests → isar-1.21.0/src/isar/storage}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/storage/blob_storage.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/storage/local_storage.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/storage/slimm_storage.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/storage/storage_interface.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/storage/uploader.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar/storage/utilities.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar.egg-info/SOURCES.txt +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar.egg-info/dependency_links.txt +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar.egg-info/entry_points.txt +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar.egg-info/requires.txt +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/isar.egg-info/top_level.txt +0 -0
- {isar-1.20.3/src/robot_interface/utilities → isar-1.21.0/src/robot_interface}/__init__.py +0 -0
- {isar-1.20.3/src/robot_interface/telemetry → isar-1.21.0/src/robot_interface/models}/__init__.py +0 -0
- {isar-1.20.3/src/robot_interface/models/robots → isar-1.21.0/src/robot_interface/models/exceptions}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/robot_interface/models/exceptions/robot_exceptions.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/robot_interface/models/initialize/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/robot_interface/models/initialize/initialize_params.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/robot_interface/models/inspection/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/robot_interface/models/inspection/inspection.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/robot_interface/models/mission/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/robot_interface/models/mission/mission.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/robot_interface/models/mission/status.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/robot_interface/models/mission/step.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/robot_interface/models/mission/task.py +0 -0
- {isar-1.20.3/src/robot_interface/models/exceptions → isar-1.21.0/src/robot_interface/models/robots}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/robot_interface/models/robots/robot_model.py +0 -0
- {isar-1.20.3/src/robot_interface/models → isar-1.21.0/src/robot_interface/telemetry}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/robot_interface/telemetry/mqtt_client.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/robot_interface/telemetry/payloads.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/robot_interface/test_robot_interface.py +0 -0
- {isar-1.20.3/src/robot_interface → isar-1.21.0/src/robot_interface/utilities}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/robot_interface/utilities/json_service.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/src/robot_interface/utilities/uuid_string_factory.py +0 -0
- {isar-1.20.3/src/isar/storage → isar-1.21.0/tests}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/conftest.py +0 -0
- {isar-1.20.3/src/isar/state_machine → isar-1.21.0/tests/integration}/__init__.py +0 -0
- {isar-1.20.3/src/isar/services/utilities → isar-1.21.0/tests/integration/turtlebot}/__init__.py +0 -0
- {isar-1.20.3/src/isar/services/service_connections/stid → isar-1.21.0/tests/integration/turtlebot/config}/__init__.py +0 -0
- {isar-1.20.3/src/isar/services/service_connections/mqtt → isar-1.21.0/tests/integration/turtlebot/config/maps}/__init__.py +0 -0
- {isar-1.20.3/src/isar → isar-1.21.0/tests/integration/turtlebot}/config/maps/turtleworld.json +0 -0
- {isar-1.20.3/src/isar/services/service_connections → isar-1.21.0/tests/integration/turtlebot/config/missions}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/integration/turtlebot/config/missions/default.json +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/integration/turtlebot/test_successful_mission.py +0 -0
- {isar-1.20.3/src/isar/services/readers → isar-1.21.0/tests/isar}/__init__.py +0 -0
- {isar-1.20.3/src/isar/services/auth → isar-1.21.0/tests/isar/apis}/__init__.py +0 -0
- {isar-1.20.3/src/isar/services → isar-1.21.0/tests/isar/apis/scheduler}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/isar/apis/scheduler/test_scheduler_router.py +0 -0
- {isar-1.20.3/src/isar/models/mission_metadata → isar-1.21.0/tests/isar/apis/security}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/isar/apis/security/test_authentication.py +0 -0
- {isar-1.20.3/src/isar/models/communication → isar-1.21.0/tests/isar/mission}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/isar/mission/test_mission.py +0 -0
- {isar-1.20.3/src → isar-1.21.0/tests}/isar/models/__init__.py +0 -0
- {isar-1.20.3/src/isar/mission_planner → isar-1.21.0/tests/isar/models/communication}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/isar/models/communication/test_queues.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/isar/models/example_mission_definition.json +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/isar/models/test_start_mission_definition.py +0 -0
- {isar-1.20.3/src/isar/config/predefined_poses → isar-1.21.0/tests/isar/services}/__init__.py +0 -0
- {isar-1.20.3/src/isar/config/predefined_missions → isar-1.21.0/tests/isar/services/readers}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/isar/services/readers/test_base_reader.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/isar/services/readers/test_mission_reader.py +0 -0
- {isar-1.20.3/src/isar/config/predefined_mission_definition → isar-1.21.0/tests/isar/services/service_connections}/__init__.py +0 -0
- {isar-1.20.3/src/isar/config/keyvault → isar-1.21.0/tests/isar/services/service_connections/echo}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/isar/services/service_connections/test_base_request_handler.py +0 -0
- {isar-1.20.3/src/isar/config → isar-1.21.0/tests/isar/services/utilities}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/isar/services/utilities/test_queue_utilities.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/isar/services/utilities/test_scheduling_utilities.py +0 -0
- {isar-1.20.3/src/isar/apis/security → isar-1.21.0/tests/isar/state_machine}/__init__.py +0 -0
- {isar-1.20.3/src/isar/apis/schedule → isar-1.21.0/tests/isar/state_machine/states}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/isar/state_machine/states/test_monitor.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/isar/state_machine/test_state_machine.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/isar/storage/test_blob_storage.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/isar/storage/test_uploader.py +0 -0
- {isar-1.20.3/src/isar/apis → isar-1.21.0/tests/mocks}/__init__.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/mocks/blob_storage.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/mocks/mission_definition.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/mocks/mqtt_client.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/mocks/pose.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/mocks/request.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/mocks/status.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/mocks/step.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/mocks/task.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/mocks/token.py +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/test_data/test_json_file.json +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/test_data/test_map_config/test_map_config.json +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/test_data/test_mission_not_working.json +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/test_data/test_mission_working.json +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/test_data/test_mission_working_no_tasks.json +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/test_data/test_thermal_image_mission.json +0 -0
- {isar-1.20.3 → isar-1.21.0}/tests/test_modules.py +0 -0
|
@@ -13,13 +13,13 @@ anyio==4.4.0
|
|
|
13
13
|
# httpx
|
|
14
14
|
# starlette
|
|
15
15
|
# watchfiles
|
|
16
|
-
azure-core==1.30.
|
|
16
|
+
azure-core==1.30.2
|
|
17
17
|
# via
|
|
18
18
|
# azure-identity
|
|
19
19
|
# azure-keyvault-secrets
|
|
20
20
|
# azure-storage-blob
|
|
21
21
|
# opencensus-ext-azure
|
|
22
|
-
azure-identity==1.16.
|
|
22
|
+
azure-identity==1.16.1
|
|
23
23
|
# via
|
|
24
24
|
# isar (pyproject.toml)
|
|
25
25
|
# opencensus-ext-azure
|
|
@@ -58,7 +58,7 @@ dacite==1.8.1
|
|
|
58
58
|
# isar (pyproject.toml)
|
|
59
59
|
dnspython==2.6.1
|
|
60
60
|
# via email-validator
|
|
61
|
-
email-validator==2.1.
|
|
61
|
+
email-validator==2.1.2
|
|
62
62
|
# via fastapi
|
|
63
63
|
fastapi==0.111.0
|
|
64
64
|
# via
|
|
@@ -70,7 +70,7 @@ fastapi-cli==0.0.4
|
|
|
70
70
|
# via fastapi
|
|
71
71
|
google-api-core==2.19.0
|
|
72
72
|
# via opencensus
|
|
73
|
-
google-auth==2.
|
|
73
|
+
google-auth==2.30.0
|
|
74
74
|
# via google-api-core
|
|
75
75
|
googleapis-common-protos==1.63.1
|
|
76
76
|
# via google-api-core
|
|
@@ -106,13 +106,13 @@ markupsafe==2.1.5
|
|
|
106
106
|
# via jinja2
|
|
107
107
|
mdurl==0.1.2
|
|
108
108
|
# via markdown-it-py
|
|
109
|
-
msal==1.28.
|
|
109
|
+
msal==1.28.1
|
|
110
110
|
# via
|
|
111
111
|
# azure-identity
|
|
112
112
|
# msal-extensions
|
|
113
113
|
msal-extensions==1.1.0
|
|
114
114
|
# via azure-identity
|
|
115
|
-
numpy==
|
|
115
|
+
numpy==2.0.0
|
|
116
116
|
# via
|
|
117
117
|
# alitra
|
|
118
118
|
# isar (pyproject.toml)
|
|
@@ -130,9 +130,9 @@ opencensus-ext-logging==0.1.1
|
|
|
130
130
|
# via isar (pyproject.toml)
|
|
131
131
|
opencensus-ext-requests==0.8.0
|
|
132
132
|
# via isar (pyproject.toml)
|
|
133
|
-
orjson==3.10.
|
|
133
|
+
orjson==3.10.5
|
|
134
134
|
# via fastapi
|
|
135
|
-
packaging==24.
|
|
135
|
+
packaging==24.1
|
|
136
136
|
# via msal-extensions
|
|
137
137
|
paho-mqtt==2.1.0
|
|
138
138
|
# via isar (pyproject.toml)
|
|
@@ -155,14 +155,14 @@ pyasn1-modules==0.4.0
|
|
|
155
155
|
# via google-auth
|
|
156
156
|
pycparser==2.22
|
|
157
157
|
# via cffi
|
|
158
|
-
pydantic==2.7.
|
|
158
|
+
pydantic==2.7.4
|
|
159
159
|
# via
|
|
160
160
|
# fastapi
|
|
161
161
|
# isar (pyproject.toml)
|
|
162
162
|
# pydantic-settings
|
|
163
163
|
pydantic-core==2.18.4
|
|
164
164
|
# via pydantic
|
|
165
|
-
pydantic-settings==2.3.
|
|
165
|
+
pydantic-settings==2.3.3
|
|
166
166
|
# via isar (pyproject.toml)
|
|
167
167
|
pygments==2.18.0
|
|
168
168
|
# via rich
|
|
@@ -217,7 +217,7 @@ transitions==0.9.1
|
|
|
217
217
|
# via isar (pyproject.toml)
|
|
218
218
|
typer==0.12.3
|
|
219
219
|
# via fastapi-cli
|
|
220
|
-
typing-extensions==4.12.
|
|
220
|
+
typing-extensions==4.12.2
|
|
221
221
|
# via
|
|
222
222
|
# azure-core
|
|
223
223
|
# azure-keyvault-secrets
|
|
@@ -341,3 +341,7 @@ class RobotSettings(BaseSettings):
|
|
|
341
341
|
|
|
342
342
|
|
|
343
343
|
robot_settings = RobotSettings()
|
|
344
|
+
|
|
345
|
+
if not settings.RUN_MISSION_STEPWISE: # If mission-wise, do not run localize missions
|
|
346
|
+
if "localize" in robot_settings.CAPABILITIES:
|
|
347
|
+
robot_settings.CAPABILITIES.remove("localize")
|
|
@@ -10,7 +10,7 @@ import isar
|
|
|
10
10
|
from isar.apis.api import API
|
|
11
11
|
from isar.config.keyvault.keyvault_service import Keyvault
|
|
12
12
|
from isar.config.log import setup_loggers
|
|
13
|
-
from isar.config.settings import settings
|
|
13
|
+
from isar.config.settings import robot_settings, settings
|
|
14
14
|
from isar.models.communication.queues.queues import Queues
|
|
15
15
|
from isar.modules import get_injector
|
|
16
16
|
from isar.services.service_connections.mqtt.mqtt_client import MqttClient
|
|
@@ -72,6 +72,8 @@ def print_startup_info():
|
|
|
72
72
|
print_setting("Plant code", settings.PLANT_CODE)
|
|
73
73
|
print_setting("Plant name", settings.PLANT_NAME)
|
|
74
74
|
print_setting("Plant shortname", settings.PLANT_SHORT_NAME)
|
|
75
|
+
print_setting(fillchar="-")
|
|
76
|
+
print_setting("Robot capabilities", robot_settings.CAPABILITIES)
|
|
75
77
|
print_setting(fillchar="*")
|
|
76
78
|
print()
|
|
77
79
|
|
|
@@ -122,6 +122,12 @@ class StateMachine(object):
|
|
|
122
122
|
"dest": self.monitor_state,
|
|
123
123
|
"before": self._initiated,
|
|
124
124
|
},
|
|
125
|
+
{
|
|
126
|
+
"trigger": "pause_full_mission",
|
|
127
|
+
"source": [self.initiate_state, self.monitor_state],
|
|
128
|
+
"dest": self.paused_state,
|
|
129
|
+
"before": self._mission_paused,
|
|
130
|
+
},
|
|
125
131
|
{
|
|
126
132
|
"trigger": "pause",
|
|
127
133
|
"source": [self.initiate_state, self.monitor_state],
|
|
@@ -166,6 +172,12 @@ class StateMachine(object):
|
|
|
166
172
|
"dest": self.initiate_state,
|
|
167
173
|
"before": self._resume,
|
|
168
174
|
},
|
|
175
|
+
{
|
|
176
|
+
"trigger": "resume_full_mission",
|
|
177
|
+
"source": self.paused_state,
|
|
178
|
+
"dest": self.monitor_state,
|
|
179
|
+
"before": self._resume,
|
|
180
|
+
},
|
|
169
181
|
{
|
|
170
182
|
"trigger": "step_finished",
|
|
171
183
|
"source": self.monitor_state,
|
|
@@ -282,6 +294,8 @@ class StateMachine(object):
|
|
|
282
294
|
self.current_task.reset_task()
|
|
283
295
|
self.update_current_step()
|
|
284
296
|
|
|
297
|
+
self.robot.resume()
|
|
298
|
+
|
|
285
299
|
def _mission_finished(self) -> None:
|
|
286
300
|
fail_statuses: List[TaskStatus] = [
|
|
287
301
|
TaskStatus.Cancelled,
|
|
@@ -348,6 +362,8 @@ class StateMachine(object):
|
|
|
348
362
|
self.publish_task_status(task=self.current_task)
|
|
349
363
|
self.publish_step_status(step=self.current_step)
|
|
350
364
|
|
|
365
|
+
self.robot.pause()
|
|
366
|
+
|
|
351
367
|
def _stop(self) -> None:
|
|
352
368
|
self.stopped = True
|
|
353
369
|
|
|
@@ -59,7 +59,10 @@ class Monitor(State):
|
|
|
59
59
|
break
|
|
60
60
|
|
|
61
61
|
if self.state_machine.should_pause_mission():
|
|
62
|
-
|
|
62
|
+
if self.state_machine.stepwise_mission:
|
|
63
|
+
transition = self.state_machine.pause # type: ignore
|
|
64
|
+
else:
|
|
65
|
+
transition = self.state_machine.pause_full_mission # type: ignore
|
|
63
66
|
break
|
|
64
67
|
|
|
65
68
|
if not self.step_status_thread:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
import time
|
|
3
|
-
from typing import
|
|
3
|
+
from typing import Callable, TYPE_CHECKING
|
|
4
4
|
|
|
5
5
|
from transitions import State
|
|
6
6
|
|
|
@@ -26,7 +26,10 @@ class Paused(State):
|
|
|
26
26
|
break
|
|
27
27
|
|
|
28
28
|
if self.state_machine.should_resume_mission():
|
|
29
|
-
|
|
29
|
+
if self.state_machine.stepwise_mission:
|
|
30
|
+
transition = self.state_machine.resume # type: ignore
|
|
31
|
+
else:
|
|
32
|
+
transition = self.state_machine.resume_full_mission # type: ignore
|
|
30
33
|
break
|
|
31
34
|
|
|
32
35
|
time.sleep(self.state_machine.sleep_time)
|
|
@@ -142,6 +142,44 @@ class RobotInterface(metaclass=ABCMeta):
|
|
|
142
142
|
"""
|
|
143
143
|
raise NotImplementedError
|
|
144
144
|
|
|
145
|
+
@abstractmethod
|
|
146
|
+
def pause(self) -> None:
|
|
147
|
+
"""Pauses the execution of the current step and stops the movement of the robot.
|
|
148
|
+
|
|
149
|
+
Returns
|
|
150
|
+
-------
|
|
151
|
+
None
|
|
152
|
+
|
|
153
|
+
Raises
|
|
154
|
+
------
|
|
155
|
+
RobotActionException
|
|
156
|
+
If the robot fails to perform the requested action to pause mission execution
|
|
157
|
+
the action to pause will be attempted again until a certain number of retries
|
|
158
|
+
RobotException
|
|
159
|
+
Will catch other RobotExceptions and retry to pause the mission
|
|
160
|
+
|
|
161
|
+
"""
|
|
162
|
+
raise NotImplementedError
|
|
163
|
+
|
|
164
|
+
@abstractmethod
|
|
165
|
+
def resume(self) -> None:
|
|
166
|
+
"""Resumes the execution of the current step and continues the rest of the mission.
|
|
167
|
+
|
|
168
|
+
Returns
|
|
169
|
+
-------
|
|
170
|
+
None
|
|
171
|
+
|
|
172
|
+
Raises
|
|
173
|
+
------
|
|
174
|
+
RobotActionException
|
|
175
|
+
If the robot fails to perform the requested action to resume mission execution
|
|
176
|
+
the action to resume will be attempted again until a certain number of retries
|
|
177
|
+
RobotException
|
|
178
|
+
Will catch other RobotExceptions and retry to resume the mission
|
|
179
|
+
|
|
180
|
+
"""
|
|
181
|
+
raise NotImplementedError
|
|
182
|
+
|
|
145
183
|
@abstractmethod
|
|
146
184
|
def get_inspections(self, step: InspectionStep) -> Sequence[Inspection]:
|
|
147
185
|
"""Return the inspections connected to the given step.
|
|
@@ -51,6 +51,12 @@ class MockRobot(RobotInterface):
|
|
|
51
51
|
def stop(self) -> None:
|
|
52
52
|
return
|
|
53
53
|
|
|
54
|
+
def pause(self) -> None:
|
|
55
|
+
return
|
|
56
|
+
|
|
57
|
+
def resume(self) -> None:
|
|
58
|
+
return
|
|
59
|
+
|
|
54
60
|
def get_inspections(self, step: InspectionStep) -> Sequence[Inspection]:
|
|
55
61
|
image: Image = Image(mock_image_metadata())
|
|
56
62
|
image.data = b"Some binary image data"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{isar-1.20.3/tests/isar/state_machine/states → isar-1.21.0/src/isar/apis/schedule}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{isar-1.20.3/tests/integration/turtlebot → isar-1.21.0/src/isar}/config/maps/turtleworld.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{isar-1.20.3 → isar-1.21.0}/src/isar/config/predefined_mission_definition/default_mission.json
RENAMED
|
File without changes
|
{isar-1.20.3 → isar-1.21.0}/src/isar/config/predefined_mission_definition/default_turtlebot.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{isar-1.20.3/tests/isar/services → isar-1.21.0/src/isar/config/predefined_poses}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{isar-1.20.3/tests/isar/models/communication → isar-1.21.0/src/isar/mission_planner}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{isar-1.20.3/tests/isar/apis/security → isar-1.21.0/src/isar/models/mission_metadata}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{isar-1.20.3 → isar-1.21.0}/src/isar/services/service_connections/mqtt/robot_heartbeat_publisher.py
RENAMED
|
File without changes
|
{isar-1.20.3 → isar-1.21.0}/src/isar/services/service_connections/mqtt/robot_info_publisher.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{isar-1.20.3/tests/integration/turtlebot → isar-1.21.0/src/isar/services/utilities}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{isar-1.20.3/src/robot_interface/telemetry → isar-1.21.0/src/robot_interface/models}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{isar-1.20.3/src/robot_interface/models → isar-1.21.0/src/robot_interface/telemetry}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{isar-1.20.3/src/isar/services/utilities → isar-1.21.0/tests/integration/turtlebot}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{isar-1.20.3/src/isar → isar-1.21.0/tests/integration/turtlebot}/config/maps/turtleworld.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{isar-1.20.3/src/isar/models/mission_metadata → isar-1.21.0/tests/isar/apis/security}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{isar-1.20.3/src/isar/mission_planner → isar-1.21.0/tests/isar/models/communication}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{isar-1.20.3/src/isar/config/predefined_poses → isar-1.21.0/tests/isar/services}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{isar-1.20.3 → isar-1.21.0}/tests/isar/services/service_connections/test_base_request_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{isar-1.20.3/src/isar/apis/schedule → isar-1.21.0/tests/isar/state_machine/states}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|