arcor2
Changelog
The format is based on Keep a Changelog,
[1.5.0] - 2024-09-12
Changed
- Added a new universal dataclass
InverseKinematicsRequestfor IK requests (simplifies HTTP requests).
[1.4.0] - 2024-06-14
Changed
- Optional
thread_idadded toActionStateBefore- the value is supposed to be set for any action running on a thread other than main.
[1.3.0] - 2024-04-11
Changed
- Updated dependencies, switched to Python 3.11.
[1.2.0] - 2024-01-26
Added
save_type_defhelper function.
[1.1.0] - 2023-07-20
Added
- Few new helper functions.
Changed
- Object pose is now not set using a property setter but using the
set_posemethod.
[1.0.0] - 2023-02-14
Changed
- Updated dependencies.
- Compatibility with the Project service 1.0.0.
Meshdataclass:data_idchanged toasset_id.- Updated client (some paths were changed).
Added
- Method
startfrom the Scene service client now allows to specify a timeout.
[0.26.0] - 2022-12-12
Changed
- Optional property
end_effector_idadded toProjectRobotJoints.
[0.25.0] - 2022-10-28
Changed
- Switched to Python 3.10, updated dependencies.
- Removed unused
childrenproperty fromSceneObject. - Removed unused assets-related functions from Project service client.
[0.24.2] - 2022-08-29
Changed
- REST client updated, so it is possible to specify a filename when, e.g., uploading a file to the Project service.
[0.24.1] - 2022-08-17
Changed
- Target REST endpoints for
arcor2.clients.scene_serviceupdated to match new API convention./collisions/{model_type}/{model_id}changed to/collisions/{model_type},model_idmoved to request parameters as{model_type}Id./transforms/{transform_id}/local-posechanged to/transforms/{transform_id}/pose/local./transforms/{transform_id}/world-posechanged to/transforms/{transform_id}/pose/world.
[0.24.0] - 2022-07-08
Changed
-
BREAKING:
data.common.WebApiErroris now JSON based exception.- Property
errorswas removed. - New properties
type,descriptionand optionalcontent.
- Property
-
BREAKING:
flask.FlaskExceptionclass updated.FlaskExceptiondoes no longer accept message and error code, but onlymessageand optionalcontext.- New
serviceanddescriptionproperties should be overridden by subclasses. - Exception instances are now convertible to JSON.
-
BREAKING: Flask API error handlers return 500 error code for any error.
WebApiErrorJSON object is supplied in response body. -
BREAKING :
rest.WebApiException,rest.RestHttpExceptionclass gone.WebApiErrorandRestExceptionare raised instead. No HTTP code is supplied as the only possible error code is 500. -
BREAKING :
scene_serviceclient changed.world_posenow call.../world-poseinstead of.../worldPose.local_posenow call.../local-poseinstead of.../localPose.line_checknow call.../line-safeinstead of.../lineSafe.upsert_collisionmodel id moved from query parameters to path.
Added
-
New
WebApiErrorFactoryclass was implemented to generate service specificWebApiErrorschemas for swagger documentation. -
flask.run_appnow accept optionaldependenciesargument.
[0.23.1] - 2022-02-17
Added
- Simple collision checking.
- Related dataclasses were added.
- New function in
scene_serviceclient.
[0.23.0] - 2022-01-25
Changed
- BREAKING:
ActionStateBeforeevent updated.- Properties
action_idandparametersare now optional. - New optional property
action_point_ids.
- Properties
- Switched to Python 3.9, updated dependencies.
[0.22.0] - 2021-10-25
Changed
- New abstract base class
VirtualCollisionObject.- Meant as a base for 'dumb' collision objects, with primitive models, without any functionality, e.g. for safety 'walls' around the cell.
ActionMetadataupdated.- Removed useless properties (
blocking,blackbox). - Added a new property
hidden(UIs shall silently ignore those actions).
- Removed useless properties (
- Dropped support for
RelativePoseaction parameter type. - Handle all errors when importing stuff (
import_type_def).- This is needed for instance in case of obsolete ObjectTypes.
- ...when e.g. parameters of
ActionMetadatawere changed. - Otherwise outdated OT might raise
TypeErroror similar exceptions.
- New (optional) properties added to
BareActionPoint(compatibility with Project service 0.14.0 or newer). - Added
FlowActionsObjectType, providingis_first_passaction which is useful to perform the initialization step.
Fixed
- Action point transformations (reparenting).
- When AP1 from
object -> AP1 -> AP2was made global, AP2 was not updated properly. - When AP1 was made relative again, AP2 was again not updated.
- When AP1 from
[0.21.0] - 2021-09-07
Changed
- Added
Robotspecific exceptionKinematicsException.- So far used to give more precise error messages.
ProjectParameternow derives fromParameter.CachedScenenow caches ObjectTypes used in a scene.- Logs are now colored.
Projectnow has optionalproject_objects_idsproperty (not used at the moment).
Fixed
- Make sure that
Posecontain only floats.- When any value is e.g. np.float64,
orjsoncomplains. - Because of this,
to_dictmethods ofPositionandOrientationare overridden.
- When any value is e.g. np.float64,
- Typo in URL within
get_modelsofproject_serviceclient. - Missing sleep in
wait_forofscene_serviceclient.
[0.20.0] - 2021-08-05
Changed
- Object hierarchy modified.
GenericWithPosenow can't have a collision model.- A new
CollisionObjectmust have collision model.
Robotbase class API changed.- Parameter
linearwas added tomove_to_pose.- A robot not supporting linear movements should raise exception when
linear==True.
- A robot not supporting linear movements should raise exception when
- Parameter
include_gripperwas added torobot_joints.- By default, the method should return only arm's joints.
- With the parameter set, the list should contain also gripper joints.
- This is needed for visualization of grippers.
- Makes only sense (so far) when gripper is part of URDF.
- Parameter
- Scene/Project clients now log underlying error messages.
Fixed
restmodule now encodes body data as utf-8.
[0.19.0] - 2021-07-29
Changed
- Support for multi arm robots.
- New base class
MultiArmRobot. - Its methods have an additional
arm_idparameter. - There is a method to get arm IDs.
- Relevant ARServer RPCs were extended with
arm_id. ProjectRobotJointsmodel now also containsarm_id.- There is
DummyMultiArmRobotObjectType for testing purposes.
- New base class
CachedProject:constantsrenamed toparameters.Generic:INIT_PRIORITYremoved as useless.GenericWithPose: do not delete collision models incleanup.- Collision models are removed by the Scene service on
stop.
- Collision models are removed by the Scene service on
- Usage of
orjsoninarcor2/jsonand for dataclasses.- 40% speedup for serialization.
- 80% speedup for deserialization.
- Tested on
Projectdataclass.
- Compatibility with Project service 0.10.0.
- Compatibility with Scene service 0.5.0.
- Uploading of meshes associated to ObjectTypes.
- Parameter
file_to_uploadwas added toupload_def.
- Parameter
Fixed
- Correct default port for Project service (10000).
[0.18.0] - 2021-06-14
Changed
- Modules
packageandresourcesmoved toarcor2_execution_data.
[0.17.0] - 2021-06-11
Changed
- Project service client updated to API version 0.8.0.
ARCOR2_PERSISTENT_STORAGE_URLrenamed toARCOR2_PROJECT_SERVICE_URL.- Dependencies updated.
[0.16.0] - 2021-05-21
Changed
- Objects initialization order (
Resources):- Object initialization order can be set using class-level
INIT_PRIORITYvariable. - The higher priority, the sooner are objects of that type initialized.
- Objects are initialized serially.
- Object initialization order can be set using class-level
CachedProjecthas new methods to deal with hierarchy (get_by_id,get_parent_id,childs).- Project service client updated to be compatible with version 0.7.0.
- Added a custom
jsonmodule.- Wraps the standard json module, so it might be easier to replace it in the future.
- Provides type annotations.
- Raises a custom exception based on
Arcor2Exception.
Fixed
- Handling of context manager arguments in
Resources.
[0.15.0] - 2021-04-20
Changed
- REST client now handles all codes >= 400 as errors.
[0.14.1] - 2021-04-19
Fixed
- Save and import of ObjectType was randomly failing because of race condition.
[0.14.0] - 2021-03-30
Changed
- Improved code for transforming poses.
- Use monkey patching instead of custom released version of dataclasses_jsonschema.
- Switched to builtin ast module instead of horast - much faster builds, etc.
- Added states
StoppingandPausingtoPackageState.Data.StateEnum.- This is because it may take some time to pause or stop a package.
- Other operations (as e.g. resume) are almost instant.
Fixed
Resourcesare now not sendingKeyboardInterruptas event.import_type_defnow provides better error messages when import fails.- Save and import of ObjectType was randomly failing.
[0.13.0] - 2021-03-15
Changed
- IDs (uuid) are now generated within the respective classes.
- If necessary, ID can be still provided from outside as before.
- IDs are prefixed so developers can easily check type of an object from its ID.
- Prefix always start with a character.
Fixed
- Composite actions are now properly handled by the
@actiondecorator.
[0.12.1] - 2021-03-08
Fixed
Poseparameter plugin fixed to generate correct code in a case when action on action point A uses orientation from action point B.
[0.12.0] - 2021-03-03
Fixed
- Parameter plugins now return copy of the parameter in order to prevent changes in the project if the value is modified e.g. within an action.
- Method
update_project_sourcesof the Project service client was fixed.
Changed
- Flask-based apps now don't log each API call by default.
- It can be turned on by setting
ARCOR2_REST_API_DEBUG.
- It can be turned on by setting
- The
restmodule has a new exception type RestHttpException for getting HTTP error codes. is_valid_identifiernow behaves the same asis_valid_type, it does not insist on convention (PascalCase vs snake_case) and provides concrete error messages.RobotAPI now hassafeparameter.Robotnow has API for hand teaching mode.- Line length of generated code changed from 80 to 120.
[0.11.1] - 2021-02-09
Fixed
@actiondecorator fixed.KeyErrorwas raised whenanparameter was not given to an action.- This only happened in the "manual" script writing scenario and when
patch_object_actionswas used.
[0.11.0] - 2021-02-08
Changed
- Explicit action parameters.
Resourcesclass now do not need to deal with parameters.- Update of ObjectTypes (all actions now have the mandatory
anparameter).
CurrentActionremoved,ActionStatedivided intoActionStateBeforeandActionStateAfter.- New module with shared code for Flask-based apps.
- Updates of 3rd party dependencies.
- WS server now logs too long RPCs.
- Max. duration could be configured using
ARCOR2_MAX_RPC_DURATION.
- Max. duration could be configured using
Fixed
- At a startup, the main script now checks if the scene is running before attempt to stop it.
image_from_strfunction fixed.
[0.10.0] - 2020-12-14
Changed
actiondecorator now handles outputs of actions.CachedProjecthas new methods for handling project logic.ActionStateevent now contains action results.- New built-in ObjectTypes
RandomActions. - Parameter plugins slightly reworked, some new helper functions.
- If a robot has URDF, it is zipped and uploaded to the Project service).
- ...as a mesh file, which is workaround for missing storage of URDF models.
- Scene service client updated to support version 0.4.0.
- New built-in abstract ObjectType
Camera. - Initial support for loading of URDF files.
- Some first tests for parameter plugins were added.
[0.9.2] - 2020-10-30
Fixed
parsefunction now also catchesValueErrorexception.check_object_typenow tries to parse whole module instead of just source of the class itself.
Changed
Robotbase class now have methods for IK/FK.- It is possible to use
==onPositioninstances.
[0.9.1] - 2020-10-19
Fixed
- package_version was ignoring
packageargument
[0.9.0] - 2020-10-16
Changed
- Scene client updated for Scene 0.3.0.
- Exceptions refactored (BREAKING).
- Arcor2Exception no longer has
messageproperty - There is a new package arcor2/exceptions.
- Clients using
handledecorator now have specific error messages defined. - Previously generated execution packages will become broken as
print_exceptionfunction was moved
- Arcor2Exception no longer has
- Loggers are now created using functions from
loggingmodule. restmodule rewritten (BREAKING).- Now there is only one method
callwhich takes http method as an argument. - There is
ARCOR2_REST_DEBUGenvironment variable. When set, debugging logs are turned on.
- Now there is only one method
Fixed
- JSON containing only boolean value was not handled properly by
arcor2.restmodule.
[0.8.0] - 2020-09-24
Changed
- Reorganisation of the repository - switched to monorepo based on Pants. The code was divided into more packages (that can be separatelly relased) within one repository.
- Tests now run on GitHub instead of CircleCi.
- Unification of objects and services
- There is
Genericbase class for objects without pose,GenericWithPosefor objects with pose andRobotclass that should be base class for every robot.
- There is
- Integration of scene service (0.2.0).
- @action decorator is now added automatically in the run-time.
Orientationdataclass now performs quaternion normalization in__post_init__.Robotbase class now has_move_lockmutex to ensure that only one move-action is called at the time.
[0.8.0rc2] - 2020-09-16
[0.8.0rc1] - 2020-09-15
[0.8.0b8] - 2020-08-21
Fixed
- Some robot-related issues fixed
[0.8.0b7] - 2020-08-12
Changed
- Scene service client: 'upsert_collision' now has optional 'mesh_parameters': parameter.
[0.8.0b6] - 2020-08-03
Changed
- New logic representation
- Unification of objects and services
- Integration of scene service
[0.7.1] - 2020-07-15
Fixed
- Fix of broken python package arcor2 0.7.0
[0.7.0] - 2020-07-15
Changed
- ARServer: new RPC 'TemporaryPackage'
- ARServer: RPC ObjectTypesChangedEvent renamed to ChangedObjectTypesEvent, now contains changed ObjectTypes meta instead of just type names
- ARServer: ShowMainScreenEvent.
- Package name added to PackageInfoEvent
- ARServer now compares its API_VERSION with API_VERSION of the Execution.
- ARServer: ShowMainScreenEvent will now not contain 'highlight' when sent to a newly connected UI.
- AP can now have another AP as parent
- rest: OptionalData now may contain list of primitive type.
- Execution: PackageStateEvent now contains package_id
- Execution: added 'executed' to PackageMeta
[0.6.0] - 2020-06-19
Changed
- Build/Execution proxy: allow port change using env. var.
- ARServer: RenameScene RPC now checks if scene name is unique and 'dry_run' works.
- ARServer: ListScenes/ListProjects now contain 'modified'.
- ARServer: DeleteObjectType RPC added.
- @action decorator is now compatible with Windows.
- Service class now has 'cleanup' method which is called when scene is closed or when script ends. Call of 'cleanup' can be disabled by 'export ARCOR_CLEANUP_SERVICES=False' - this is particularly useful when running the script manually again and again.
- Cleanup method for ObjectTypes.
[0.5.1] - 2020-06-04
Fixed
- ignoring check of return parameters
- allowing list of strings as request body
[0.5.0] - 2020-06-01
Changed
- ARServer container need to setup new env variable using docker-compose -> ARCOR2_DATA_PATH=/root/data
- ListProjects RPC now gets projects in parallel.
- dry_run parameter for selected RPCs
- EEF pose/robot joints streaming
- OpenScene, OpenProject, SceneClosed, ProjectClosed events.
- Execution proxy: use persistent websocket connection.
- SceneCollisionsEvent merged into PackageInfoEvent
- ARServer: RPC to cancel action execution.
- Execution package now contains package.json with its metadata. Execution service now supports renaming of packages.
[0.4.3] - 2020-05-22
Changed
- added support for CORS
[0.4.2] - 2020-04-27
Fixed
- Fix of functions to transform relative poses to absolute and vice versa
[0.4.1] - 2020-04-22
Added
- New RPCs for getting robot joints and effector pose
- New RPC to get IDs of EE and suctions
- Added pivot enum for UpdateObjectPoseUsingRobot
Fixed
- Fix of remove action RPC
- Another fixes
[0.4.0] - 2020-04-17
Changed
- Complete redesign of RPC for ARClients (AREditor atm)
- Documentation of execution and build API
- Support for project service 0.2.0
- New and updated events
- Enhanced error messages
- Create (global) session to enable reuse of connections.
[0.3.0] - 2020-03-24
Changed
- Renamed RobotJoints to ProjectRobotJoints and ModelTypeEnum to Model3dType
- Added new services for Time and Logic related actons
- Added boolean parameter plugin
- Description, returns and origins fields marked as optional
- New event - ActionResult
- Separated script enabling discovery through UDP broadcast
- Support for list params
- Services and Action objects are now marked as disabled when some problem occured and error message is passed to GUI (previously such services/objects were ignored)
- Services with no configuration are disabled
[0.2.1] - 2020-02-28
Fixed
- Added compatibility with Project service v 0.1.1
- Param values and defaults are strings now
- min, max stored in extra as JSON string
[0.2.0] - 2020-02-20
Changed
- ExecuteAction RPC.
- Uuid for action object/point/action.
- Execution proxy PUT method
- ActionPoint class in execution package
- Removed loop in main script, when hasLogic == false
- Parameter values not send in currentAction event
- ProjectState RESUMED removed
- Execution: print out script output if not JSON.
- Joint: rotation -> value
[0.1.7] - 2019-12-24
Fixed
- Build: disable caching
[0.1.5] - 2019-12-22
Fixed
- Parameter plugins
[0.1.4] - 2019-12-18
Fixed
- Parameter of type relative_pose now accepts json string as value
[0.1.3] - 2019-12-18
Fixed
- N/A
[0.1.2] - 2019-12-17
Fixed
- bump docker version
[0.1.1] - 2019-12-17
Fixed
- bump docker version
[0.1.1] - 2019-12-12
Fixed
- N/A
[0.1.0] - 2019-12-12
Changed
- Separation of services.
Metadata
Release files for arcor2 1.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| arcor2-1.5.0.tar.gz | 72.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| arcor2-1.5.0-py311-none-any.whl | Python 3.11 | none | any | Details |
Total release size: 152.5 kB
Release files / arcor2-1.5.0.tar.gz
| Download URL | arcor2-1.5.0.tar.gz |
|---|---|
| Size | 72.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1f70a61f7ed990d95a72b55de1a8b1c2dfc388c89bc1617b05d789c19c54a7c9
|
|
BLAKE2b-256 checksum How to use checksums |
99592941ac26184d704a9bd08609ae0ac99f9d85f37d872b49b613291523b5a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.12.3
|
Release files / arcor2-1.5.0-py311-none-any.whl
| Download URL | arcor2-1.5.0-py311-none-any.whl |
|---|---|
| Size | 79.8 kB |
| Tags | Python 3.11 |
|
SHA-256 checksum How to use checksums |
fb6cee022d66c293501cf3a4e3763102f5465ccd7018763d6ec2d007f6950739
|
|
BLAKE2b-256 checksum How to use checksums |
55eeb5f1354d574ab48dd50b2f48c7428c49fe147e5c2de0358905390f9c40b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.12.3
|
Security for arcor2 1.5.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.