dexcontrol 0.2.1__py3-none-any.whl → 0.2.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of dexcontrol might be problematic. Click here for more details.
- {dexcontrol-0.2.1.dist-info → dexcontrol-0.2.2.dist-info}/METADATA +1 -137
- {dexcontrol-0.2.1.dist-info → dexcontrol-0.2.2.dist-info}/RECORD +6 -6
- {dexcontrol-0.2.1.dist-info → dexcontrol-0.2.2.dist-info}/WHEEL +0 -0
- {dexcontrol-0.2.1.dist-info → dexcontrol-0.2.2.dist-info}/licenses/LICENSE +0 -0
- {dexcontrol-0.2.1.dist-info → dexcontrol-0.2.2.dist-info}/licenses/NOTICE +0 -0
- {dexcontrol-0.2.1.dist-info → dexcontrol-0.2.2.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dexcontrol
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: A Python library of Robot Motion Control
|
|
5
5
|
Author-email: Dexmate <contact@dexmate.com>
|
|
6
6
|
License: “Commons Clause” License Condition v1.0
|
|
@@ -200,7 +200,6 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
200
200
|
Classifier: Operating System :: OS Independent
|
|
201
201
|
Classifier: Typing :: Typed
|
|
202
202
|
Requires-Python: >=3.10
|
|
203
|
-
Description-Content-Type: text/markdown
|
|
204
203
|
License-File: LICENSE
|
|
205
204
|
License-File: NOTICE
|
|
206
205
|
Requires-Dist: protobuf>=6.31.0
|
|
@@ -232,138 +231,3 @@ Requires-Dist: dualsense-controller>=0.3.1; extra == "example"
|
|
|
232
231
|
Requires-Dist: pytransform3d==3.13.0; extra == "example"
|
|
233
232
|
Requires-Dist: ruckig; extra == "example"
|
|
234
233
|
Dynamic: license-file
|
|
235
|
-
|
|
236
|
-
# dexcontrol
|
|
237
|
-
|
|
238
|
-
A user-friendly robot learning oriented control library implemented in Python.
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
## Development Guide
|
|
242
|
-
|
|
243
|
-
### Pre-commit Hooks
|
|
244
|
-
This repository uses pre-commit hooks to maintain high code quality standards. The hooks automatically run code formatting and linting checks before each commit, ensuring consistent code style and catching potential issues early in the development process.
|
|
245
|
-
|
|
246
|
-
To set up pre-commit:
|
|
247
|
-
|
|
248
|
-
1. Install the development dependencies:
|
|
249
|
-
```bash
|
|
250
|
-
pip install pre-commit
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
2. Install the pre-commit hooks:
|
|
254
|
-
```bash
|
|
255
|
-
pre-commit install
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
## Setup
|
|
260
|
-
|
|
261
|
-
### 1. Install dextop
|
|
262
|
-
|
|
263
|
-
First, install [dextop](https://github.com/dm-ai-core/dextop) for secure robot communication. This handles authentication of zenoh communication and robot selection when multiple robots are present.
|
|
264
|
-
|
|
265
|
-
The robot (SOC and Jetson) and your development computer must use certificates generated by the same CA. For internal Dexmate users, you can use the pre-generated `dexmate_internal_certs.zip`.
|
|
266
|
-
|
|
267
|
-
> [!TIP]
|
|
268
|
-
> For security reasons, find these certificates in the slack channel rather than Github. Internal certificates are removed before customer delivery.
|
|
269
|
-
|
|
270
|
-
Install the certificates (no need to unzip manually):
|
|
271
|
-
```shell
|
|
272
|
-
dextop cert unpack dexmate_internal_certs.zip
|
|
273
|
-
dextop cfg gen
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
Install certificates on all three devices (SOC, Jetson, and development computer). This is a one-time setup, and certificates will be stored in `~/.dexmate/comm/zenoh`.
|
|
277
|
-
|
|
278
|
-
### 2. Install pylibdexcontrol
|
|
279
|
-
|
|
280
|
-
Install [pylibdexcontrol](https://github.com/dm-ai-core/pylibdexcontrol) on the **SOC**. Start the zenoh server:
|
|
281
|
-
```shell
|
|
282
|
-
robot-server --start
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
### 3. Network Configuration
|
|
286
|
-
|
|
287
|
-
**Standard Setup**
|
|
288
|
-
For running dexcontrol on Jetson, no additional configuration is needed. The default network architecture looks like this:
|
|
289
|
-
|
|
290
|
-
```ASCII
|
|
291
|
-
Router (192.168.0.1)
|
|
292
|
-
↕
|
|
293
|
-
Jetson [WiFi: 192.168.0.70, Ethernet: 192.168.50.20]
|
|
294
|
-
↕
|
|
295
|
-
SOC [192.168.50.21 / 192.168.100.22:50000]
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
**Remote Development Setup**
|
|
299
|
-
You'll need additional configuration in these scenarios:
|
|
300
|
-
- You want to control the robot from your development computer
|
|
301
|
-
- The zenoh server is running on SOC
|
|
302
|
-
- SOC is only connected to Jetson via Ethernet (no WiFi connection)
|
|
303
|
-
|
|
304
|
-
In this case, run the following command on Jetson:
|
|
305
|
-
```shell
|
|
306
|
-
dextop node start --config ~/.dexmate/comm/zenoh/zenoh_peer_config.json5
|
|
307
|
-
```
|
|
308
|
-
|
|
309
|
-
This command configures Jetson to act as a network bridge:
|
|
310
|
-
- Jetson will route traffic between your development computer and the SOC
|
|
311
|
-
- Allows dexcontrol (on your computer) to communicate with pylibdexcontrol (on SOC)
|
|
312
|
-
- Enables control even when your computer and SOC are on different networks
|
|
313
|
-
|
|
314
|
-
## Examples
|
|
315
|
-
|
|
316
|
-
Check out the [examples](./examples) for examples.
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
## Changelist from V1 to V2
|
|
320
|
-
|
|
321
|
-
The primary difference between V1 and V2. After migration, the v2 will take over these files:
|
|
322
|
-
1. `configs/`
|
|
323
|
-
2. `core/`
|
|
324
|
-
|
|
325
|
-
## System Design
|
|
326
|
-
|
|
327
|
-
Dexcontrol acts as a client for the Dexmate robot. It fetches robot information and sends control commands by communicating with the robot server via the zenoh protocol.
|
|
328
|
-
|
|
329
|
-
### Units
|
|
330
|
-
|
|
331
|
-
All API units use the International System of Units (SI):
|
|
332
|
-
- Distance: meters (m)
|
|
333
|
-
- Angles: radians (rad)
|
|
334
|
-
- Angular velocity: radians per second (rad/s)
|
|
335
|
-
- Force: newtons (N)
|
|
336
|
-
- Torque: newton-meters (N·m)
|
|
337
|
-
|
|
338
|
-
The only exception is temperature, we use degree celsius instead of Kelvin in dexcontrol.
|
|
339
|
-
|
|
340
|
-
### Zenoh Communication Protocol
|
|
341
|
-
|
|
342
|
-
DexControl uses the following naming convention for zenoh communication:
|
|
343
|
-
|
|
344
|
-
| Name | Type | Example | Description |
|
|
345
|
-
| ----------- | ------------- | -------------------- | ------------------------------------------------------------------------------------------------- |
|
|
346
|
-
| `state/*` | Topic (async) | `state/arm/left` | Robot motor state information. DexControl handles this automatically. |
|
|
347
|
-
| `control/*` | Topic (async) | `control/torso` | Send control commands to robot motors. Requires a control message. |
|
|
348
|
-
| `mode/*` | Query (sync) | `mode/arm/left` | Set the mode of robot motors (e.g., position mode, disable a motor). Requires a query message. |
|
|
349
|
-
| `system/*` | Query (sync) | `system/clear_error` | System-level commands (e.g., reboot components, handle emergency stop). Requires a query message. |
|
|
350
|
-
| `info/*` | Get (sync) | `info/version` | Retrieve information from the robot. No query message needed and no impact on the physical robot. |
|
|
351
|
-
|
|
352
|
-
The final name of zenoh topic is `{robot_name}/{topic_name}`, e.g. `dm-d17edf944753/state/hand/left`.
|
|
353
|
-
|
|
354
|
-
## Documentation
|
|
355
|
-
|
|
356
|
-
Documentation generation tools and scripts are located in the `docgen/` directory. To build documentation:
|
|
357
|
-
|
|
358
|
-
```bash
|
|
359
|
-
# Install documentation dependencies
|
|
360
|
-
pip install -e ".[docs]"
|
|
361
|
-
|
|
362
|
-
# Build HTML documentation
|
|
363
|
-
python docgen/build_docs.py
|
|
364
|
-
|
|
365
|
-
# Build GitBook documentation
|
|
366
|
-
python docgen/build_docs.py --gitbook
|
|
367
|
-
```
|
|
368
|
-
|
|
369
|
-
For detailed documentation setup and configuration, see [`docgen/DOCUMENTATION_SETUP.md`](docgen/DOCUMENTATION_SETUP.md).
|
|
@@ -64,9 +64,9 @@ dexcontrol/utils/subscribers/generic.py,sha256=JRV2C9JUzb-ur_rYgrvfXzCEOn97qtEjV
|
|
|
64
64
|
dexcontrol/utils/subscribers/imu.py,sha256=Oqld689QMdO6U6LyHr1BME8qznUOCIrWXLXeZN_i2OE,5872
|
|
65
65
|
dexcontrol/utils/subscribers/lidar.py,sha256=JaenYj1uM1_ZsqvqDNaXiZ6GxQxrzmyxmOm4ZVSuiWk,6908
|
|
66
66
|
dexcontrol/utils/subscribers/protobuf.py,sha256=xSixVb5Aam46ZNB7gDu6EhXYJeweZwH9YBCTjYzc9U4,3643
|
|
67
|
-
dexcontrol-0.2.
|
|
68
|
-
dexcontrol-0.2.
|
|
69
|
-
dexcontrol-0.2.
|
|
70
|
-
dexcontrol-0.2.
|
|
71
|
-
dexcontrol-0.2.
|
|
72
|
-
dexcontrol-0.2.
|
|
67
|
+
dexcontrol-0.2.2.dist-info/licenses/LICENSE,sha256=pI0_HyI4CAFKXzQbazrOBP7guBFO6FANv6HQ8bLUdZY,11090
|
|
68
|
+
dexcontrol-0.2.2.dist-info/licenses/NOTICE,sha256=2bn0Oj6mcMaF2UXcFBBsoo1saTDT5ckXRxWox2v9Eyg,553
|
|
69
|
+
dexcontrol-0.2.2.dist-info/METADATA,sha256=8_DH-a8FVs28HP95qFaMqwItqpVIakNs7yptEv8TPxU,14361
|
|
70
|
+
dexcontrol-0.2.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
71
|
+
dexcontrol-0.2.2.dist-info/top_level.txt,sha256=w2f_NATKds1Re9WJOTegoYipVYmAXFmyceMxAnzhoYM,11
|
|
72
|
+
dexcontrol-0.2.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|