urkit 0.3.11__tar.gz → 0.3.13__tar.gz
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.
- {urkit-0.3.11 → urkit-0.3.13}/PKG-INFO +1 -1
- {urkit-0.3.11 → urkit-0.3.13}/pyproject.toml +1 -1
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit/__init__.py +1 -1
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit/points.py +1 -1
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit/robot.py +14 -7
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit.egg-info/PKG-INFO +1 -1
- {urkit-0.3.11 → urkit-0.3.13}/README.md +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/setup.cfg +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit/__main__.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit/cli/__init__.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit/cli/colors.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit/cli/connection_monitor.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit/cli/points.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit/cli/teach.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit/config.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit/connection.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit/exceptions.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit/geometry.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit/gripper/__init__.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit/gripper/base.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit/gripper/digital.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit/gripper/presets.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit/gripper/robotiq.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit/gripper/robotiq_preamble.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit/io.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit/motion.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit/telemetry.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit.egg-info/SOURCES.txt +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit.egg-info/dependency_links.txt +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit.egg-info/entry_points.txt +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit.egg-info/requires.txt +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/src/urkit.egg-info/top_level.txt +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/tests/test_exceptions.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/tests/test_geometry.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/tests/test_gripper.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/tests/test_gripper_factory.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/tests/test_gripper_presets.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/tests/test_points.py +0 -0
- {urkit-0.3.11 → urkit-0.3.13}/tests/test_robot_integration.py +0 -0
|
@@ -119,7 +119,7 @@ class Points:
|
|
|
119
119
|
else:
|
|
120
120
|
self._path = Path(path).resolve()
|
|
121
121
|
self._path.parent.mkdir(parents=True, exist_ok=True)
|
|
122
|
-
self._conn = sqlite3.connect(str(self._path))
|
|
122
|
+
self._conn = sqlite3.connect(str(self._path), check_same_thread=False)
|
|
123
123
|
_init_db(self._conn)
|
|
124
124
|
|
|
125
125
|
def _close(self) -> None:
|
|
@@ -9,7 +9,7 @@ from __future__ import annotations
|
|
|
9
9
|
import logging
|
|
10
10
|
import sys
|
|
11
11
|
import time
|
|
12
|
-
from typing import TYPE_CHECKING, Union
|
|
12
|
+
from typing import TYPE_CHECKING, Optional, Union
|
|
13
13
|
from pathlib import Path
|
|
14
14
|
|
|
15
15
|
if TYPE_CHECKING:
|
|
@@ -1491,17 +1491,23 @@ class URRobot:
|
|
|
1491
1491
|
# Point management
|
|
1492
1492
|
# ------------------------------------------------------------------
|
|
1493
1493
|
|
|
1494
|
-
def save_point(self, name: str) -> Point:
|
|
1495
|
-
"""Save
|
|
1494
|
+
def save_point(self, name: str, pose: Optional[list[float]] = None) -> Point:
|
|
1495
|
+
"""Save a named point.
|
|
1496
1496
|
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1497
|
+
When *pose* is omitted, saves the current TCP pose from
|
|
1498
|
+
getActualTCPPose(). When *pose* is provided, saves that
|
|
1499
|
+
arbitrary pose directly without moving the robot.
|
|
1500
|
+
|
|
1501
|
+
The UR controller interprets the stored pose in whatever TCP
|
|
1502
|
+
frame is active at playback time, making points tool-agnostic
|
|
1503
|
+
by design.
|
|
1500
1504
|
|
|
1501
1505
|
Overwrites if a point with the same name already exists.
|
|
1502
1506
|
|
|
1503
1507
|
Args:
|
|
1504
1508
|
name: Name for the saved point.
|
|
1509
|
+
pose: TCP pose [x, y, z, rx, ry, rz]. Defaults to current
|
|
1510
|
+
robot position.
|
|
1505
1511
|
|
|
1506
1512
|
Returns:
|
|
1507
1513
|
The saved Point object.
|
|
@@ -1510,7 +1516,8 @@ class URRobot:
|
|
|
1510
1516
|
PointError: If points database is not set or saving fails.
|
|
1511
1517
|
"""
|
|
1512
1518
|
points = self._require_points()
|
|
1513
|
-
pose
|
|
1519
|
+
if pose is None:
|
|
1520
|
+
pose = self._telemetry.get_tcp_pose()
|
|
1514
1521
|
point = Point(name=name, pose=pose)
|
|
1515
1522
|
points.save(point)
|
|
1516
1523
|
logger.info("Saved point '%s'", name)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|