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.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dexcontrol
3
- Version: 0.2.1
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.1.dist-info/licenses/LICENSE,sha256=pI0_HyI4CAFKXzQbazrOBP7guBFO6FANv6HQ8bLUdZY,11090
68
- dexcontrol-0.2.1.dist-info/licenses/NOTICE,sha256=2bn0Oj6mcMaF2UXcFBBsoo1saTDT5ckXRxWox2v9Eyg,553
69
- dexcontrol-0.2.1.dist-info/METADATA,sha256=G7A8k3SRm1m3mqymT9FtSJ_g14SljLRdgb_PkUrHgfU,19510
70
- dexcontrol-0.2.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
71
- dexcontrol-0.2.1.dist-info/top_level.txt,sha256=w2f_NATKds1Re9WJOTegoYipVYmAXFmyceMxAnzhoYM,11
72
- dexcontrol-0.2.1.dist-info/RECORD,,
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,,