<!--
    https://git.h2t.iar.kit.edu/sw/armarx/python3-armarx
-->

<sup>Issue boards:</sup>
[![Bugs](https://img.shields.io/badge/Bugs-red.svg)](
    .../-/issues/?sort=updated_desc&state=opened&label_name[]=bug&first_page_size=20
)
[![Migration](https://img.shields.io/badge/Migration-orange.svg)](
    .../-/issues/?sort=updated_desc&state=opened&label_name[]=migration&first_page_size=20
)
[![Requests](https://img.shields.io/badge/Feature_requests-yellow.svg)](
    .../-/issues/?sort=updated_desc&state=opened&label_name[]=migration&first_page_size=20
)
<sup>| Setup:</sup>
[![Installation](https://img.shields.io/badge/Installation-blue.svg)](
    ./Installation.md
)
<sup>| Maintainer:</sup>
[![Code owners](https://img.shields.io/badge/Code_owner-cyan.svg)](
    ./.gitlab/CODEOWNERS
)


[[_TOC_]]


---

# Foreword

**Python ArmarX - A Python Toolbox for ArmarX**

This package provides Python 3 bindings for ArmarX,
including client classes for common interfaces to core functionalities 


# Terms and Concepts

The main structure by this package can be illustrated like this: 

{...}



# Structure of this Package

On the code level, this package contains the following libraries and components:

## Libraries

- The [core library](source/armarx/externalization/core) with common data types and their conversions.


# Usage Example

The following examples show how to connect to a proxy provided by ArmarX framework in general, as well as specialized use cases such as obtaining images, control the robot, read from and write to memory, etc.

### Connecting to an Existing Proxy

Slice definitions can be loaded using the `slice_loader.load_armarx_slice()` function. 
Default values for the proxy name will also be mapped.

For proxies defined in a project's `Variants-*.xml` it is possible to import
the interface directly. 

```python
from armarx import PlatformUnitInterfacePrx
platform_unit = PlatformUnitInterfacePrx.get_proxy('Armar6PlatformUnit')
platform_unit.moveTo(0.0, 0.0, 0.0, 50.0, 0.1)
```

### Examples

More examples can be found in the [`examples`](examples) folder.
See also the [Examples in the ArmarX Academy](https://git.h2t.iar.kit.edu/sw/armarx/meta/academy/-/blob/main/examples/README.md).


### Use armarx_control

See [armarx_control tutorial](docs/_tutorial_armarx_control.md)


# How To

See the [ArmarX API documentation](https://armarx.humanoids.kit.edu/python).