Changelog

The following sections list the changes between each consecutive version of this library. The Highlights section is a short summary of the Details section.

1.5.0 (2026-05-18)

✨ Highlights

For robots within the Victor behavior group it is now possible to:

  • Read the currently active limits

  • Query the currently active limit sets

  • Read the limits of a limit set

  • Activate or deactivate optional user-defined limit sets

⚠️ Known Issues

  • Creation of tools and modification of tool parameters is currently not supported and must be done on the robot control directly

  • Creation of limit sets is currently not supported and must be done on the robot control directly

πŸ”Ž Details

πŸš€ Features

  • 6f28e76 Add traits to manage robot limits

πŸ§ͺ Tests

  • 504f7fc Remove racy assert condition in heartbeat tests (#497)

  • 4e7c529 Clean up auxiliary heartbeats (#499)

πŸ›  Build

  • ae5051f Use the default container API route (#507)

  • 97933ad deps-dev: Bump the dependencies group across 1 directory with 12 updates (#506)

  • 9ab0720 Use latest codemeter image for dev compose files (#508)

  • 598fa3d deps-dev: Bump the dependencies group with 3 updates

  • c30f483 Add CODEMETER_HOST Jenkins env var

  • fc6c1a7 deps-dev: Bump the dependencies group with 11 updates

  • f565982 Bump voraus-robot-control-client to 0.14.0

  • 7ca3ed5 deps-dev: Bump pytest from 9.0.2 to 9.0.3

  • c3770b0 deps-dev: Bump the dependencies group across 1 directory with 10 updates

  • 087f33f Drop coverage combine

  • e4e783c Call py311-test explicitly

πŸ“ Documentation

  • 58d5a64 Don’t use private imports in the examples (#504)

  • 369fe57 Add documentation for limit traits

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

  • Jan-Frederik Schmidt

  • Philipp Caspers

  • Tobias Brinker

1.4.1 (2025-12-12)

✨ Highlights

This version fixes two minor issues when using the heartbeat functionality while other components use the heartbeat as well.

  • Fix an issue, which kills the heartbeat session of voraus-robot-arm if an unrelated heartbeat timed out.

  • Fix an issue, that left a heartbeat session of voraus-robot-arm alive, even if the robot rejected the register request. This could happen either if a unique session is already active and one tries to register a normal session through voraus-robot-arm or voraus-robot-arm tries to register a unique session while a normal session is already active.

⚠️ Known Issues

  • Creation of tools and modification of tool parameters is currently not supported and must be done on the robot control directly

πŸ”Ž Details

πŸ› Fixes

  • 540f720 Kill heartbeat if own session is the error cause, else leave active

πŸ”„οΈ Changes

  • b45e3b4 Save the session_id explicitly in the HeartbeatHandler

πŸ›  Build

  • 69dd9b4 Provide license server for integration tests manually (#495)

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

1.4.0 (2025-11-25)

✨ Highlights

  • This version adds a new convenience helper configure_logging() to generate quickly accessible logs during programming and prototyping. It replaces setup_logging().

⚠️ Known Issues

  • Creation of tools and modification of tool parameters is currently not supported and must be done on the robot control directly

πŸ”Ž Details

πŸš€ Features

  • 086179d Add fixed configure logging helper

🧰 Tasks

  • 7ac36ed Avoid duplication of env vars in tox.ini (#489)

  • 96e4c0d Deprecate setup_logging in favor of configure_logging

πŸ›  Build

  • 2ba0907 Fix vdoc upload (#479)

  • b60545e Run integration tests against voraus-core:main-latest (#481)

  • 68732c5 deps: Bump the dependencies group across 1 directory with 4 updates

  • 311d35f Force usage of stable version of pytest-opentelemetry

  • d21df5e Remove links to docs on dependabot run

  • ff9ea92 Install tox and tox-uv via pip install .[tox]

  • 5519ea2 Ignore generated doc files and docs build directory

  • 6fcf078 Disable SonarCloud analysis and remove legacy metadata

  • 7ea21b2 deps-dev: Bump the dependencies group with 5 updates

  • 8eeede9 Use pymarkdownlnt to lint markdown files during docs build

πŸ“ Documentation

  • 1638ff6 Reformat docs source to conform to markdownlint rules

  • 9b8054d Use configure_logging within the examples

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

  • Jan-Frederik Schmidt

  • Philipp Caspers

  • Tobias Brinker

1.3.3 (2025-10-20)

✨ Highlights

  • Fix a bug, which causes an instruction to get aborted if added directly after unstop_motion() is called.

  • Use the correct error number RA-043 when aborting instructions due to a requested stop instead of the generic number RA-001.

⚠️ Known Issues

  • Creation of tools and modification of tool parameters is currently not supported and must be done on the robot control directly

πŸ”Ž Details

πŸ› Fixes

  • 64cebce Fix race condition when processing a stop (#476)

  • ec78f47 Use correct error number when aborting due to a stop (#477)

πŸ§ͺ Tests

  • bd51c33 Start heartbeat_stops_when_main_thread tests in defined non error state (#475)

πŸ›  Build

  • 3d6d819 Attach reports on branch durability-tests (#467)

  • 886d01e deps: Bump ruff from 0.13.1 to 0.13.2 in the dependencies group

  • 5350b6d Upload docs to vdoc on tag build (#470)

  • c7a926b Allow durability tests on tag builds (#469)

  • 93d42a2 Reduce dependabot runs from weekly to monthly (#474)

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

  • Philipp Caspers

  • Tobias Brinker

1.3.2 (2025-09-24)

✨ Highlights

  • Better error descriptions during instruction handler crashes.

  • Digital output pin IDs are now correctly verified.

⚠️ Known Issues

  • Creation of tools and modification of tool parameters is currently not supported and must be done on the robot control directly

πŸ”Ž Details

πŸ› Fixes

  • 941d6ae Digital output validation method (#462)

πŸ”„οΈ Changes

  • 25bfb72 Hint cause if instruction handler crashes due to connection loss (#455)

πŸ§ͺ Tests

  • 79b91ee Ensure that the system is neither in STANDBY nor ERROR

  • 69711f2 Allow to specify multiple states that should be left

  • 586dfb1 Wait for the robot to not move anymore before setting it up

  • 13e48d0 Propagate the timeout to _wait_for_condition

  • 0daf38d Rework move_ptp relative test

  • 6e0ee16 Make regex in match argument explicit

πŸ›  Build

  • 8ce1e2f deps: Bump the dependencies group across 1 directory with 6 updates

  • 336610c deps: Bump the dependencies group with 3 updates

  • d25ac63 deps: Bump the dependencies group with 2 updates

  • cd378a0 deps: Bump the dependencies group with 3 updates

  • 176a0c6 Bump tox versions in Jenkinsfile (#459)

  • 962ac1e deps: Bump the dependencies group with 4 updates

  • 2a33587 deps: Bump the dependencies group with 4 updates

  • 0aea77c Run integration tests against voraus-core 2.19.0 (#465)

  • 2329fa0 deps: Bump the dependencies group with 3 updates

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

  • Philipp Caspers

  • Tobias Brinker

1.3.1 (2025-08-11)

✨ Highlights

  • Improve the performance of stop_motion() and pause_motion() for robots within the Victor behavior group. This is achieved by a more efficient detection method to determine, that the robot actually stopped after a stop was requested. The previous detection time was approximately 0.5 s. It is now reduced to approximately 0.05 s.

⚠️ Known Issues

  • Creation of tools and modification of tool parameters is currently not supported and must be done on the robot control directly

πŸ”Ž Details

πŸ”„οΈ Changes

  • ff6ede9 Improve performance of stop_motion for Victor robots

  • 145e8c3 Improve performance of pause_motion

πŸ§ͺ Tests

  • 5ebea52 Add test_robot_arm_stop_and_unstop_motion_from_standstill

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

1.3.0 (2025-07-31)

✨ Highlights

It is now possible to:

  • Disable the automatic thread exception monitoring of the heartbeat functionality in order to allow to use a custom monitoring

  • Query the state of the current heartbeat session

  • Trace the timing of voraus-robot-arm operations within your application with OpenTelemetry

⚠️ Known Issues

  • Creation of tools and modification of tool parameters is currently not supported and must be done on the robot control directly

πŸ”Ž Details

πŸš€ Features

  • 5952ba2 Add tracing to the OPC UA Trait Implementations

  • 5a2a121 Add opentelemetry Tracer wrapper

  • 8bf3fc9 Add a PromiseTracer for tracing Promise objects

  • f72c62c Add JogTcpVictorTrait

  • b08c7fe Add JogJointVictorTrait

  • 31d4278 Deprecate JogContinuousCartesianVictorTrait

  • eef495e Deprecate JogContinuousJointVictorTrait

  • f09e339 Make stop_heartbeat_v intentional (#438)

  • 4196717 Add a heartbeat state (#437)

  • 7046c5f Allow to disable the heartbeat threading excepthook monitoring

πŸ› Fixes

  • 8622f16 Let instruction handler loop crash on error and not quit silently

  • fdca86f Do not warn about legacy trait deprecations while using robot instances

  • 36739e8 Transition heartbeat state to DEAD on heartbeat timeout

πŸ”„οΈ Changes

  • 973d7a3 Rename the _promise_tracer module to _trace

  • 4859179 Move CanceledError to _errors module

  • c4d0035 Delete unused optionals (#439)

πŸ§ͺ Tests

  • 466019b Execute existing Promise tests against patched Promise

🧰 Tasks

  • 4dfe399 Add notes/warning about the exception type change

πŸ›  Build

  • 5875115 deps: Bump the dependencies group across 1 directory with 5 updates

  • 5220626 Run trait integration tests with telemetry every night

  • 7053958 deps: Bump the dependencies group with 2 updates

  • 8be47de deps: Bump ruff from 0.12.2 to 0.12.3 in the dependencies group

  • f1cfe5e deps: Bump the dependencies group with 3 updates

πŸ“ Documentation

  • d9c8193 Rename tools example

  • c858afd Rename heartbeat example

  • a58cd05 Rename coordinate system example

  • f1ffeda Improve docs for the unique heartbeat (#432)

  • 306e855 Add chapter about upcoming breaking changes

  • f61149d Add user documentation for telemetry

  • a7e48e4 Update jogging chapter to use non continuous Traits

  • bdab18f Reflect deprecation of jogging traits in upcoming changes chapter

  • 3a7b177 Overhaul heartbeat docs to match new features

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

  • Keno Garbe

  • Philipp Caspers

  • Tobias Brinker

1.2.0 (2025-06-20)

✨ Highlights

For robots within the Victor behavior group it is now possible to:

  • Configure the stop type for the available stop sources

  • Select and deselect tools

  • Jog linear as well as jog ptp to a pose (formerly called step jogging)

  • Interact with digital inputs and outputs

⚠️ Known Issues

  • Creation of tools and modification of tool parameters is currently not supported and must be done on the robot control directly

πŸ”Ž Details

πŸš€ Features

  • f8f4aca Implement __len__ for JointPose

  • de68e06 Make JointPose iterable

  • fa4078f Implement __len__ for CartesianPose

  • fab7328 Make CartesianPose iterable

  • 924592f Remove the Control class (#403)

  • 0e1ca7b Remove PathParameters class (#404)

  • b830f65 Add string representation to CartesianTargetVictor (#398)

  • e4f51f7 Add configurable robot stops

  • b80f569 Improve error message on unsuccessful connection (#411)

  • 541dedd Add JoggingHandle

  • efe6f06 Add jogging handling for move_ptp and move_linear to OpcUaDriver

  • 29758c5 Add JogPTPVictorTrait

  • e498a32 Add JogLinearVictorTrait

  • 9139e62 Add SelectToolVictorTrait (#402)

  • 82ecef8 Add digital IO handling to OpcUaDriver

  • 418a073 Add DigitalInputVictorTrait and DigitalOutputVictorTrait

πŸ› Fixes

  • 47a0292 Avoid race conditions while setting successful or aborting instructions

πŸ”„οΈ Changes

  • ae80bad Move Relativity to _enums (#406)

πŸ§ͺ Tests

  • 597652f Rename heartbeat test module (#389)

  • 50af5e1 Restore the original stop parameters after the test (#408)

🧰 Tasks

  • e40ad5d Remove unused DigitalIOs class from OpcUaDriver

πŸ›  Build

  • 23bd62e Run trait integration tests in parallel test groups (#388)

  • 4b00961 dependabot: Force Python version to 3.11

  • dc01de8 dependabot: Add PyPI for dependency resolving

  • 637eebc dependabot: Move .python-version to top level (#394)

  • d8f3265 deps: Bump the dependencies group across 1 directory with 8 updates (#395)

  • 84cffac deps: Bump ruff from 0.11.12 to 0.11.13 in the dependencies group (#401)

  • 415614a deps: Bump the dependencies group with 2 updates

πŸ“ Documentation

  • 7421891 Unify warn and note sections (#392)

  • c8ecd1b Add units to coordinate helpers (#397)

  • ef41c53 Add documentation for handling coordinate systems (#399)

  • 0889219 Add documentation for stop behavior

  • f655c88 Add a tips and tricks section with interface privacy note

  • 3dc45a2 Add sections about jogging to a pose

  • ea7023e Use imperative style in heartbeat methods (#419)

  • 6122823 Add documentation for interacting with digital inputs and outputs

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

  • Philipp Caspers

  • Tobias Brinker

1.1.0 (2025-05-28)

✨ Highlights

  • Add heartbeat functionality for robots with Victor behavior.

    A heartbeat is a periodic signal between two components that indicates normal operation. When a lack of heartbeat messages is identified, it will be assumed that the originator has failed, shutdown, or is generally no longer available.

    The heartbeat between the robot control and the application makes sure that in case of a crash or unexpected shutdown of the application, the robot control transitions into an error state and no longer executes motion instructions.

⚠️ Known Issues

  • Tools configuration and interaction is currently not supported.

  • Interacting with digital IOs is currently not supported.

  • Step jogging is currently not supported.

πŸ”Ž Details

πŸš€ Features

  • 9d06bf2 Log caught exception in instruction handler loop (#372)

  • ac45e57 Add from_tuple to CartesianPose

  • 6a084c7 Add from_tuple to JointPose

  • 5aa60ca Add Heartbeat functionality for robots with Victor behavior

  • 7578f92 Disconnect cleanly even if disable fails on teardown (#375)

  • 17a88f9 Log the exception of instructions (#383)

πŸ”„οΈ Changes

  • e6fffe6 Bump voraus-robot-control-client

πŸ§ͺ Tests

  • 1fee801 Use heartbeat within the durability integration test

  • 2f91604 Add integration tests for the heartbeat functionality

  • de1094b Make multiple attempts to reset an error

🧰 Tasks

  • 7357495 Update package classifier from beta to stable (#385)

πŸ›  Build

  • e86fed8 Pin voraus-robot-control-client to minor version (#382)

πŸ“ Documentation

  • bfa9bd4 Add documentation for the heartbeat functionality

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

  • Philipp Caspers

  • Tobias Brinker

1.0.1 (2025-05-26)

✨ Highlights

  • Fix: Make the library more robust against measured position noise by increasing the axis equality tolerances. Some setups previously raised timeouts while waiting for settlement, because the noise in measurements was larger than the accepted tolerances.

⚠️ Known Issues

  • Tools configuration and interaction is currently not supported.

  • Interacting with digital IOs is currently not supported.

  • Step jogging is currently not supported.

πŸ”Ž Details

πŸ› Fixes

  • ae73a3c Increase the equality tolerances

πŸ”„οΈ Changes

  • 952afa0 Use a package wide constant for the equality tolerances

  • 4145de8 Revert β€œci: Pin snowballstemmer to 2.2.0” (#378)

πŸ§ͺ Tests

  • f04aaec Fix assert message in expect_not_joint_pose (#369)

πŸ›  Build

  • e27d88a Test against the latest core again (#371)

  • 3b9775d Retry Container API connection after ReadTimeout (#373)

πŸ“ Documentation

  • 1f41ab5 Use double backticks for rst inline code (#374)

  • 1bffe40 Specify versions in migration guide

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

  • Philipp Caspers

  • Tobias Brinker

1.0.0 (2025-05-13)

✨ Highlights

  • voraus-robot-arm has reached stable πŸŽ‰.

  • Please read the documentation carefully.

  • In case you want to migrate from an older version please see the migration guide within the documentation.

⚠️ Known Issues

  • Tools configuration and interaction is currently not supported.

  • Interacting with digital IOs is currently not supported.

  • Step jogging is currently not supported.

πŸ”Ž Details

πŸš€ Features

  • d320c1b 🚨 Remove legacy implementation of voraus_robot_arm

  • e47e25d 🚨 Use future module as default implementation

  • c47f491 Reflect the unit in the repr of JointPose

  • d6967b1 🚨 Generalize MoveLinearVictorParameters as MoveCartesianVictorParameters

  • 6c23c49 Add MoveCircularVictorTrait and implementation

  • abc4471 Add K4PRobotArm

  • 78082db Introduce a Victor robot

  • 5c87b0d 🚨 Clean up the public interface of the package (#310)

  • 431cf55 🚨 error_handler: Change ip_address argument to host

  • 8801916 🚨 lifecycle: Change ip_address argument to host

  • 7900085 Add debug log to result() of Future()

  • 453abdd Add logging statement to commands

  • 50cd82b 🚨 Rename activate/ deactivate to enable/ disable (#329)

  • 9ef12b3 Add GetRobotStateVictorTrait

  • 4137c64 🚨 Rename get_state to get_lifecycle_state

  • a2c285a Remove helper methods from RobotStateVictor

  • 9e8b4d3 Rename RobotArmMainState to RobotStateVictor

  • 20fc12c Remove unused Payload class

  • 367f782 Implement PayloadVictorTrait for OPC UA

  • 0de5370 Add PayloadVictorTrait

  • 4487941 Terminate InstructionHandler on error (#339)

  • e64deb1 🚨 Rename CancelledError to CanceledError

  • 56c3f50 Add continuous jogging in Cartesian space

  • e71f304 Add continuous jogging in joint space

  • 9e49b8d Add info logs to trait implementations (#346)

  • 1224547 Add trait to set time override with transition time (#334)

πŸ› Fixes

  • 3cb0384 Allow to connect if robot is in error

πŸ”„οΈ Changes

  • 21613a9 Remove Control dependency of OpcUaDriver

  • b9b1da2 Remove unused from __future__ import annotations (#299)

  • 567d8e8 Add a constant for the sync polling timeout

  • 46ddee5 Rename InstructionsHandler to InstructionHandler (#343)

  • ec15c17 Use a uniform polling timeout value for set commands (#367)

πŸ§ͺ Tests

  • d9063af Transform nightly test to use traits

  • 138179e Update test structure to match new module structure

  • a8f9046 Fix assert_robot_is_moving test utility function (#282)

  • 73896c8 Fix racy amend_blending_parameters test (#301)

  • 1b09085 Rename nightly test setup fixture function (#300)

  • 5ff937e Add output to future pose assertion helpers (#290)

  • 717adde Remove driver from pause continue trait test (#321)

  • 34abd1c Fix VorausPose warnings in tests (#315)

  • 2b8ac32 Use host instead of IP within test env vars

  • 94707a0 Remove duplicated tests (#320)

  • 1e91d59 Readd test lost during migration (#325)

  • 0c03670 Fix time override unit test (#324)

  • 0a738e4 Remove unnecessary wait_for wrapper (#331)

  • 4f30512 Add test_connect_while_robot_in_error for lifecycle trait

  • 3bf27e8 Allow multiple attempts when connecting to container API

  • c6e48f6 Wait for error handler to be online

  • 5d70536 Remove redundant lifecycle OPC UA unit tests

🧰 Tasks

  • 5b2615c Add ticket ID for xfail of move_circular constant to path test (#311)

  • b78096d Update voraus-core image path in compose files (#336)

  • db9e8ab Get rid of some linter/typechecker ignores

  • edccda1 Change spelling from GB to US

  • eb18a52 Minor spelling fixes

  • 9537a4f Remove AguilaTaco and SebastianHpe as CODEOWNERS (#347)

πŸ›  Build

  • 0a719fa Increase container lifetime to 15 min (#304)

  • 966a973 deps: Bump the dependencies group with 2 updates

  • 24ddbf7 Replace the IPC container URL with the default one

  • 715bce6 Make the CONTAINER_API_URL configurable

  • d5613ec Fix PyPI target for tag builds to still publish released versions (#340)

  • 1cc210e Ensure US spelling

  • 344b1ae Check for common spelling mistakes

  • 2c6f56a Set Container API timeout to 20 min

  • 9f1f7d3 Use latest RC version for integration testing (#351)

  • ff91a18 Use the latest stable core image for testing (#360)

  • ee9c0c9 Show pytest stdout in Jenkins logs

  • 2906b9b Add new tox step generate-changelog

  • 734a1d6 Reformat generated changelog for GitHub

  • 8363b49 Enable reproducible wheel checksums

  • a02fd82 Pin snowballstemmer to 2.2.0

  • 1da13ff Make container logs distinguishable

  • 572a70d Deploy artifacts based on their PROJECT, SCOPE and MATURITY (#366)

πŸ“ Documentation

  • 0298d17 Do not index manual autodoc entries

  • e2007ef Use future documentation as default implementation

  • 398942a Add method disclaimer for Victor traits (#298)

  • f945c18 Specify the unit of the values within JointPose

  • a319f0c Remove imports from private modules in the examples (#302)

  • 583520c Add an introduction to the library and its concepts (#289)

  • de397de Drop unused LifecycleTrait from examples (#309)

  • 3403313 Add docs about amend blending parameters (#308)

  • 9f77f0e Add legacy migration guide

  • 2670808 Remove list of traits

  • 265a44d Remove placeholder chapters

  • 9507edf Clean up landing page

  • e8506d8 Add section about Robot Behavior Groups

  • 14c646f Remove Migration Strategy (#316)

  • c9d00d0 Revamp developer logging chapter (#317)

  • 1394084 Improve multi robot example (#318)

  • c796b76 Restructure introduction to key concepts

  • f83b8bf Generate deeper heading anchors

  • fc39e6d Add documentation to the move circular trait (#312)

  • 39a30c5 Make the robot connection consistent among examples

  • 69d2d00 Rename migration guide (#326)

  • ada6a3f Reduce this references in stop and pause docs

  • f574469 Use imperative-style for method docstrings

  • 5f9e015 Align trait docstrings

  • fd45dca Use top level imports for traits

  • b433943 Add documentation for reading the Victor robot state

  • 2b901ba Record decision about CartesianPoint class for developers (#338)

  • b183801 Fix spelling of Cartesian

  • f6d8367 Add documentation about modifying the payload

  • 128c931 Add documentation for jogging

  • e93ef60 Add information to the jogging docstrings (#352)

  • a0f2e1a Include changelog in the documentation

  • 5668f9a Add CHANGELOG since version 0.9.0

  • 13d9d8d Improve the jogging documentation (#361)

  • c17054e Add CHANGELOG for 1.0.0-beta.4

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

  • Jan-Frederik Schmidt

  • Julian Heuer-Krolop

  • Philipp Caspers

  • Sebastian Hoppe

  • Tobias Brinker

1.0.0-beta.4 (2025-05-13)

✨ Highlights

  • Replace the legacy version of the library with the new version whilst overhauling the documentation.

In comparison to 1.0.0-beta.3:

  • Add a new Victor trait for setting a time override with configurable transition time

⚠️ Known Issues

  • Tools configuration and interaction is currently not supported.

  • Interacting with digital IOs is currently not supported.

  • Robot classes do not provide methods for step jogging.

πŸ”Ž Details

πŸš€ Features

  • 9e49b8d Add info logs to trait implementations (#346)

  • 1224547 Add trait to set time override with transition time (#334)

πŸ”„οΈ Changes

  • ec15c17 Use a uniform polling timeout value for set commands (#367)

πŸ§ͺ Tests

  • 3bf27e8 Allow multiple attempts when connecting to container API

  • c6e48f6 Wait for error handler to be online

  • 5d70536 Remove redundant lifecycle OPC UA unit tests

πŸ›  Build

  • ff91a18 Use the latest stable core image for testing (#360)

  • ee9c0c9 Show pytest stdout in Jenkins logs

  • 2906b9b Add new tox step generate-changelog

  • 734a1d6 Reformat generated changelog for GitHub

  • 8363b49 Enable reproducible wheel checksums

  • a02fd82 Pin snowballstemmer to 2.2.0

  • 1da13ff Make container logs distinguishable

  • 572a70d Deploy artifacts based on their PROJECT, SCOPE and MATURITY (#366)

πŸ“ Documentation

  • a0f2e1a Include changelog in the documentation

  • 5668f9a Add CHANGELOG since version 0.9.0

  • 13d9d8d Improve the jogging documentation (#361)

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

  • Jan-Frederik Schmidt

  • Philipp Caspers

  • Sebastian Hoppe

  • Tobias Brinker

1.0.0-beta.3 (2025-04-30)

✨ Highlights

  • Replace the legacy version of the library with the new version whilst overhauling the documentation.

In comparison to 1.0.0-beta.2:

  • Fix known issue: Allow configuring the Payload of robots with Victor behavior with new methods set_payload_v(), get_payload_mass_v() and remove_payload_v()

  • Breaking: Rename CancelledError of Future to CanceledError to unify spelling

  • Fix a bug that did not allow a robot connection if the robot was in an error

  • Fix known issue: Let a robot with Victor behavior jog continuously with the new methods jog_continuous_joint_v() and jog_continuous_cartesian_v()

⚠️ Known Issues

  • Tools configuration and interaction is currently not supported.

  • Interacting with digital IOs is currently not supported.

  • Robot classes do not provide special methods for step jogging.

πŸ”Ž Details

πŸš€ Features

  • 20fc12c Remove unused Payload class

  • 367f782 Implement PayloadVictorTrait for OPC UA

  • 0de5370 Add PayloadVictorTrait

  • 4487941 Terminate InstructionHandler on error (#339)

  • e64deb1 🚨 Rename CancelledError to CanceledError

  • 56c3f50 Add continuous jogging in Cartesian space

  • e71f304 Add continuous jogging in joint space

πŸ› Fixes

  • 3cb0384 Allow to connect if robot is in error

πŸ”„οΈ Changes

  • 567d8e8 Add a constant for the sync polling timeout

  • 46ddee5 Rename InstructionsHandler to InstructionHandler (#343)

πŸ§ͺ Tests

  • 0a738e4 Remove unnecessary wait_for wrapper (#331)

  • 4f30512 Add test_connect_while_robot_in_error for lifecycle trait

🧰 Tasks

  • b78096d Update voraus-core image path in compose files (#336)

  • db9e8ab Get rid of some linter/typechecker ignores

  • edccda1 Change spelling from GB to US

  • eb18a52 Minor spelling fixes

  • 9537a4f Remove AguilaTaco and SebastianHpe as CODEOWNERS (#347)

πŸ›  Build

  • 24ddbf7 Replace the IPC container URL with the default one

  • 715bce6 Make the CONTAINER_API_URL configurable

  • d5613ec Fix PyPI target for tag builds to still publish released versions (#340)

  • 1cc210e Ensure US spelling

  • 344b1ae Check for common spelling mistakes

  • 2c6f56a Set Container API timeout to 20 min

  • 9f1f7d3 Use latest RC version for integration testing (#351)

πŸ“ Documentation

  • 2b901ba Record decision about CartesianPoint class for developers (#338)

  • b183801 Fix spelling of Cartesian

  • f6d8367 Add documentation about modifying the payload

  • 128c931 Add documentation for jogging

  • e93ef60 Add information to the jogging docstrings (#352)

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

  • Philipp Caspers

  • Sebastian Hoppe

  • Tobias Brinker

1.0.0-beta.2 (2025-03-27)

✨ Highlights

  • Replace the legacy version of the library with the new version whilst overhauling the documentation.

In comparison to 1.0.0-beta.1:

  • Breaking: Rename lifecycle trait methods from activate/ deactivate to enable/ disable to match the state name of Enabled.

  • Breaking: Rename lifecycle trait method from get_state to get_lifecycle_state to be able to distinguish different states.

  • Allow to read the full robot main state of robots with Victor behavior with the method get_robot_state_v()

⚠️ Known Issues

  • Tools configuration and interaction is currently not supported.

  • Interacting with digital IOs is currently not supported.

  • Robot classes do not provide special methods for jogging.

  • It is not possible to set the mass of payloads.

πŸ”Ž Details

πŸš€ Features

  • 7900085 Add debug log to result() of Future()

  • 453abdd Add logging statement to commands

  • 50cd82b 🚨 Rename activate/ deactivate to enable/ disable (#329)

  • 9ef12b3 Add GetRobotStateVictorTrait

  • 4137c64 🚨 Rename get_state to get_lifecycle_state

  • a2c285a Remove helper methods from RobotStateVictor

  • 9e8b4d3 Rename RobotArmMainState to RobotStateVictor

πŸ§ͺ Tests

  • 94707a0 Remove duplicated tests (#320)

  • 1e91d59 Readd test lost during migration (#325)

  • 0c03670 Fix time override unit test (#324)

πŸ“ Documentation

  • ada6a3f Reduce this references in stop and pause docs

  • f574469 Use imperative-style for method docstrings

  • 5f9e015 Align trait docstrings

  • fd45dca Use top level imports for traits

  • b433943 Add documentation for reading the Victor robot state

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Julian Heuer-Krolop

  • Philipp Caspers

  • Tobias Brinker

1.0.0-beta.1 (2025-03-18)

✨ Highlights

  • Replace the legacy version of the library with the new version whilst overhauling the documentation.

⚠️ Known Issues

  • Tools configuration and interaction is currently not supported.

  • Interacting with digital IOs is currently not supported.

  • Robot classes do not provide special methods for jogging.

  • It is not possible to set the mass of payloads.

πŸ”Ž Details

πŸš€ Features

  • 431cf55 🚨 error_handler: Change ip_address argument to host

  • 8801916 🚨 lifecycle: Change ip_address argument to host

πŸ§ͺ Tests

  • 717adde Remove driver from pause continue trait test (#321)

  • 34abd1c Fix VorausPose warnings in tests (#315)

  • 2b8ac32 Use host instead of IP within test env vars

πŸ›  Build

  • 966a973 deps: Bump the dependencies group with 2 updates

πŸ“ Documentation

  • 14c646f Remove Migration Strategy (#316)

  • c9d00d0 Revamp developer logging chapter (#317)

  • 1394084 Improve multi robot example (#318)

  • c796b76 Restructure introduction to key concepts

  • f83b8bf Generate deeper heading anchors

  • fc39e6d Add documentation to the move circular trait (#312)

  • 39a30c5 Make the robot connection consistent among examples

  • 69d2d00 Rename migration guide (#326)

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

  • Julian Heuer-Krolop

  • Philipp Caspers

  • Sebastian Hoppe

  • Tobias Brinker

1.0.0-beta (2025-03-14)

✨ Highlights

  • Replace the legacy version of the library with the new version whilst overhauling the documentation.

⚠️ Known Issues

  • Tools configuration and interaction is currently not supported.

  • Interacting with digital IOs is currently not supported.

  • Robot classes do not provide special methods for jogging.

  • It is not possible to set the mass of payloads.

πŸ”Ž Details

πŸš€ Features

  • d320c1b 🚨 Remove legacy implementation of voraus_robot_arm

  • e47e25d 🚨 Use future module as default implementation

  • c47f491 Reflect the unit in the repr of JointPose

  • d6967b1 🚨 Generalize MoveLinearVictorParameters as MoveCartesianVictorParameters

  • 6c23c49 Add MoveCircularVictorTrait and implementation

  • abc4471 Add K4PRobotArm

  • 78082db Introduce a Victor robot

  • 5c87b0d 🚨 Clean up the public interface of the package (#310)

πŸ”„οΈ Changes

  • 21613a9 Remove Control dependency of OpcUaDriver

  • b9b1da2 Remove unused from __future__ import annotations (#299)

πŸ§ͺ Tests

  • d9063af Transform nightly test to use traits

  • 138179e Update test structure to match new module structure

  • a8f9046 Fix assert_robot_is_moving test utility function (#282)

  • 73896c8 Fix racy amend_blending_parameters test (#301)

  • 1b09085 Rename nightly test setup fixture function (#300)

  • 5ff937e Add output to future pose assertion helpers (#290)

🧰 Tasks

  • 5b2615c Add ticket ID for xfail of move_circular constant to path test (#311)

πŸ›  Build

  • 0a719fa Increase container lifetime to 15 min (#304)

πŸ“ Documentation

  • 0298d17 Do not index manual autodoc entries

  • e2007ef Use future documentation as default implementation

  • 398942a Add method disclaimer for Victor traits (#298)

  • f945c18 Specify the unit of the values within JointPose

  • a319f0c Remove imports from private modules in the examples (#302)

  • 583520c Add an introduction to the library and its concepts (#289)

  • de397de Drop unused LifecycleTrait from examples (#309)

  • 3403313 Add docs about amend blending parameters (#308)

  • 9f77f0e Add legacy migration guide

  • 2670808 Remove list of traits

  • 265a44d Remove placeholder chapters

  • 9507edf Clean up landing page

  • e8506d8 Add section about Robot Behavior Groups

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

  • Julian Heuer-Krolop

  • Philipp Caspers

  • Sebastian Hoppe

  • Tobias Brinker

0.15.0 (2025-03-13)

✨ Highlights

  • Make the Future returned by instructions read only to clarify end user usage.

  • Overhaul the documentation structure to prepare for the future version of the library.

⚠️ Known Issues

  • None

πŸ”Ž Details

πŸš€ Features

  • e0e0df0 Make Future read-only (#184)

  • 5baef08 Add a GetJointPose trait

  • 44d539f future: Allow to wait for subsequent instruction before sending

  • 2b0ecbb Provide equality comparison operator for BlendingParameter

  • 68cfbc9 future: Add GetJointAccelerationsTrait

  • 72c4bff future: Add GetJointVelocitiesTrait

  • b8738f4 future: Let OpcUaDriver handle blending parameters

  • 93e8931 future: Add PauseContinueTrait definition

  • b9495f2 future: Add TimeOverrideOpcUaImpl

  • 2164844 future: Add TimeOverrideTrait definition

  • 0d0b291 future: Add GetTcpVelocityTrait

  • f847cdc future: Add a CartesianVelocity type

  • 778cb9b future: Add GetTcpPoseTrait

  • a5546e8 🚨 future: Redefine MovePTPTrait while supporting blending

  • ec97899 future: Add ERROR state to lifecycle

  • 7ffe802 future: Improve the error message of _wait_for_state() in LifecycleIOpcUaImpl

  • 3371684 Make OpcUaDriverError top level importable

  • 05457aa future: Make all traits top level importable

  • 050a795 future: Add __str__ method to CartesianVelocity (#272)

  • 4c3b000 future: Add VorausErrorHandler class to enable resetting errors

  • 1ffa7a2 🚨 future: Redefine MoveLinearTrait while supporting blending

  • 2413ed2 future: Add voraus industrial robot arm

  • 9850d2c future: Add stop and unstop trait (#263)

  • 19018de future: Add CartesianTargetVictor

  • a410608 future: Add MovePTPVictorTrait and implementation

  • 7b7a838 future: Amend blending parameters (#284)

  • f6431cd future: Add CoordinateSystemVictorTrait

  • 4cfb063 future: Add MoveLinearVictorTrait and implementation

  • 873c569 future: Add Move Circular Trait (#286)

πŸ”„οΈ Changes

  • b14b90e Replace SimpleQueue with deque in InstructionCommunicationHelper

πŸ§ͺ Tests

  • 9e38af8 Add durability test

  • 9c26114 Add tests for get_joint_pose

  • 63d7712 Define a BaseTestRobot

  • 9bceb00 Set time override to 100% for trait tests

  • ed03311 Fix nightly test container lifetime (#240)

  • bb5d3f2 Ensure robot is not in error state (#242)

  • d8c3ce2 Make unit tests executable without having to specify a robot type (#241)

  • 63bf094 Add test utility functions expect_joint_pose and expect_not_joint_pose

  • e9d6dcc Add absolute tolerance for _assert_robot_is(_not)_moving

  • 4f1272a Add test for wait_for_state

  • a17e161 Make the time override test case more robust

  • e933bab Use top level import for OpcUaDriverError

  • c8d6c5a future: Use top level imports for traits in integration tests

  • 7da4f98 Add fixture for a connected robot

  • ae9e070 future: Add test for set_time_override raises

  • 5dd8671 future: Generalize the fanuc_robot_arm_test_fixture

  • ab7318f future: Introduce a BaseTestOpcUaRobot

  • 3be8085 future: Rename BaseTestRobot to BaseTestTraits

  • f9142ea Add output to pose assertion helpers (#278)

🧰 Tasks

  • 8d57791 Expose the Error Handler port in the YU compose file (#235)

  • eabbc72 Update CODEOWNERS file

  • 7d81e22 template: Update template (#255)

  • 80b8900 future: Rename PauseContinueopcUaTraitImpl -> PauseContinueOpcUaImpl

  • 7dc7c45 future: Rename MoveLinearTraitOpcUaImpl -> MoveLinearOpUaImpl

  • 5001822 future: Fix typo in error message

πŸ›  Build

  • bd8f441 Add Github action to sync durability test branch

  • c6e5d3a Run durability tests nightly on durability-tests branch

  • a40e6b4 Fix container lifetime for nightly tests (#223)

  • 17d369a deps: Bump ruff from 0.9.7 to 0.9.8

  • 2c2f1b4 dependabot: Use weekly grouped Pull Requests (#219)

  • 0fd0b69 deps: Bump ruff from 0.9.8 to 0.9.9

  • d0f1833 deps: Bump the dependencies group across 1 directory with 2 updates

  • 2ebff7d deps: Bump the dependencies group with 3 updates

πŸ“ Documentation

  • 2705f11 Prepare the documentation for the next version (#226)

  • 44d117e Fix radian typos

  • a165b7a Limit line length of examples (#253)

  • f1350fb Add docu for Joint Pose, Velocity and Acceleration

  • 50cebf0 Allow the use of autodoc for protocols

  • 4250ad0 future: Add documentation to the pause and continue trait (#254)

  • 351e097 future: Add documentation for the time override

  • 1147c7a future: Use top level imports for traits in documentation

  • 77001ea future: Add GetTcpPose and GetTcpVelocity Traits docu (#250)

  • a8c4a23 future: Clarify move_ptp default argument (#274)

  • cac84f3 future: Add documentation about resetting errors

  • 727ee1a future: Add lifecycle trait documentation

  • 6c098f7 future: Refactor Lifecycle documentation

  • 980798c future: Define rules for naming robot specific behavior (#264)

  • 778ffc8 Add chapter about asynchronous operation (#256)

  • 4c1ffb1 Use VorausIndustrialRobotArm instead of YU

  • ace6861 future: Remove invalid references to the YU robot (#279)

  • 06a854f future: Add documentation of how to write documentation (#265)

  • 4b92ae5 future: Add documentation for the MovePTPTrait (#269)

  • 34b70ec future: Add a quick start guide (#288)

  • 9f54d81 future: Add documentation for the MoveLinearTrait (#277)

  • 2d508ad future: Add documentation to the stop trait (#268)

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

  • Jan-Frederik Schmidt

  • Julian Heuer-Krolop

  • Philipp Caspers

  • Sebastian Hoppe

  • Tobias Brinker

0.14.1 (2025-02-25)

✨ Highlights

  • Fix a bug where a call to stop_motion did not abort all active instructions if unstop_motion was called directly afterwards.

⚠️ Known Issues

  • None

πŸ”Ž Details

πŸ› Fixes

  • e81bbfe Abort all instructions when calling stop_motion

πŸ›  Build

  • 2b7563d dependabot: Fix dependabot (#198)

  • db1f0a5 deps: Bump pytest-cov from 5.0.0 to 6.0.0

  • edf2bbd deps: Bump build[virtualenv] from 1.2.1 to 1.2.2.post1

  • 171140a deps: Bump ruff from 0.9.6 to 0.9.7

  • 1fc2835 deps: Bump pip-licenses from 4.4.0 to 5.0.0

  • 07c7f05 deps: Bump pytest-randomly from 3.15.0 to 3.16.0

  • 00a1fb3 deps: Bump coverage[toml] from 7.5.4 to 7.6.12

  • 1910518 deps: Bump tox-uv from 1.7.0 to 1.24.1 and tox from 4.15.1 to 4.24.1 (#208)

  • 3834f25 deps: Update myst-parser requirement from ~=2.0 to ~=4.0

  • fc075e9 deps: Bump pytest from 8.2.2 to 8.3.4

  • a2fe054 deps: Bump jinja2 from 3.1.4 to 3.1.5

  • 231e022 deps: Bump sphinx, sphinx-autodoc-typehints and sphinxawesome-theme (#211)

  • 8615426 deps: Bump tox-uv from 1.24.1 to 1.25.0

  • b2a08ae deps: Bump sphinx from 8.2.0 to 8.2.1

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

  • Julian Heuer

  • Philipp Caspers

0.14.0 (2025-02-21)

✨ Highlights

  • The robot can be stopped with the stop_motion command. It is thread safe and also blocks new registered instructions from execution. Use unstop_motion to unstop.

⚠️ Known Issues

  • None

πŸ”Ž Details

πŸš€ Features

  • 1a54d26 Replace CommandID with InstructionID

  • 31a5d00 Introduce InstructionIDs

  • 7949a39 future: Add more instruction handling debug logs (#172)

  • 877a730 future: Track instructions through Futures

  • 1129802 Add stop_motion and reset_stop_motion (#148)

πŸ› Fixes

  • 66f3649 Use tuples in move commands

  • a17887c Fix instruction ID not propagated to OPC UA (#187)

πŸ§ͺ Tests

  • e79852b Remove pytest-timeout

  • e63465f Make velocity scaling test more robust (#188)

🧰 Tasks

  • 8122e9b Switch from exclude to include pattern for pyright config

  • bebaae5 Remove venv from ruff exclude

  • f009370 Improve readability of pyproject.toml

  • b1bb308 Expose the OPC UA port of the error handler (#189)

  • 9ce1b4b Revert β€œci(dependabot): Do not use simple in PyPi URL (#193)”

πŸ›  Build

  • 674a088 Bump mypy to version 1.15.0

  • 79432e8 Add codespell check

  • 8fd4972 Move contents of setup.cfg to pyproject.toml

  • 229b658 dependabot: Use correct URL for accessing jfrog PyPi

  • 78e9e31 dependabot: Add token to custom PyPi (#192)

  • f6d09d2 dependabot: Do not use simple in PyPi URL (#193)

  • 7417be7 Move the container API endpoint to new VM (#194)

  • 5ab5653 Fail and abort pipe on first failure (#182)

  • 73f782a Remove pytest-timeout (#191)

  • 5ec18b0 Fix Publish Package stage

  • e2cb510 dependabot: Add official PyPi as fallback

  • 4fa2165 dependabot: Fix wrong indentation

πŸ“ Documentation

  • 9269d4e future: Fix typo in move_ptp description

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

  • Julian Heuer-Krolop

  • Philipp Caspers

  • Sebastian Hoppe

  • Tobias Brinker

0.13.2 (2025-02-19)

✨ Highlights

  • Fixed a bug where a Future of an instruction is stuck when the target pose is the current pose

⚠️ Known Issues

  • Command for motion stop is missing.

πŸ”Ž Details

πŸ› Fixes

  • c3e3577 Fix Future stuck when target pose is current pose (#183)

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

0.13.1 (2025-02-19)

✨ Highlights

  • None

⚠️ Known Issues

  • Command for motion stop is missing.

πŸ”Ž Details

πŸ”„οΈ Changes

  • abdf6d3 Sort __all__ imports according to an β€œisort-style” sort

🧰 Tasks

  • 189ce08 Remove Hendrik-Hilke as CODEOWNER (#174)

πŸ›  Build

  • dcdd568 Remove Publish unencrypted sdist Jenkins stage (#166)

  • 711c79c Remove Pylint (#168)

  • 7e2fb4d Add tox-uv for faster tox execution (#171)

  • 66ee65c Replace Black with Ruff

  • 9ce5e98 Replace isort with Ruff (#170)

  • 990fcfe Bump Ruff to version 0.9.6

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

  • Philipp Caspers

  • Tobias Brinker

0.13.0 (2025-02-28)

✨ Highlights

  • Fixed known issue: New instructions may be aborted directly, if immediately send before the overall last active instruction is finished.

  • Add commands to pause and continue motion

  • Documentation: Add chapter Instructions and asynchronous program execution

⚠️ Known Issues

  • Command for motion stop is missing.

πŸ”Ž Details

πŸš€ Features

  • 803496b Add debug logs for instruction handling (#151)

  • eafb0d3 future: Replace CommandQueue with InstructionsHandler (#150)

  • 76e0585 Add pause_motion and continue_motion

πŸ› Fixes

  • 0250e18 Improve resilience against state flicker of RobotControl (#147)

πŸ§ͺ Tests

  • b247024 future: Mirror the legacy move_… tests in the future module

  • 3dba674 Rename move_joints to move_ptp

  • db63d84 Add tests for move_linear

  • ef82a40 Add assertions to move_joints tests

  • 1f69ec4 Add OpcUaDriver as allowed type for pose utils

  • 81b6002 Add expect_joint_pose helper

🧰 Tasks

  • e9c25aa Exclude log files from version control (#152)

  • f1ef83d Delete deprecated CommandQueue (#153)

  • 950d6c2 Add folders for docs code examples

πŸ›  Build

  • 393b10f Use dedicated container API IPC (#154)

  • 6b1bc12 Add dependabot (#155)

  • 7c5390a dependabot: Allow insecure-external-code-execution (#158)

  • 7f450ca Use sphinx_togglebutton to display folded admonitions in docs

  • 7c703e5 Disable Pylint for the docs folder

πŸ“ Documentation

  • 390426d Use developer and user_guide as a general docs starting point

  • c73bc43 Add chapter Instructions and asynchronous program execution

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

  • Julian Heuer-Krolop

  • Philipp Caspers

  • Sebastian Hoppe

  • Tobias Brinker

0.12.0 (2025-02-13)

✨ Highlights

  • 🚨 Breaking - Allow to track progress of instructions asynchronously and sync Python code execution to a point within a blended asynchronous instruction.

  • Fixed known issue: wait_time instruction allows to wait a specified time between instructions.

  • Add a pose manager to load and save poses from files.

  • Add a convenience function setup_logging() to easily set up logging at the start of applications.

⚠️ Known Issues

  • Commands for stop, continue and pause are missing.

  • New instructions may be aborted directly, if immediately send before the overall last active instruction is finished.

πŸ”Ž Details

πŸš€ Features

  • 67ac8ad Add wait_time command (#123)

  • 99bb5da future: Add WaitTimeTrait (#121)

  • 3057aef future: Add error messages to OpcUaDriver class (#120)

  • 656dc1d Add a pose manager

  • 9ab8c60 Expose RobotArmError in legacy module of arm-py (#136)

  • 67da984 🚨 Track progress of default async instructions through Futures

  • 6ac96fc Log the current package version on startup

  • 231a7fa Provide logging setup for convenience

πŸ”„οΈ Changes

  • 18db5d8 Drop β€˜Number’ type for float

  • 06228e5 Rename packet to instruction (#146)

πŸ§ͺ Tests

  • e2a39ce Refactor unit test names for pose classes

  • 4bb9661 Fix commanding standby while in motion (#126)

  • 279338f Make wait_for_robot_to_settle more stable (#129)

  • ccd7271 Do not check for states within wait_for_robot_to_settle

  • 3319087 Split enter/exit RC state functions

  • ccf147b Increase pytest timeout to 180 seconds

  • 725a8de Remove sleep from pause test

  • 2f99b61 Rename wait_for_… timeout argument

  • 441a8db Refactor fixtures to use wait_for_... helper

  • a8ba479 Load global test poses from PoseManager (#114)

  • 09550e2 Fix wrong target pose assertion in test_blending_lin_and_circ

  • 96148f8 Add logging config tests

🧰 Tasks

  • e7528cb Use README.md for package metadata

  • f732ab1 Remove obsolete docker compose version property (#145)

  • b5dc91f Exclude site-packages from Pyright analysis (#149)

πŸ›  Build

  • 4af0bc5 Fix occasional module not found error (#134)

  • 52038b4 Enable warnings as errors in docs build

πŸ“ Documentation

  • 58abb76 Fix syntax error in β€œcode-block” directive

  • a5ec882 Fix inline emphasis start-string without end-string

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

  • Heinz Renziehausen

  • Julian Heuer-Krolop

  • Philipp Caspers

  • Sebastian Hoppe

  • Tobias Brinker

0.11.0 (2025-02-06)

✨ Highlights

  • Instructions and/or asynchronous contexts raise specific errors if necessary.

  • Fixed known issue: Library hangs / crashes if robot causes an error or is stopped externally.

⚠️ Known Issues

  • Commands for stop, continue and pause are missing.

  • It is not possible to track progress of instructions.

  • It is not possible to sync python code execution to a point within a blended async instruction.

  • Wait time instruction is not supported.

πŸ”Ž Details

πŸš€ Features

  • b258e90 future: Add InstructionCommunicationHelper

  • 505d229 future: Add InstructionsHandler

  • 7ad3360 future: Add MovePTP trait

  • ba371f1 Replace CommandQueue with InstructionsHandler

  • e8d4215 future: Implement move_linear trait

  • b39605f future: Add a move_linear trait

  • 47713cb Register instruction only if in allowed state

πŸ› Fixes

  • 4af0600 future: Fix sequence in start_and_prepare_voraus_core

  • 76679fe Prevent instruction queue modification while running main routine

πŸ”„οΈ Changes

  • 527fdf4 future: Do not use top-level legacy import in future module (#116)

πŸ§ͺ Tests

  • efedd76 Add get_joint_pose util

  • e4c7dd2 future: Add activated_robot fixture

  • 173567e Extract setup of enabled_robot_fixture into standalone function

  • 8ef0dc6 future: Use set_up_robot_arm instead of duplicating fixture code

  • af2115e Replace duplicate assertion

πŸ›  Build

  • 7715dce Add toggleable Jenkins param (#118)

πŸ“ Documentation

  • 1a57a38 Change description of move_linear

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

  • Felipe Peter

  • Hendrik Hilke

  • Julian Heuer-Krolop

  • Philipp Caspers

  • Tobias Brinker

0.10.1 (2025-01-30)

✨ Highlights

  • None

⚠️ Known Issues

  • Library hangs / crashes if robot causes an error or is stopped externally.

  • Commands for stop, continue and pause are missing.

  • It is not possible to track progress of instructions.

  • It is not possible to sync python code execution to a point within a blended async instruction.

  • Wait time instruction is not supported.

πŸ”Ž Details

πŸ”„οΈ Changes

  • 86a5190 Fix spelling of blending_parameter (#108)

πŸ§ͺ Tests

  • 41ed6df future: Remove deprecated test

  • c8b3bff future: Add integration tests for LifecycleTrait

  • ac30825 future: Add functionality to reset a system error

  • 351b496 future: Restructure test folder structure (#109)

  • 9b866a6 future: Set environment variable DEBUG

  • 34eda50 future: Save voraus logs on test failure

  • 10671b1 future: Add ERROR_HANDLER_PORT

🧰 Tasks

  • 28d9be7 Move dependencies to correct position

πŸ“ Documentation

  • 5b0db62 Fix formatting of code block (#106)

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Hendrik Hilke

  • Julian Heuer-Krolop

  • Philipp Caspers

  • Tobias Brinker

0.10.0 (2025-01-28)

✨ Highlights

  • A robot can now be activated and deactivated by switching between ready and standby state.

  • There exists new documentation how logging can be handled.

⚠️ Known Issues

  • Library hangs / crashes if robot causes an error or is stopped externally.

  • Commands for stop, continue and pause are missing.

  • It is not possible to track progress of instructions.

  • It is not possible to sync python code execution to a point within a blended async instruction.

  • Wait time instruction is not supported.

πŸ”Ž Details

πŸš€ Features

  • 854d909 future: Separate connect and disconnect into single methods

  • b940837 future: Copy and rename RobotArm to be the new driver

  • 2c08d11 future: Add new folder for traits implementations

  • e6f454d future: Add the LifecycleTrait implementation of the OPC UA driver

  • 38e12ea future: Add functionality to toggle the robot between ready and standby

  • aad2fe1 future: Add LifecycleTrait and HasOpcUaDriver protocols

  • 6053994 future: Add Future class to represent results of asynchronous operations

  • 3ff0cd7 future: Add RobotArmError

  • 6fdfe32 future: Add the YuRobotArm class

πŸ”„οΈ Changes

  • 209ee48 Add debug logging to the CommandQueue

πŸ§ͺ Tests

  • 8b569ea integration: Fix compose file for local integration test execution (#89)

  • 5d4922f future: Use OpcUaDriver class for future tests

  • 42687aa future: Use container api for legacy and future tests

  • c7428a5 future: Move start_and_prepare_voraus_core fixture to global conftest

  • 32d9333 future: Add integration tests for the OpcUaDriver

  • fb64a39 future: Enhance trait integration testing utils

  • 6b73b2e Allow prints in test code

  • c1e21e4 Remove logging calls from test code

  • 1cbae2c Configure test logging

  • 8cb20b8 Allow to run the integration tests against a local container (#101)

πŸ“ Documentation

  • 43d360b Add documentation about logging

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

  • Felipe Peter

  • Hendrik Hilke

  • Jan Thieß Brockmann

  • Jan-Niklas Burfeind

  • Julian Heuer-Krolop

  • Philipp Caspers

  • Sebastian Hoppe

  • Tobias Brinker

0.9.0 (2025-01-20)

✨ Highlights

  • None

⚠️ Known Issues

  • None

πŸ”Ž Details

πŸš€ Features

  • 904f5b0 Add move circular commands (#85)

  • 37c6f8b Implement blending (#75)

πŸ”„οΈ Changes

  • 4d6773b Introduce RobotTypeOptions enum

πŸ§ͺ Tests

  • 111314d Add start_and_prepare_voraus_core fixture with POC test

  • d59f1f0 Add test setup utils

πŸ›  Build

  • d141e6a Add parallel strages for trait testing of different robots

πŸ“ Documentation

  • 09923aa Use Markdown instead of RST with myst_parser

  • 336427b Add developer documentation for a trait design concept (#81)

  • 5424f01 Add developer docs section about migration strategy (#86)

  • 7bb92d0 Add commit convention for the future module (#88)

πŸ‘₯ Contributors

We’d like to thank the following people for their contributions:

  • Dwayne Steinke

  • Jan Thieß Brockmann

  • Julian Heuer

  • Philipp Caspers