wandelbots-nova 3.4.0__tar.gz → 3.4.2__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.
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/PKG-INFO +101 -74
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/README.md +99 -72
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/core/movement_controller.py +9 -9
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/pyproject.toml +3 -3
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/.gitignore +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/LICENSE +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/actions/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/actions/base.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/actions/container.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/actions/io.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/actions/mock.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/actions/motions.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/actions/trajectory_builder.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/api.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/api.pyi +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/auth/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/auth/auth_config.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/auth/authorization.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/cell/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/cell/cell.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/cell/controllers.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/cell/robot_cell.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/cell/simulation.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/config.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/core/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/core/controller.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/core/env_handler.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/core/exceptions.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/core/gateway.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/core/io.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/core/logging.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/core/motion_group.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/core/nova.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/core/tuner.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/events/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/extentions/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/extentions/opcua/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/extentions/opcua/client.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/extentions/opcua/functions.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/logging/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/nats/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/nats/client.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/nats/message.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/program/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/program/exceptions.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/program/function.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/program/runner.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/program/store.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/program/utils.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/types/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/types/collision_scene.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/types/motion_settings.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/types/pose.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/types/state.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/types/vector3d.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/utils/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/utils/timestamp.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/version.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/viewers/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/viewers/base.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/viewers/manager.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/viewers/protocol.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/viewers/rerun.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/viewers/utils.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/LICENSE +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/README.md +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/README.md +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/benchmark_base.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/dataset/README.md +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/dataset/demo_set.yaml +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/dataset/mb_set.yaml +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/dataset/mpinets_set.yaml +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/datasets.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/log_successful_planning.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/robometrics_helper.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/run_collision_free_benchmark.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/run_collision_free_magma.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/run_ptp_benchmark.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/blueprint.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/collision_scene.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/colors.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/consts.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/conversion_helpers.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/dh_robot.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/example_data/Welding_Benchmark_USA_01.stl +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/example_data/bin_everything_05.ply +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/example_data/colliders.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/example_data/source.md +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/example_data/tool.stl +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/example_data/yaskawa_ar1440_rif_with_safety_zones.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/examples/collison_world.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/examples/import_ply.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/examples/reachability_check.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/examples/robocore.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/examples/stream_robot.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/examples/use_nova_rerun_bridge.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/examples/visualize_tool.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/examples/wait_action.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/examples/welding_example.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/examples/yaskawa-ar1440-16-mounting.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/examples/yaskawa-ar1440-with-external-axis.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/helper_scripts/README.md +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/helper_scripts/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/helper_scripts/code_server_helpers.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/helper_scripts/download_models.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/helper_scripts/plan_with_collisions.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/hull_visualizer.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/minimal_example/.gitignore +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/minimal_example/README.md +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/minimal_example/main.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/minimal_example/poetry.toml +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/minimal_example/pyproject.toml +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/minimal_example/ruff.toml +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/minimal_example/uv.lock +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/motion_recorder.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/motion_storage.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/.dockerignore +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/.nova +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/Dockerfile +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/app.yaml +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/build.sh +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/data/README.md +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/deployment.yaml +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/ingress.yaml +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/kustomization.yaml +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/namespace.yaml +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/nginx.conf +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/nginx.http.conf.template +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/skaffold.yaml +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/start.sh +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/static/app_icon.png +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/polling/populate.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/.dockerignore +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/.nova +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/Dockerfile +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/app.yaml +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/build.sh +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/k8s/deployment.yaml +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/k8s/ingress.yaml +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/k8s/kustomization.yaml +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/k8s/namespace.yaml +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/nginx.conf +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/nginx.http.conf.template +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/skaffold.yaml +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/start.sh +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/static/app_icon.png +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/robot_visualizer.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/safety_zones.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/stream_state.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/trajectory.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/novax/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/novax/api/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/novax/api/dependencies.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/novax/api/programs.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/novax/config.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/novax/novax.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/novax/program_manager.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/nova_rerun_bridge/test_blueprint.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/nova_rerun_bridge/test_log_motion.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/nova_rerun_bridge/test_nova_rerun_bridge.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/nova_rerun_bridge/test_trajectory.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/novax/api/test_nats.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/novax/api/test_program_cycle.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/novax/api/test_program_registry.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/novax/api/test_program_run.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/novax/api/test_programs.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/novax/conftest.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/novax/serve.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/novax/test_program_manager.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/vscode-ext/src/nova/readRobotPose.ts +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/vscode-ext/src/nova/selection.ts +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/CHANGELOG.md +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/README.md +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/__main__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/antlrvisitor.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/builtins/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/builtins/array.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/builtins/assoc.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/builtins/controller.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/builtins/fetch.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/builtins/fs.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/builtins/math.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/builtins/pose.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/builtins/string.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/builtins/wait.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/builtins.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/cli.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/datatypes.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/and_or.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/and_or.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/array.config +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/array.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/array.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/assignment.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/assignment.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/async_write.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/async_write.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/blending.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/blending.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/bool_negation.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/bool_negation.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/builtins.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/builtins.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/comments.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/comments.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/context.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/context.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/controller.cell.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/controller.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/controller.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/coordinate_systems.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/coordinate_systems.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/default.cell.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/default.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/default.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/edge_pattern.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/edge_pattern.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/edge_pattern_line.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/edge_pattern_line.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/edge_pattern_manhattan.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/edge_pattern_manhattan.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/empty.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/empty.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/expressions.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/expressions.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/fetch.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/fetch.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/find_edge_from_4_poses.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/find_edge_from_4_poses.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/frame.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/frame.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/frame2.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/frame2.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/frame3.cell.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/frame3.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/frame3.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/function.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/function.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/functional_pose.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/functional_pose.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/get_pose.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/get_pose.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/ifelse.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/ifelse.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/interpolation.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/interpolation.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/interrupt.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/interrupt.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/io.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/io.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/loops.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/loops.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/move.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/move.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/move_via_expression.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/move_via_expression.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/move_with_velocity.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/move_with_velocity.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/multiple_robots.cell.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/multiple_robots.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/multiple_robots.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/multiple_robots2.cell.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/multiple_robots2.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/multiple_robots2.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/multiple_robots3.cell.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/multiple_robots3.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/multiple_robots3.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/not.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/not.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/operator_precedence.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/operator_precedence.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/pose.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/pose.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/poses2.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/poses2.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/print.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/print.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/record.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/record.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/scope.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/scope.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/spline.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/spline.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/switch.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/switch.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/tcps.cell.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/tcps.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/tcps.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/tower_of_hanoi.cell.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/tower_of_hanoi.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/tower_of_hanoi.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/try.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/try.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/vision_move.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/vision_move.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/wait.config +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/wait.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/wait.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/wandelchat2.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/wandelchat2.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/wandelchat3.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/wandelchat3.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/whitespaces.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/whitespaces.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/wp393.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/wp393.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/wp469.json +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/wp469.ws +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/exception.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/ffi.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/ffi_loader.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/frames.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/WandelscriptLexerBase.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/wandelscriptLexer.g4 +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/wandelscriptLexer.interp +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/wandelscriptLexer.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/wandelscriptLexer.tokens +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/wandelscriptParser.g4 +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/wandelscriptParser.interp +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/wandelscriptParser.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/wandelscriptParser.tokens +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/wandelscriptParserListener.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/wandelscriptParserVisitor.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/metamodel.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/migration.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/models.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/motions.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/operators.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/runner.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/runtime.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/scripts/generate_parser.sh +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_builtins.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_examples.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_executor.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_ffi.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_migration.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_motion.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_move.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_multirobot.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_parser.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_programs.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_run_twice.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_runner.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_runtime.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_simulation.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_stepwise.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_store.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_two_step_execution.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_types.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/utils/__init__.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/utils/pose.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/utils/runtime.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/utils/serializer.py +0 -0
- {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/version.py +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wandelbots-nova
|
|
3
|
-
Version: 3.4.
|
|
3
|
+
Version: 3.4.2
|
|
4
4
|
Summary: Official Python SDK for the Wandelbots Nova
|
|
5
5
|
Author: Wandelbots GmbH
|
|
6
6
|
Author-email: Christoph Biering <christoph.biering@wandelbots.com>, Mahsum Demir <mahsum.demir@wandelbots.com>, Dirk Sonnemann <dirk.sonnemann@wandelbots.com>, Andreas Langenhagen <andreas.langenhagen@wandelbots.com>, Stefan Wagner <stefan.wagner@wandelbots.com>, André Kühnert <andre.kuhnert@wandelbots.com>
|
|
7
7
|
License-File: LICENSE
|
|
8
|
-
Requires-Python: <3.13,>=3.
|
|
8
|
+
Requires-Python: <3.13,>=3.10
|
|
9
9
|
Requires-Dist: aiostream<0.7,>=0.6.4
|
|
10
10
|
Requires-Dist: anyio<5,>=4.8.0
|
|
11
11
|
Requires-Dist: asyncstdlib<4,>=3.13.0
|
|
@@ -60,7 +60,28 @@ The SDK will help you to build your own apps and services using Python on top of
|
|
|
60
60
|
|
|
61
61
|
[417768496-f6157e4b-eea8-4b96-b302-1f3864ae44a9.webm](https://github.com/user-attachments/assets/ca7de6ba-c78d-414f-ae8f-f76d0890caf3)
|
|
62
62
|
|
|
63
|
-
##
|
|
63
|
+
## Table of Contents
|
|
64
|
+
|
|
65
|
+
- [Overview](#overview)
|
|
66
|
+
- [Prerequisites](#prerequisites)
|
|
67
|
+
- [Quickstart](#quickstart)
|
|
68
|
+
- [Installation](#installation)
|
|
69
|
+
- [Install with pip](#install-with-pip)
|
|
70
|
+
- [Install with uv and rerun visualization](#install-with-uv-and-rerun-visualization)
|
|
71
|
+
- [Configure environment variables](#configure-environment-variables)
|
|
72
|
+
- [Using the SDK](#using-the-sdk)
|
|
73
|
+
- [API essentials](#api-essentials)
|
|
74
|
+
- [Example gallery](#example-gallery)
|
|
75
|
+
- [Basic usage](#basic-usage)
|
|
76
|
+
- [Robot motion recipes](#robot-motion-recipes)
|
|
77
|
+
- [Advanced features](#advanced-features)
|
|
78
|
+
- [Wandelscript](#wandelscript)
|
|
79
|
+
- [NOVAx](#novax)
|
|
80
|
+
- [Development](#development)
|
|
81
|
+
- [Release process](#release-process)
|
|
82
|
+
- [Additional resources](#additional-resources)
|
|
83
|
+
|
|
84
|
+
## Overview
|
|
64
85
|
|
|
65
86
|
[Wandelbots NOVA OS](https://www.wandelbots.com/) is a robot-agnostic operating system that enables developers to plan, program, control, and operate fleets of six-axis industrial robots through a unified API, across all major robot brands. It integrates modern development tools like Python and JavaScript APIs with AI-based control and motion planning, allowing developers to build automation tasks such as gluing, grinding, welding, and palletizing without needing to account for hardware differences. The software offers a powerful set of tools that support the creation of custom automation solutions throughout the entire automation lifecycle.
|
|
66
87
|
|
|
@@ -70,15 +91,23 @@ The SDK will help you to build your own apps and services using Python on top of
|
|
|
70
91
|
- Valid NOVA API credentials
|
|
71
92
|
- Python >=3.10
|
|
72
93
|
|
|
94
|
+
## Quickstart
|
|
95
|
+
|
|
96
|
+
1. Install the SDK using `pip` or set up a local `uv` project with extras for visualization. Refer to the [Installation](#installation) section for both options.
|
|
97
|
+
2. Copy `.env.template` to `.env` and fill in the base URL and access token for your NOVA deployment. Details are covered in [Configure environment variables](#configure-environment-variables).
|
|
98
|
+
3. Run an example to validate the setup, e.g. `uv run python examples/basic.py`. Install the rerun extras and execute `uv run download-models` if you want interactive 3D visualization out of the box.
|
|
99
|
+
|
|
73
100
|
## Installation
|
|
74
101
|
|
|
102
|
+
### Install with pip
|
|
103
|
+
|
|
75
104
|
Install the library using pip:
|
|
76
105
|
|
|
77
106
|
```bash
|
|
78
107
|
pip install wandelbots-nova
|
|
79
108
|
```
|
|
80
109
|
|
|
81
|
-
###
|
|
110
|
+
### Install with uv and rerun visualization
|
|
82
111
|
|
|
83
112
|
Install [uv](https://docs.astral.sh/uv/getting-started/installation/) on your system.
|
|
84
113
|
|
|
@@ -101,7 +130,7 @@ Download the robot models to visualize them in the rerun viewer.
|
|
|
101
130
|
uv run download-models
|
|
102
131
|
```
|
|
103
132
|
|
|
104
|
-
### Environment
|
|
133
|
+
### Configure Environment Variables
|
|
105
134
|
|
|
106
135
|
Copy the provided `.env.template` file and rename it to `.env`:
|
|
107
136
|
|
|
@@ -114,73 +143,16 @@ Open the `.env` file in a text editor and fill in the values. Here's what each v
|
|
|
114
143
|
| Variable | Description | Required | Default | Example |
|
|
115
144
|
| ------------------- | ----------------------------------------------------------------------------------- | -------- | ------- | ------------------------------------------------ |
|
|
116
145
|
| `NOVA_API` | Base URL or hostname of the Wandelbots NOVA server instance | Yes | None | `https://nova.example.com` or `http://172.0.0.1` |
|
|
117
|
-
| `
|
|
118
|
-
| `NOVA_PASSWORD` | Password credential used in conjunction with `NOVA_USERNAME` | Yes\* | None | `my_password` |
|
|
119
|
-
| `NOVA_ACCESS_TOKEN` | Pre-obtained access token for Wandelbots NOVA (if using token-based authentication) | Yes\* | None | `eyJhbGciOi...` |
|
|
146
|
+
| `NOVA_ACCESS_TOKEN` | Pre-obtained access token for Wandelbots NOVA (cloud or self-hosted deployments) | Yes\* | None | `eyJhbGciOi...` |
|
|
120
147
|
|
|
121
148
|
> **Note:**
|
|
122
|
-
>
|
|
123
|
-
>
|
|
124
|
-
> -
|
|
125
|
-
> - **Token-based authentication**: Ensure `NOVA_ACCESS_TOKEN` is set, and leave `NOVA_USERNAME` and `NOVA_PASSWORD` unset.
|
|
126
|
-
>
|
|
127
|
-
> **Use only one method at a time**. If both are set, token-based authentication takes precedence.
|
|
128
|
-
|
|
129
|
-
## Wandelscript
|
|
130
|
-
|
|
131
|
-
Wandelscript is a domain-specific language for programming robots.
|
|
132
|
-
It is a declarative language that allows you to describe the robot's behavior in a high-level way.
|
|
133
|
-
Wandelscript is suited to get yourself familiar with robot programming.
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
uv add wandelbots-nova --extra wandelscript
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
Here is a simple example of a Wandelscript program:
|
|
140
|
-
|
|
141
|
-
```python
|
|
142
|
-
robot = get_controller("controller")[0]
|
|
143
|
-
tcp("Flange")
|
|
144
|
-
home = read(robot, "pose")
|
|
145
|
-
sync
|
|
146
|
-
|
|
147
|
-
# Set the velocity of the robot to 200 mm/s
|
|
148
|
-
velocity(200)
|
|
149
|
-
|
|
150
|
-
for i = 0..3:
|
|
151
|
-
move via ptp() to home
|
|
152
|
-
# Move to a pose concatenating the home pose
|
|
153
|
-
move via line() to (50, 20, 30, 0, 0, 0) :: home
|
|
154
|
-
move via line() to (100, 20, 30, 0, 0, 0) :: home
|
|
155
|
-
move via line() to (50, 20, 30, 0, 0, 0) :: home
|
|
156
|
-
move via ptp() to home
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
To get started, use the [Quickstart](https://docs.wandelbots.io/latest/pathplanning-maintained/wandelscript/quickstart).
|
|
160
|
-
implementation details or contributing to Wandelscript, refer to the [Wandelscript readme](/wandelscript/README.md).
|
|
161
|
-
|
|
162
|
-
## NOVAx
|
|
163
|
-
|
|
164
|
-
NOVAx is an app framework for building server applications on top of Wandelbots NOVA.
|
|
165
|
-
It provides common core concepts like the handling of programs and their execution.
|
|
166
|
-
|
|
167
|
-
You can create a new NOVAx app using the [NOVA CLI](https://github.com/wandelbotsgmbh/nova-cli) generator:
|
|
168
|
-
|
|
169
|
-
```bash
|
|
170
|
-
nova app create "your-nova-app" -g python_app
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
For more information on using NOVAx see the [README](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/your-nova-app/README.md). Explore [this example](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/your-nova-app/your-nova-app/app.py) to use the NOVAx entry point.
|
|
174
|
-
|
|
175
|
-
> **Important:** When using NOVAx, you must import the actual program functions from their respective Python files. Only importing the program files won't suffice. This ensures proper function registration and execution within the NOVAx runtime environment.
|
|
176
|
-
|
|
177
|
-
## 🚀 Quickstart
|
|
149
|
+
> - `NOVA_API` is mandatory in every deployment. Always point it to the NOVA base URL you are targeting.
|
|
150
|
+
> - `NOVA_ACCESS_TOKEN` is the supported authentication mechanism. It is mandatory for the Wandelbots Cloud environment; for self-hosted deployments generate and supply a token with the required permissions.
|
|
151
|
+
> - Username/password authentication (`NOVA_USERNAME`/`NOVA_PASSWORD`) is deprecated and no longer supported.
|
|
178
152
|
|
|
179
|
-
|
|
153
|
+
## Using the SDK
|
|
180
154
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
## Usage
|
|
155
|
+
### API essentials
|
|
184
156
|
|
|
185
157
|
Import the library in your code to get started.
|
|
186
158
|
|
|
@@ -196,15 +168,15 @@ from nova import api
|
|
|
196
168
|
|
|
197
169
|
Check out the [basic](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/basic.py) and [plan_and_execute](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/plan_and_execute.py) examples to learn how to use the library.
|
|
198
170
|
|
|
199
|
-
|
|
171
|
+
### Example gallery
|
|
200
172
|
|
|
201
|
-
|
|
173
|
+
Curated examples in this repository showcase typical SDK workflows:
|
|
202
174
|
|
|
203
175
|
- **[Advanced SDK usage](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples)**
|
|
204
176
|
- **[3D visualization](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples)**
|
|
205
177
|
- **[Advanced Rerun integration](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/nova_rerun_bridge/examples)**
|
|
206
178
|
|
|
207
|
-
|
|
179
|
+
#### Basic usage
|
|
208
180
|
|
|
209
181
|
```python
|
|
210
182
|
import nova
|
|
@@ -240,7 +212,7 @@ async def main():
|
|
|
240
212
|
current_pose = await motion_group.tcp_pose(tcp)
|
|
241
213
|
```
|
|
242
214
|
|
|
243
|
-
|
|
215
|
+
#### Robot motion recipes
|
|
244
216
|
|
|
245
217
|
1. **Basic Point-to-Point movement**
|
|
246
218
|
|
|
@@ -297,7 +269,7 @@ More information in [move_multiple_robots](https://github.com/wandelbotsgmbh/wan
|
|
|
297
269
|
4. **Synchronous execution start of multiple motion groups**
|
|
298
270
|
Explore coordinated execution with [multi_motion_group](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/multi_motion_group.py).
|
|
299
271
|
|
|
300
|
-
|
|
272
|
+
#### Advanced features
|
|
301
273
|
|
|
302
274
|
1. **Input/Output control**
|
|
303
275
|
|
|
@@ -345,7 +317,7 @@ async def main():
|
|
|
345
317
|
)
|
|
346
318
|
```
|
|
347
319
|
|
|
348
|
-
> **Note**: Install [rerun extras](#
|
|
320
|
+
> **Note**: Install [rerun extras](#install-with-uv-and-rerun-visualization) to enable visualization
|
|
349
321
|
|
|
350
322
|
<img width="1242" alt="pointcloud" src="https://github.com/user-attachments/assets/8e981f09-81ae-4e71-9851-42611f6b1843" />
|
|
351
323
|
|
|
@@ -497,6 +469,54 @@ async def setup_coordinated_robots():
|
|
|
497
469
|
|
|
498
470
|
<img width="100%" alt="thumbnail" src="https://github.com/user-attachments/assets/6f0c441e-b133-4a3a-bf0e-0e947d3efad4" />
|
|
499
471
|
|
|
472
|
+
## Wandelscript
|
|
473
|
+
|
|
474
|
+
Wandelscript is a domain-specific language for programming robots.
|
|
475
|
+
It is a declarative language that allows you to describe the robot's behavior in a high-level way.
|
|
476
|
+
Wandelscript is suited to get yourself familiar with robot programming.
|
|
477
|
+
|
|
478
|
+
```bash
|
|
479
|
+
uv add wandelbots-nova --extra wandelscript
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
Here is a simple example of a Wandelscript program:
|
|
483
|
+
|
|
484
|
+
```python
|
|
485
|
+
robot = get_controller("controller")[0]
|
|
486
|
+
tcp("Flange")
|
|
487
|
+
home = read(robot, "pose")
|
|
488
|
+
sync
|
|
489
|
+
|
|
490
|
+
# Set the velocity of the robot to 200 mm/s
|
|
491
|
+
velocity(200)
|
|
492
|
+
|
|
493
|
+
for i = 0..3:
|
|
494
|
+
move via ptp() to home
|
|
495
|
+
# Move to a pose concatenating the home pose
|
|
496
|
+
move via line() to (50, 20, 30, 0, 0, 0) :: home
|
|
497
|
+
move via line() to (100, 20, 30, 0, 0, 0) :: home
|
|
498
|
+
move via line() to (50, 20, 30, 0, 0, 0) :: home
|
|
499
|
+
move via ptp() to home
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
To get started, use the [Quickstart](https://docs.wandelbots.io/latest/pathplanning-maintained/wandelscript/quickstart).
|
|
503
|
+
For implementation details or contributing to Wandelscript, refer to the [Wandelscript readme](/wandelscript/README.md).
|
|
504
|
+
|
|
505
|
+
## NOVAx
|
|
506
|
+
|
|
507
|
+
NOVAx is an app framework for building server applications on top of Wandelbots NOVA.
|
|
508
|
+
It provides common core concepts like the handling of programs and their execution.
|
|
509
|
+
|
|
510
|
+
You can create a new NOVAx app using the [NOVA CLI](https://github.com/wandelbotsgmbh/nova-cli) generator:
|
|
511
|
+
|
|
512
|
+
```bash
|
|
513
|
+
nova app create "your-nova-app" -g python_app
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
For more information on using NOVAx see the [README](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/your-nova-app/README.md). Explore [this example](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/your-nova-app/your-nova-app/app.py) to use the NOVAx entry point.
|
|
517
|
+
|
|
518
|
+
> **Important:** When using NOVAx, you must import the actual program functions from their respective Python files. Only importing the program files won't suffice. This ensures proper function registration and execution within the NOVAx runtime environment.
|
|
519
|
+
|
|
500
520
|
## Development
|
|
501
521
|
|
|
502
522
|
To install development dependencies, run
|
|
@@ -573,3 +593,10 @@ Need a temporary test build? Use GitHub actions:
|
|
|
573
593
|
```bash
|
|
574
594
|
pip install "wandelbots-nova @ git+https://github.com/wandelbotsgmbh/wandelbots-nova.git@<commit>"
|
|
575
595
|
```
|
|
596
|
+
|
|
597
|
+
## Additional resources
|
|
598
|
+
|
|
599
|
+
- [Examples](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples) covering basic to advanced SDK scenarios
|
|
600
|
+
- [Technical wiki](https://deepwiki.com/wandelbotsgmbh/wandelbots-nova) with architecture notes and troubleshooting tips
|
|
601
|
+
- [Official documentation](https://docs.wandelbots.io/) for platform concepts and API guides
|
|
602
|
+
- [Code documentation](https://wandelbotsgmbh.github.io/wandelbots-nova/) generated from the latest SDK build
|
|
@@ -11,7 +11,28 @@ The SDK will help you to build your own apps and services using Python on top of
|
|
|
11
11
|
|
|
12
12
|
[417768496-f6157e4b-eea8-4b96-b302-1f3864ae44a9.webm](https://github.com/user-attachments/assets/ca7de6ba-c78d-414f-ae8f-f76d0890caf3)
|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## Table of Contents
|
|
15
|
+
|
|
16
|
+
- [Overview](#overview)
|
|
17
|
+
- [Prerequisites](#prerequisites)
|
|
18
|
+
- [Quickstart](#quickstart)
|
|
19
|
+
- [Installation](#installation)
|
|
20
|
+
- [Install with pip](#install-with-pip)
|
|
21
|
+
- [Install with uv and rerun visualization](#install-with-uv-and-rerun-visualization)
|
|
22
|
+
- [Configure environment variables](#configure-environment-variables)
|
|
23
|
+
- [Using the SDK](#using-the-sdk)
|
|
24
|
+
- [API essentials](#api-essentials)
|
|
25
|
+
- [Example gallery](#example-gallery)
|
|
26
|
+
- [Basic usage](#basic-usage)
|
|
27
|
+
- [Robot motion recipes](#robot-motion-recipes)
|
|
28
|
+
- [Advanced features](#advanced-features)
|
|
29
|
+
- [Wandelscript](#wandelscript)
|
|
30
|
+
- [NOVAx](#novax)
|
|
31
|
+
- [Development](#development)
|
|
32
|
+
- [Release process](#release-process)
|
|
33
|
+
- [Additional resources](#additional-resources)
|
|
34
|
+
|
|
35
|
+
## Overview
|
|
15
36
|
|
|
16
37
|
[Wandelbots NOVA OS](https://www.wandelbots.com/) is a robot-agnostic operating system that enables developers to plan, program, control, and operate fleets of six-axis industrial robots through a unified API, across all major robot brands. It integrates modern development tools like Python and JavaScript APIs with AI-based control and motion planning, allowing developers to build automation tasks such as gluing, grinding, welding, and palletizing without needing to account for hardware differences. The software offers a powerful set of tools that support the creation of custom automation solutions throughout the entire automation lifecycle.
|
|
17
38
|
|
|
@@ -21,15 +42,23 @@ The SDK will help you to build your own apps and services using Python on top of
|
|
|
21
42
|
- Valid NOVA API credentials
|
|
22
43
|
- Python >=3.10
|
|
23
44
|
|
|
45
|
+
## Quickstart
|
|
46
|
+
|
|
47
|
+
1. Install the SDK using `pip` or set up a local `uv` project with extras for visualization. Refer to the [Installation](#installation) section for both options.
|
|
48
|
+
2. Copy `.env.template` to `.env` and fill in the base URL and access token for your NOVA deployment. Details are covered in [Configure environment variables](#configure-environment-variables).
|
|
49
|
+
3. Run an example to validate the setup, e.g. `uv run python examples/basic.py`. Install the rerun extras and execute `uv run download-models` if you want interactive 3D visualization out of the box.
|
|
50
|
+
|
|
24
51
|
## Installation
|
|
25
52
|
|
|
53
|
+
### Install with pip
|
|
54
|
+
|
|
26
55
|
Install the library using pip:
|
|
27
56
|
|
|
28
57
|
```bash
|
|
29
58
|
pip install wandelbots-nova
|
|
30
59
|
```
|
|
31
60
|
|
|
32
|
-
###
|
|
61
|
+
### Install with uv and rerun visualization
|
|
33
62
|
|
|
34
63
|
Install [uv](https://docs.astral.sh/uv/getting-started/installation/) on your system.
|
|
35
64
|
|
|
@@ -52,7 +81,7 @@ Download the robot models to visualize them in the rerun viewer.
|
|
|
52
81
|
uv run download-models
|
|
53
82
|
```
|
|
54
83
|
|
|
55
|
-
### Environment
|
|
84
|
+
### Configure Environment Variables
|
|
56
85
|
|
|
57
86
|
Copy the provided `.env.template` file and rename it to `.env`:
|
|
58
87
|
|
|
@@ -65,73 +94,16 @@ Open the `.env` file in a text editor and fill in the values. Here's what each v
|
|
|
65
94
|
| Variable | Description | Required | Default | Example |
|
|
66
95
|
| ------------------- | ----------------------------------------------------------------------------------- | -------- | ------- | ------------------------------------------------ |
|
|
67
96
|
| `NOVA_API` | Base URL or hostname of the Wandelbots NOVA server instance | Yes | None | `https://nova.example.com` or `http://172.0.0.1` |
|
|
68
|
-
| `
|
|
69
|
-
| `NOVA_PASSWORD` | Password credential used in conjunction with `NOVA_USERNAME` | Yes\* | None | `my_password` |
|
|
70
|
-
| `NOVA_ACCESS_TOKEN` | Pre-obtained access token for Wandelbots NOVA (if using token-based authentication) | Yes\* | None | `eyJhbGciOi...` |
|
|
97
|
+
| `NOVA_ACCESS_TOKEN` | Pre-obtained access token for Wandelbots NOVA (cloud or self-hosted deployments) | Yes\* | None | `eyJhbGciOi...` |
|
|
71
98
|
|
|
72
99
|
> **Note:**
|
|
73
|
-
>
|
|
74
|
-
>
|
|
75
|
-
> -
|
|
76
|
-
> - **Token-based authentication**: Ensure `NOVA_ACCESS_TOKEN` is set, and leave `NOVA_USERNAME` and `NOVA_PASSWORD` unset.
|
|
77
|
-
>
|
|
78
|
-
> **Use only one method at a time**. If both are set, token-based authentication takes precedence.
|
|
79
|
-
|
|
80
|
-
## Wandelscript
|
|
81
|
-
|
|
82
|
-
Wandelscript is a domain-specific language for programming robots.
|
|
83
|
-
It is a declarative language that allows you to describe the robot's behavior in a high-level way.
|
|
84
|
-
Wandelscript is suited to get yourself familiar with robot programming.
|
|
85
|
-
|
|
86
|
-
```bash
|
|
87
|
-
uv add wandelbots-nova --extra wandelscript
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
Here is a simple example of a Wandelscript program:
|
|
91
|
-
|
|
92
|
-
```python
|
|
93
|
-
robot = get_controller("controller")[0]
|
|
94
|
-
tcp("Flange")
|
|
95
|
-
home = read(robot, "pose")
|
|
96
|
-
sync
|
|
97
|
-
|
|
98
|
-
# Set the velocity of the robot to 200 mm/s
|
|
99
|
-
velocity(200)
|
|
100
|
-
|
|
101
|
-
for i = 0..3:
|
|
102
|
-
move via ptp() to home
|
|
103
|
-
# Move to a pose concatenating the home pose
|
|
104
|
-
move via line() to (50, 20, 30, 0, 0, 0) :: home
|
|
105
|
-
move via line() to (100, 20, 30, 0, 0, 0) :: home
|
|
106
|
-
move via line() to (50, 20, 30, 0, 0, 0) :: home
|
|
107
|
-
move via ptp() to home
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
To get started, use the [Quickstart](https://docs.wandelbots.io/latest/pathplanning-maintained/wandelscript/quickstart).
|
|
111
|
-
implementation details or contributing to Wandelscript, refer to the [Wandelscript readme](/wandelscript/README.md).
|
|
112
|
-
|
|
113
|
-
## NOVAx
|
|
114
|
-
|
|
115
|
-
NOVAx is an app framework for building server applications on top of Wandelbots NOVA.
|
|
116
|
-
It provides common core concepts like the handling of programs and their execution.
|
|
117
|
-
|
|
118
|
-
You can create a new NOVAx app using the [NOVA CLI](https://github.com/wandelbotsgmbh/nova-cli) generator:
|
|
119
|
-
|
|
120
|
-
```bash
|
|
121
|
-
nova app create "your-nova-app" -g python_app
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
For more information on using NOVAx see the [README](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/your-nova-app/README.md). Explore [this example](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/your-nova-app/your-nova-app/app.py) to use the NOVAx entry point.
|
|
125
|
-
|
|
126
|
-
> **Important:** When using NOVAx, you must import the actual program functions from their respective Python files. Only importing the program files won't suffice. This ensures proper function registration and execution within the NOVAx runtime environment.
|
|
127
|
-
|
|
128
|
-
## 🚀 Quickstart
|
|
100
|
+
> - `NOVA_API` is mandatory in every deployment. Always point it to the NOVA base URL you are targeting.
|
|
101
|
+
> - `NOVA_ACCESS_TOKEN` is the supported authentication mechanism. It is mandatory for the Wandelbots Cloud environment; for self-hosted deployments generate and supply a token with the required permissions.
|
|
102
|
+
> - Username/password authentication (`NOVA_USERNAME`/`NOVA_PASSWORD`) is deprecated and no longer supported.
|
|
129
103
|
|
|
130
|
-
|
|
104
|
+
## Using the SDK
|
|
131
105
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
## Usage
|
|
106
|
+
### API essentials
|
|
135
107
|
|
|
136
108
|
Import the library in your code to get started.
|
|
137
109
|
|
|
@@ -147,15 +119,15 @@ from nova import api
|
|
|
147
119
|
|
|
148
120
|
Check out the [basic](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/basic.py) and [plan_and_execute](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/plan_and_execute.py) examples to learn how to use the library.
|
|
149
121
|
|
|
150
|
-
|
|
122
|
+
### Example gallery
|
|
151
123
|
|
|
152
|
-
|
|
124
|
+
Curated examples in this repository showcase typical SDK workflows:
|
|
153
125
|
|
|
154
126
|
- **[Advanced SDK usage](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples)**
|
|
155
127
|
- **[3D visualization](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples)**
|
|
156
128
|
- **[Advanced Rerun integration](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/nova_rerun_bridge/examples)**
|
|
157
129
|
|
|
158
|
-
|
|
130
|
+
#### Basic usage
|
|
159
131
|
|
|
160
132
|
```python
|
|
161
133
|
import nova
|
|
@@ -191,7 +163,7 @@ async def main():
|
|
|
191
163
|
current_pose = await motion_group.tcp_pose(tcp)
|
|
192
164
|
```
|
|
193
165
|
|
|
194
|
-
|
|
166
|
+
#### Robot motion recipes
|
|
195
167
|
|
|
196
168
|
1. **Basic Point-to-Point movement**
|
|
197
169
|
|
|
@@ -248,7 +220,7 @@ More information in [move_multiple_robots](https://github.com/wandelbotsgmbh/wan
|
|
|
248
220
|
4. **Synchronous execution start of multiple motion groups**
|
|
249
221
|
Explore coordinated execution with [multi_motion_group](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/multi_motion_group.py).
|
|
250
222
|
|
|
251
|
-
|
|
223
|
+
#### Advanced features
|
|
252
224
|
|
|
253
225
|
1. **Input/Output control**
|
|
254
226
|
|
|
@@ -296,7 +268,7 @@ async def main():
|
|
|
296
268
|
)
|
|
297
269
|
```
|
|
298
270
|
|
|
299
|
-
> **Note**: Install [rerun extras](#
|
|
271
|
+
> **Note**: Install [rerun extras](#install-with-uv-and-rerun-visualization) to enable visualization
|
|
300
272
|
|
|
301
273
|
<img width="1242" alt="pointcloud" src="https://github.com/user-attachments/assets/8e981f09-81ae-4e71-9851-42611f6b1843" />
|
|
302
274
|
|
|
@@ -448,6 +420,54 @@ async def setup_coordinated_robots():
|
|
|
448
420
|
|
|
449
421
|
<img width="100%" alt="thumbnail" src="https://github.com/user-attachments/assets/6f0c441e-b133-4a3a-bf0e-0e947d3efad4" />
|
|
450
422
|
|
|
423
|
+
## Wandelscript
|
|
424
|
+
|
|
425
|
+
Wandelscript is a domain-specific language for programming robots.
|
|
426
|
+
It is a declarative language that allows you to describe the robot's behavior in a high-level way.
|
|
427
|
+
Wandelscript is suited to get yourself familiar with robot programming.
|
|
428
|
+
|
|
429
|
+
```bash
|
|
430
|
+
uv add wandelbots-nova --extra wandelscript
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
Here is a simple example of a Wandelscript program:
|
|
434
|
+
|
|
435
|
+
```python
|
|
436
|
+
robot = get_controller("controller")[0]
|
|
437
|
+
tcp("Flange")
|
|
438
|
+
home = read(robot, "pose")
|
|
439
|
+
sync
|
|
440
|
+
|
|
441
|
+
# Set the velocity of the robot to 200 mm/s
|
|
442
|
+
velocity(200)
|
|
443
|
+
|
|
444
|
+
for i = 0..3:
|
|
445
|
+
move via ptp() to home
|
|
446
|
+
# Move to a pose concatenating the home pose
|
|
447
|
+
move via line() to (50, 20, 30, 0, 0, 0) :: home
|
|
448
|
+
move via line() to (100, 20, 30, 0, 0, 0) :: home
|
|
449
|
+
move via line() to (50, 20, 30, 0, 0, 0) :: home
|
|
450
|
+
move via ptp() to home
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
To get started, use the [Quickstart](https://docs.wandelbots.io/latest/pathplanning-maintained/wandelscript/quickstart).
|
|
454
|
+
For implementation details or contributing to Wandelscript, refer to the [Wandelscript readme](/wandelscript/README.md).
|
|
455
|
+
|
|
456
|
+
## NOVAx
|
|
457
|
+
|
|
458
|
+
NOVAx is an app framework for building server applications on top of Wandelbots NOVA.
|
|
459
|
+
It provides common core concepts like the handling of programs and their execution.
|
|
460
|
+
|
|
461
|
+
You can create a new NOVAx app using the [NOVA CLI](https://github.com/wandelbotsgmbh/nova-cli) generator:
|
|
462
|
+
|
|
463
|
+
```bash
|
|
464
|
+
nova app create "your-nova-app" -g python_app
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
For more information on using NOVAx see the [README](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/your-nova-app/README.md). Explore [this example](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/your-nova-app/your-nova-app/app.py) to use the NOVAx entry point.
|
|
468
|
+
|
|
469
|
+
> **Important:** When using NOVAx, you must import the actual program functions from their respective Python files. Only importing the program files won't suffice. This ensures proper function registration and execution within the NOVAx runtime environment.
|
|
470
|
+
|
|
451
471
|
## Development
|
|
452
472
|
|
|
453
473
|
To install development dependencies, run
|
|
@@ -524,3 +544,10 @@ Need a temporary test build? Use GitHub actions:
|
|
|
524
544
|
```bash
|
|
525
545
|
pip install "wandelbots-nova @ git+https://github.com/wandelbotsgmbh/wandelbots-nova.git@<commit>"
|
|
526
546
|
```
|
|
547
|
+
|
|
548
|
+
## Additional resources
|
|
549
|
+
|
|
550
|
+
- [Examples](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples) covering basic to advanced SDK scenarios
|
|
551
|
+
- [Technical wiki](https://deepwiki.com/wandelbotsgmbh/wandelbots-nova) with architecture notes and troubleshooting tips
|
|
552
|
+
- [Official documentation](https://docs.wandelbots.io/) for platform concepts and API guides
|
|
553
|
+
- [Code documentation](https://wandelbotsgmbh.github.io/wandelbots-nova/) generated from the latest SDK build
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import asyncio
|
|
2
|
-
from enum import
|
|
2
|
+
from enum import Enum, auto
|
|
3
3
|
from functools import singledispatch
|
|
4
4
|
from math import ceil, floor
|
|
5
5
|
from typing import Any, AsyncIterator, Optional
|
|
@@ -117,7 +117,7 @@ def move_forward(context: MovementControllerContext) -> MovementControllerFuncti
|
|
|
117
117
|
return movement_controller
|
|
118
118
|
|
|
119
119
|
|
|
120
|
-
class OperationType(
|
|
120
|
+
class OperationType(Enum):
|
|
121
121
|
FORWARD = auto()
|
|
122
122
|
BACKWARD = auto()
|
|
123
123
|
FORWARD_TO = auto()
|
|
@@ -138,18 +138,18 @@ class OperationResult:
|
|
|
138
138
|
error: Optional[Exception] = None
|
|
139
139
|
|
|
140
140
|
|
|
141
|
-
class MovementOption(
|
|
142
|
-
CAN_MOVE_FORWARD =
|
|
143
|
-
CAN_MOVE_BACKWARD =
|
|
141
|
+
class MovementOption(str, Enum):
|
|
142
|
+
CAN_MOVE_FORWARD = "CAN_MOVE_FORWARD"
|
|
143
|
+
CAN_MOVE_BACKWARD = "CAN_MOVE_BACKWARD"
|
|
144
144
|
|
|
145
145
|
|
|
146
146
|
motion_started = signal("motion_started")
|
|
147
147
|
motion_stopped = signal("motion_stopped")
|
|
148
148
|
|
|
149
149
|
|
|
150
|
-
class MotionEventType(
|
|
151
|
-
STARTED =
|
|
152
|
-
STOPPED =
|
|
150
|
+
class MotionEventType(str, Enum):
|
|
151
|
+
STARTED = "STARTED"
|
|
152
|
+
STOPPED = "STOPPED"
|
|
153
153
|
|
|
154
154
|
|
|
155
155
|
class MotionEvent(pydantic.BaseModel):
|
|
@@ -224,7 +224,7 @@ class TrajectoryCursor:
|
|
|
224
224
|
return index
|
|
225
225
|
|
|
226
226
|
def get_movement_options(self) -> set[MovementOption]:
|
|
227
|
-
options = {
|
|
227
|
+
options: dict[MovementOption, bool] = {
|
|
228
228
|
MovementOption.CAN_MOVE_FORWARD: self._current_location < self.end_location,
|
|
229
229
|
MovementOption.CAN_MOVE_BACKWARD: self._current_location > 0.0,
|
|
230
230
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "wandelbots-nova"
|
|
3
|
-
version = "3.4.
|
|
3
|
+
version = "3.4.2"
|
|
4
4
|
description = "Official Python SDK for the Wandelbots Nova"
|
|
5
5
|
authors = [
|
|
6
6
|
{ name = "Wandelbots GmbH" },
|
|
@@ -11,7 +11,7 @@ authors = [
|
|
|
11
11
|
{ name = "Stefan Wagner", email = "stefan.wagner@wandelbots.com" },
|
|
12
12
|
{ name = "André Kühnert", email = "andre.kuhnert@wandelbots.com" },
|
|
13
13
|
]
|
|
14
|
-
requires-python = ">=3.
|
|
14
|
+
requires-python = ">=3.10, <3.13"
|
|
15
15
|
readme = "README.md"
|
|
16
16
|
dependencies = [
|
|
17
17
|
"httpx>=0.28.0,<0.29",
|
|
@@ -124,7 +124,7 @@ markers = """
|
|
|
124
124
|
"""
|
|
125
125
|
|
|
126
126
|
[tool.mypy]
|
|
127
|
-
python_version = "3.
|
|
127
|
+
python_version = "3.10"
|
|
128
128
|
ignore_missing_imports = true
|
|
129
129
|
warn_unreachable = true
|
|
130
130
|
warn_unused_configs = true
|
|
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
|