franky-control 1.0.0__cp38-cp38-manylinux_2_34_x86_64.whl → 1.0.2__cp38-cp38-manylinux_2_34_x86_64.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.
- franky/_franky.cpython-38-x86_64-linux-gnu.so +0 -0
- franky/_franky.pyi +153 -153
- franky/robot.py +2 -2
- {franky_control-1.0.0.dist-info → franky_control-1.0.2.dist-info}/METADATA +68 -41
- franky_control-1.0.2.dist-info/RECORD +26 -0
- franky_control.libs/libPocoFoundation-44c2a91d.so.95 +0 -0
- franky_control.libs/libPocoNet-2f9ce4bf.so.95 +0 -0
- franky_control.libs/libboost_filesystem-42b111b5.so.1.75.0 +0 -0
- franky_control.libs/{libboost_serialization-75ebc722.so.1.78.0 → libboost_serialization-0b785d4d.so.1.75.0} +0 -0
- franky_control.libs/libfranka-976dfd01.so.0.15.0 +0 -0
- franky_control.libs/libpinocchio_default-b05a4796.so.3.1.0 +0 -0
- franky_control.libs/libpinocchio_parsers-74bdc3cc.so.3.1.0 +0 -0
- franky_control-1.0.0.dist-info/RECORD +0 -28
- franky_control.libs/libPocoFoundationd-74964157.so.92 +0 -0
- franky_control.libs/libPocoNetd-5dd54f10.so.92 +0 -0
- franky_control.libs/libboost_atomic-64eba867.so.1.78.0 +0 -0
- franky_control.libs/libboost_filesystem-63963750.so.1.78.0 +0 -0
- franky_control.libs/libfranka-fb54b5c1.so.0.15.0 +0 -0
- franky_control.libs/libpcre2-8-b77f698a.so.0.11.0 +0 -0
- franky_control.libs/libpinocchio_default-eb97a09e.so.3.4.0 +0 -0
- franky_control.libs/libpinocchio_parsers-9f152785.so.3.4.0 +0 -0
- {franky_control-1.0.0.dist-info → franky_control-1.0.2.dist-info}/LICENSE +0 -0
- {franky_control-1.0.0.dist-info → franky_control-1.0.2.dist-info}/WHEEL +0 -0
- {franky_control-1.0.0.dist-info → franky_control-1.0.2.dist-info}/top_level.txt +0 -0
Binary file
|
franky/_franky.pyi
CHANGED
@@ -5,7 +5,7 @@ from __future__ import annotations
|
|
5
5
|
import numpy
|
6
6
|
import pybind11_stubgen.typing_ext
|
7
7
|
import typing
|
8
|
-
__all__ = ['Affine', 'BaseCartesianPoseMotion', 'BaseCartesianVelocityMotion', 'BaseJointPositionMotion', 'BaseJointVelocityMotion', 'BaseTorqueMotion', 'BoolFuture', 'CartesianImpedanceMotion', 'CartesianMotion', 'CartesianPose', 'CartesianPoseReaction', 'CartesianState', 'CartesianStopMotion', 'CartesianVelocities', 'CartesianVelocityMotion', 'CartesianVelocityReaction', 'CartesianVelocityStopMotion', 'CartesianVelocityWaypoint', 'CartesianVelocityWaypointMotion', 'CartesianWaypoint', 'CartesianWaypointMotion', 'CommandException', 'Condition', 'ControlException', 'ControlSignalType', 'ControllerMode', 'DoubleDynamicsLimit', 'Duration', 'ElbowState', 'Errors', 'Exception', 'ExponentialImpedanceMotion', 'FlipDirection', 'Frame', 'Gripper', 'GripperException', 'GripperState', 'ImpedanceMotion', 'IncompatibleVersionException', 'InvalidMotionTypeException', 'InvalidOperationException', 'JointMotion', 'JointPositionReaction', 'JointPositions', 'JointState', 'JointStopMotion', 'JointVelocities', 'JointVelocityMotion', 'JointVelocityReaction', 'JointVelocityStopMotion', 'JointVelocityWaypoint', 'JointVelocityWaypointMotion', 'JointWaypoint', 'JointWaypointMotion', 'Measure', 'Model', 'ModelException', 'NetworkException', 'ProtocolException', 'ReactionRecursionException', 'RealtimeConfig', 'RealtimeException', 'ReferenceType', 'RelativeDynamicsFactor', '
|
8
|
+
__all__ = ['Affine', 'BaseCartesianPoseMotion', 'BaseCartesianVelocityMotion', 'BaseJointPositionMotion', 'BaseJointVelocityMotion', 'BaseTorqueMotion', 'BoolFuture', 'CartesianImpedanceMotion', 'CartesianMotion', 'CartesianPose', 'CartesianPoseReaction', 'CartesianState', 'CartesianStopMotion', 'CartesianVelocities', 'CartesianVelocityMotion', 'CartesianVelocityReaction', 'CartesianVelocityStopMotion', 'CartesianVelocityWaypoint', 'CartesianVelocityWaypointMotion', 'CartesianWaypoint', 'CartesianWaypointMotion', 'CommandException', 'Condition', 'ControlException', 'ControlSignalType', 'ControllerMode', 'DoubleDynamicsLimit', 'Duration', 'ElbowState', 'Errors', 'Exception', 'ExponentialImpedanceMotion', 'FlipDirection', 'Frame', 'Gripper', 'GripperException', 'GripperState', 'ImpedanceMotion', 'IncompatibleVersionException', 'InvalidMotionTypeException', 'InvalidOperationException', 'JointMotion', 'JointPositionReaction', 'JointPositions', 'JointState', 'JointStopMotion', 'JointVelocities', 'JointVelocityMotion', 'JointVelocityReaction', 'JointVelocityStopMotion', 'JointVelocityWaypoint', 'JointVelocityWaypointMotion', 'JointWaypoint', 'JointWaypointMotion', 'Measure', 'Model', 'ModelException', 'NetworkException', 'ProtocolException', 'ReactionRecursionException', 'RealtimeConfig', 'RealtimeException', 'ReferenceType', 'RelativeDynamicsFactor', 'RobotMode', 'RobotPose', 'RobotState', 'RobotVelocity', 'TorqueReaction', 'Torques', 'Twist', 'TwistAcceleration', 'VectorDynamicsLimit']
|
9
9
|
class Affine:
|
10
10
|
@staticmethod
|
11
11
|
def _pybind11_conduit_v1_(*args, **kwargs):
|
@@ -1188,158 +1188,6 @@ class RelativeDynamicsFactor:
|
|
1188
1188
|
@property
|
1189
1189
|
def velocity(self) -> float:
|
1190
1190
|
...
|
1191
|
-
class RobotInternal:
|
1192
|
-
control_rate: typing.ClassVar[float] = 0.001
|
1193
|
-
degrees_of_freedom: typing.ClassVar[int] = 7
|
1194
|
-
relative_dynamics_factor: RelativeDynamicsFactor
|
1195
|
-
@staticmethod
|
1196
|
-
def _pybind11_conduit_v1_(*args, **kwargs):
|
1197
|
-
...
|
1198
|
-
def __init__(self, fci_hostname: str, relative_dynamics_factor: RelativeDynamicsFactor | float = 1.0, default_torque_threshold: float = 20.0, default_force_threshold: float = 30.0, controller_mode: ControllerMode = ..., realtime_config: RealtimeConfig = ..., kalman_q_process_var: float = 0.0001, kalman_dq_process_var: float = 0.001, kalman_ddq_process_var: float = 0.1, kalman_control_process_var: float = 1.0, kalman_q_obs_var: float = 0.01, kalman_dq_obs_var: float = 0.1, kalman_q_d_obs_var: float = 0.0001, kalman_dq_d_obs_var: float = 0.0001, kalman_ddq_d_obs_var: float = 0.0001, kalman_control_adaptation_rate: float = 0.1) -> None:
|
1199
|
-
...
|
1200
|
-
def join_motion(self, timeout: float | None = None) -> bool:
|
1201
|
-
...
|
1202
|
-
@typing.overload
|
1203
|
-
def move(self, motion: BaseCartesianPoseMotion, asynchronous: bool = False) -> None:
|
1204
|
-
...
|
1205
|
-
@typing.overload
|
1206
|
-
def move(self, motion: BaseCartesianVelocityMotion, asynchronous: bool = False) -> None:
|
1207
|
-
...
|
1208
|
-
@typing.overload
|
1209
|
-
def move(self, motion: BaseJointPositionMotion, asynchronous: bool = False) -> None:
|
1210
|
-
...
|
1211
|
-
@typing.overload
|
1212
|
-
def move(self, motion: BaseJointVelocityMotion, asynchronous: bool = False) -> None:
|
1213
|
-
...
|
1214
|
-
@typing.overload
|
1215
|
-
def move(self, motion: BaseTorqueMotion, asynchronous: bool = False) -> None:
|
1216
|
-
...
|
1217
|
-
def poll_motion(self) -> bool:
|
1218
|
-
...
|
1219
|
-
def recover_from_errors(self) -> bool:
|
1220
|
-
...
|
1221
|
-
def set_cartesian_impedance(self, K_x: typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(6)]) -> None:
|
1222
|
-
...
|
1223
|
-
@typing.overload
|
1224
|
-
def set_collision_behavior(self, torque_thresholds: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(7)] | numpy.ndarray[numpy.float64[7, 1]], force_thresholds: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(6)] | numpy.ndarray[numpy.float64[6, 1]]) -> None:
|
1225
|
-
...
|
1226
|
-
@typing.overload
|
1227
|
-
def set_collision_behavior(self, lower_torque_threshold: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(7)] | numpy.ndarray[numpy.float64[7, 1]], upper_torque_threshold: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(7)] | numpy.ndarray[numpy.float64[7, 1]], lower_force_threshold: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(6)] | numpy.ndarray[numpy.float64[6, 1]], upper_force_threshold: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(6)] | numpy.ndarray[numpy.float64[6, 1]]) -> None:
|
1228
|
-
...
|
1229
|
-
@typing.overload
|
1230
|
-
def set_collision_behavior(self, lower_torque_threshold_acceleration: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(7)] | numpy.ndarray[numpy.float64[7, 1]], upper_torque_threshold_acceleration: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(7)] | numpy.ndarray[numpy.float64[7, 1]], lower_torque_threshold_nominal: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(7)] | numpy.ndarray[numpy.float64[7, 1]], upper_torque_threshold_nominal: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(7)] | numpy.ndarray[numpy.float64[7, 1]], lower_force_threshold_acceleration: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(6)] | numpy.ndarray[numpy.float64[6, 1]], upper_force_threshold_acceleration: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(6)] | numpy.ndarray[numpy.float64[6, 1]], lower_force_threshold_nominal: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(6)] | numpy.ndarray[numpy.float64[6, 1]], upper_force_threshold_nominal: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(6)] | numpy.ndarray[numpy.float64[6, 1]]) -> None:
|
1231
|
-
...
|
1232
|
-
def set_ee(self, NE_T_EE: typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(16)]) -> None:
|
1233
|
-
...
|
1234
|
-
def set_guiding_mode(self, guiding_mode: typing.Annotated[list[bool], pybind11_stubgen.typing_ext.FixedSize(6)], elbow: bool) -> None:
|
1235
|
-
...
|
1236
|
-
def set_joint_impedance(self, K_theta: typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(7)]) -> None:
|
1237
|
-
...
|
1238
|
-
def set_k(self, EE_T_K: typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(16)]) -> None:
|
1239
|
-
...
|
1240
|
-
def set_load(self, load_mass: float, F_x_Cload: typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(3)], load_inertia: typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(9)]) -> None:
|
1241
|
-
...
|
1242
|
-
def stop(self) -> None:
|
1243
|
-
...
|
1244
|
-
@property
|
1245
|
-
def current_cartesian_state(self) -> CartesianState:
|
1246
|
-
...
|
1247
|
-
@property
|
1248
|
-
def current_cartesian_velocity(self) -> RobotVelocity:
|
1249
|
-
...
|
1250
|
-
@property
|
1251
|
-
def current_control_signal_type(self) -> ControlSignalType | None:
|
1252
|
-
...
|
1253
|
-
@property
|
1254
|
-
def current_joint_positions(self) -> numpy.ndarray[numpy.float64[7, 1]]:
|
1255
|
-
...
|
1256
|
-
@property
|
1257
|
-
def current_joint_state(self) -> JointState:
|
1258
|
-
...
|
1259
|
-
@property
|
1260
|
-
def current_joint_velocities(self) -> numpy.ndarray[numpy.float64[7, 1]]:
|
1261
|
-
...
|
1262
|
-
@property
|
1263
|
-
def current_pose(self) -> RobotPose:
|
1264
|
-
...
|
1265
|
-
@property
|
1266
|
-
def elbow_acceleration_limit(self) -> DoubleDynamicsLimit:
|
1267
|
-
"""
|
1268
|
-
[rad/s²]
|
1269
|
-
"""
|
1270
|
-
@property
|
1271
|
-
def elbow_jerk_limit(self) -> DoubleDynamicsLimit:
|
1272
|
-
"""
|
1273
|
-
[rad/s³]
|
1274
|
-
"""
|
1275
|
-
@property
|
1276
|
-
def elbow_velocity_limit(self) -> DoubleDynamicsLimit:
|
1277
|
-
"""
|
1278
|
-
[rad/s]
|
1279
|
-
"""
|
1280
|
-
@property
|
1281
|
-
def fci_hostname(self) -> str:
|
1282
|
-
...
|
1283
|
-
@property
|
1284
|
-
def has_errors(self) -> bool:
|
1285
|
-
...
|
1286
|
-
@property
|
1287
|
-
def is_in_control(self) -> bool:
|
1288
|
-
...
|
1289
|
-
@property
|
1290
|
-
def joint_acceleration_limit(self) -> VectorDynamicsLimit:
|
1291
|
-
"""
|
1292
|
-
[rad/s²]
|
1293
|
-
"""
|
1294
|
-
@property
|
1295
|
-
def joint_jerk_limit(self) -> VectorDynamicsLimit:
|
1296
|
-
"""
|
1297
|
-
[rad/s^3]
|
1298
|
-
"""
|
1299
|
-
@property
|
1300
|
-
def joint_velocity_limit(self) -> VectorDynamicsLimit:
|
1301
|
-
"""
|
1302
|
-
[rad/s]
|
1303
|
-
"""
|
1304
|
-
@property
|
1305
|
-
def model(self) -> Model:
|
1306
|
-
...
|
1307
|
-
@property
|
1308
|
-
def model_urdf(self) -> str:
|
1309
|
-
...
|
1310
|
-
@property
|
1311
|
-
def rotation_acceleration_limit(self) -> DoubleDynamicsLimit:
|
1312
|
-
"""
|
1313
|
-
[rad/s²]
|
1314
|
-
"""
|
1315
|
-
@property
|
1316
|
-
def rotation_jerk_limit(self) -> DoubleDynamicsLimit:
|
1317
|
-
"""
|
1318
|
-
[rad/s³]
|
1319
|
-
"""
|
1320
|
-
@property
|
1321
|
-
def rotation_velocity_limit(self) -> DoubleDynamicsLimit:
|
1322
|
-
"""
|
1323
|
-
[rad/s]
|
1324
|
-
"""
|
1325
|
-
@property
|
1326
|
-
def state(self) -> RobotState:
|
1327
|
-
...
|
1328
|
-
@property
|
1329
|
-
def translation_acceleration_limit(self) -> DoubleDynamicsLimit:
|
1330
|
-
"""
|
1331
|
-
[m/s²]
|
1332
|
-
"""
|
1333
|
-
@property
|
1334
|
-
def translation_jerk_limit(self) -> DoubleDynamicsLimit:
|
1335
|
-
"""
|
1336
|
-
[m/s³]
|
1337
|
-
"""
|
1338
|
-
@property
|
1339
|
-
def translation_velocity_limit(self) -> DoubleDynamicsLimit:
|
1340
|
-
"""
|
1341
|
-
[m/s]
|
1342
|
-
"""
|
1343
1191
|
class RobotMode:
|
1344
1192
|
"""
|
1345
1193
|
Members:
|
@@ -1734,3 +1582,155 @@ class VectorDynamicsLimit:
|
|
1734
1582
|
@property
|
1735
1583
|
def max(self) -> numpy.ndarray[numpy.float64[7, 1]]:
|
1736
1584
|
...
|
1585
|
+
class _RobotInternal:
|
1586
|
+
control_rate: typing.ClassVar[float] = 0.001
|
1587
|
+
degrees_of_freedom: typing.ClassVar[int] = 7
|
1588
|
+
relative_dynamics_factor: RelativeDynamicsFactor | float
|
1589
|
+
@staticmethod
|
1590
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
1591
|
+
...
|
1592
|
+
def __init__(self, fci_hostname: str, relative_dynamics_factor: RelativeDynamicsFactor | float = 1.0, default_torque_threshold: float = 20.0, default_force_threshold: float = 30.0, controller_mode: ControllerMode = ..., realtime_config: RealtimeConfig = ..., kalman_q_process_var: float = 0.0001, kalman_dq_process_var: float = 0.001, kalman_ddq_process_var: float = 0.1, kalman_control_process_var: float = 1.0, kalman_q_obs_var: float = 0.01, kalman_dq_obs_var: float = 0.1, kalman_q_d_obs_var: float = 0.0001, kalman_dq_d_obs_var: float = 0.0001, kalman_ddq_d_obs_var: float = 0.0001, kalman_control_adaptation_rate: float = 0.1) -> None:
|
1593
|
+
...
|
1594
|
+
def join_motion(self, timeout: float | None = None) -> bool:
|
1595
|
+
...
|
1596
|
+
@typing.overload
|
1597
|
+
def move(self, motion: BaseCartesianPoseMotion, asynchronous: bool = False) -> None:
|
1598
|
+
...
|
1599
|
+
@typing.overload
|
1600
|
+
def move(self, motion: BaseCartesianVelocityMotion, asynchronous: bool = False) -> None:
|
1601
|
+
...
|
1602
|
+
@typing.overload
|
1603
|
+
def move(self, motion: BaseJointPositionMotion, asynchronous: bool = False) -> None:
|
1604
|
+
...
|
1605
|
+
@typing.overload
|
1606
|
+
def move(self, motion: BaseJointVelocityMotion, asynchronous: bool = False) -> None:
|
1607
|
+
...
|
1608
|
+
@typing.overload
|
1609
|
+
def move(self, motion: BaseTorqueMotion, asynchronous: bool = False) -> None:
|
1610
|
+
...
|
1611
|
+
def poll_motion(self) -> bool:
|
1612
|
+
...
|
1613
|
+
def recover_from_errors(self) -> bool:
|
1614
|
+
...
|
1615
|
+
def set_cartesian_impedance(self, K_x: typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(6)]) -> None:
|
1616
|
+
...
|
1617
|
+
@typing.overload
|
1618
|
+
def set_collision_behavior(self, torque_thresholds: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(7)] | numpy.ndarray[numpy.float64[7, 1]], force_thresholds: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(6)] | numpy.ndarray[numpy.float64[6, 1]]) -> None:
|
1619
|
+
...
|
1620
|
+
@typing.overload
|
1621
|
+
def set_collision_behavior(self, lower_torque_threshold: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(7)] | numpy.ndarray[numpy.float64[7, 1]], upper_torque_threshold: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(7)] | numpy.ndarray[numpy.float64[7, 1]], lower_force_threshold: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(6)] | numpy.ndarray[numpy.float64[6, 1]], upper_force_threshold: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(6)] | numpy.ndarray[numpy.float64[6, 1]]) -> None:
|
1622
|
+
...
|
1623
|
+
@typing.overload
|
1624
|
+
def set_collision_behavior(self, lower_torque_threshold_acceleration: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(7)] | numpy.ndarray[numpy.float64[7, 1]], upper_torque_threshold_acceleration: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(7)] | numpy.ndarray[numpy.float64[7, 1]], lower_torque_threshold_nominal: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(7)] | numpy.ndarray[numpy.float64[7, 1]], upper_torque_threshold_nominal: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(7)] | numpy.ndarray[numpy.float64[7, 1]], lower_force_threshold_acceleration: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(6)] | numpy.ndarray[numpy.float64[6, 1]], upper_force_threshold_acceleration: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(6)] | numpy.ndarray[numpy.float64[6, 1]], lower_force_threshold_nominal: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(6)] | numpy.ndarray[numpy.float64[6, 1]], upper_force_threshold_nominal: float | typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(6)] | numpy.ndarray[numpy.float64[6, 1]]) -> None:
|
1625
|
+
...
|
1626
|
+
def set_ee(self, NE_T_EE: typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(16)]) -> None:
|
1627
|
+
...
|
1628
|
+
def set_guiding_mode(self, guiding_mode: typing.Annotated[list[bool], pybind11_stubgen.typing_ext.FixedSize(6)], elbow: bool) -> None:
|
1629
|
+
...
|
1630
|
+
def set_joint_impedance(self, K_theta: typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(7)]) -> None:
|
1631
|
+
...
|
1632
|
+
def set_k(self, EE_T_K: typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(16)]) -> None:
|
1633
|
+
...
|
1634
|
+
def set_load(self, load_mass: float, F_x_Cload: typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(3)], load_inertia: typing.Annotated[list[float], pybind11_stubgen.typing_ext.FixedSize(9)]) -> None:
|
1635
|
+
...
|
1636
|
+
def stop(self) -> None:
|
1637
|
+
...
|
1638
|
+
@property
|
1639
|
+
def current_cartesian_state(self) -> CartesianState:
|
1640
|
+
...
|
1641
|
+
@property
|
1642
|
+
def current_cartesian_velocity(self) -> RobotVelocity:
|
1643
|
+
...
|
1644
|
+
@property
|
1645
|
+
def current_control_signal_type(self) -> ControlSignalType | None:
|
1646
|
+
...
|
1647
|
+
@property
|
1648
|
+
def current_joint_positions(self) -> numpy.ndarray[numpy.float64[7, 1]]:
|
1649
|
+
...
|
1650
|
+
@property
|
1651
|
+
def current_joint_state(self) -> JointState:
|
1652
|
+
...
|
1653
|
+
@property
|
1654
|
+
def current_joint_velocities(self) -> numpy.ndarray[numpy.float64[7, 1]]:
|
1655
|
+
...
|
1656
|
+
@property
|
1657
|
+
def current_pose(self) -> RobotPose:
|
1658
|
+
...
|
1659
|
+
@property
|
1660
|
+
def elbow_acceleration_limit(self) -> DoubleDynamicsLimit:
|
1661
|
+
"""
|
1662
|
+
[rad/s²]
|
1663
|
+
"""
|
1664
|
+
@property
|
1665
|
+
def elbow_jerk_limit(self) -> DoubleDynamicsLimit:
|
1666
|
+
"""
|
1667
|
+
[rad/s³]
|
1668
|
+
"""
|
1669
|
+
@property
|
1670
|
+
def elbow_velocity_limit(self) -> DoubleDynamicsLimit:
|
1671
|
+
"""
|
1672
|
+
[rad/s]
|
1673
|
+
"""
|
1674
|
+
@property
|
1675
|
+
def fci_hostname(self) -> str:
|
1676
|
+
...
|
1677
|
+
@property
|
1678
|
+
def has_errors(self) -> bool:
|
1679
|
+
...
|
1680
|
+
@property
|
1681
|
+
def is_in_control(self) -> bool:
|
1682
|
+
...
|
1683
|
+
@property
|
1684
|
+
def joint_acceleration_limit(self) -> VectorDynamicsLimit:
|
1685
|
+
"""
|
1686
|
+
[rad/s²]
|
1687
|
+
"""
|
1688
|
+
@property
|
1689
|
+
def joint_jerk_limit(self) -> VectorDynamicsLimit:
|
1690
|
+
"""
|
1691
|
+
[rad/s^3]
|
1692
|
+
"""
|
1693
|
+
@property
|
1694
|
+
def joint_velocity_limit(self) -> VectorDynamicsLimit:
|
1695
|
+
"""
|
1696
|
+
[rad/s]
|
1697
|
+
"""
|
1698
|
+
@property
|
1699
|
+
def model(self) -> Model:
|
1700
|
+
...
|
1701
|
+
@property
|
1702
|
+
def model_urdf(self) -> str:
|
1703
|
+
...
|
1704
|
+
@property
|
1705
|
+
def rotation_acceleration_limit(self) -> DoubleDynamicsLimit:
|
1706
|
+
"""
|
1707
|
+
[rad/s²]
|
1708
|
+
"""
|
1709
|
+
@property
|
1710
|
+
def rotation_jerk_limit(self) -> DoubleDynamicsLimit:
|
1711
|
+
"""
|
1712
|
+
[rad/s³]
|
1713
|
+
"""
|
1714
|
+
@property
|
1715
|
+
def rotation_velocity_limit(self) -> DoubleDynamicsLimit:
|
1716
|
+
"""
|
1717
|
+
[rad/s]
|
1718
|
+
"""
|
1719
|
+
@property
|
1720
|
+
def state(self) -> RobotState:
|
1721
|
+
...
|
1722
|
+
@property
|
1723
|
+
def translation_acceleration_limit(self) -> DoubleDynamicsLimit:
|
1724
|
+
"""
|
1725
|
+
[m/s²]
|
1726
|
+
"""
|
1727
|
+
@property
|
1728
|
+
def translation_jerk_limit(self) -> DoubleDynamicsLimit:
|
1729
|
+
"""
|
1730
|
+
[m/s³]
|
1731
|
+
"""
|
1732
|
+
@property
|
1733
|
+
def translation_velocity_limit(self) -> DoubleDynamicsLimit:
|
1734
|
+
"""
|
1735
|
+
[m/s]
|
1736
|
+
"""
|
franky/robot.py
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
from ._franky import
|
1
|
+
from ._franky import _RobotInternal
|
2
2
|
|
3
3
|
from .robot_web_session import RobotWebSession
|
4
4
|
|
5
5
|
|
6
|
-
class Robot(
|
6
|
+
class Robot(_RobotInternal):
|
7
7
|
def create_web_session(self, username: str, password: str):
|
8
8
|
return RobotWebSession(self, username, password)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: franky-control
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.2
|
4
4
|
Summary: High-level control library for Franka robots.
|
5
5
|
Home-page: https://github.com/TimSchneider42/franky
|
6
6
|
Author: Tim Schneider
|
@@ -46,16 +46,16 @@ Requires-Dist: numpy
|
|
46
46
|
|
47
47
|
Franky is a high-level control library for Franka robots offering Python and C++ support.
|
48
48
|
By providing a high-level control interface, Franky eliminates the need for strict real-time programming at 1 kHz,
|
49
|
-
making control from non-real
|
49
|
+
making control from non-real-time environments, such as Python programs, feasible.
|
50
50
|
Instead of relying on low-level control commands, Franky expects high-level position or velocity targets and
|
51
|
-
uses [Ruckig](https://github.com/pantor/ruckig) to plan time-optimal trajectories in real
|
51
|
+
uses [Ruckig](https://github.com/pantor/ruckig) to plan time-optimal trajectories in real-time.
|
52
52
|
|
53
53
|
Although Python does not provide real-time guarantees, Franky strives to maintain as much real-time control as possible.
|
54
54
|
Motions can be preempted at any moment, prompting Franky to re-plan trajectories on the fly.
|
55
|
-
To handle unforeseen situations—such as unexpected contact with the environment—Franky includes a reaction system that
|
56
|
-
allows to
|
57
|
-
Furthermore, most non-real
|
58
|
-
Gripper control
|
55
|
+
To handle unforeseen situations—such as unexpected contact with the environment — Franky includes a reaction system that
|
56
|
+
allows to update motion commands dynamically.
|
57
|
+
Furthermore, most non-real-time functionality of [libfranka](https://frankaemika.github.io/docs/libfranka.html), such as
|
58
|
+
Gripper control is made directly available in Python.
|
59
59
|
|
60
60
|
Check out the [tutorial](#-tutorial) and the [examples](https://github.com/TimSchneider42/franky/tree/master/examples)
|
61
61
|
for an introduction.
|
@@ -67,41 +67,67 @@ at [https://timschneider42.github.io/franky/](https://timschneider42.github.io/f
|
|
67
67
|
- **Control your Franka robot directly from Python in just a few lines!**
|
68
68
|
No more endless hours setting up ROS, juggling packages, or untangling dependencies. Just `pip install` — no ROS at all.
|
69
69
|
|
70
|
-
- **[Four control modes](
|
71
|
-
- [Cartesian position](#cartesian-position-control)
|
72
|
-
- [Cartesian velocity](#cartesian-velocity-control)
|
73
|
-
- [Joint position](#joint-position-control)
|
74
|
-
- [Joint velocity](#joint-velocity-control)
|
75
|
-
|
70
|
+
- **[Four control modes](#motion-types)**: [Cartesian position](#cartesian-position-control), [Cartesian velocity](#cartesian-velocity-control), [Joint position](#joint-position-control), [Joint velocity](#joint-velocity-control)
|
76
71
|
Franky uses [Ruckig](https://github.com/pantor/ruckig) to generate smooth, time-optimal trajectories while respecting velocity, acceleration, and jerk limits.
|
77
72
|
|
78
|
-
- **[Real-time control from Python and C++](
|
79
|
-
Need to change the target while the robot’s moving? No problem. Franky re-plans trajectories on the fly
|
73
|
+
- **[Real-time control from Python and C++](#real-time-motions)**
|
74
|
+
Need to change the target while the robot’s moving? No problem. Franky re-plans trajectories on the fly so that you can preempt motions anytime.
|
80
75
|
|
81
|
-
- **[Reactive behavior](#-real-time-reactions)
|
82
|
-
Robots don’t always go according to plan. Franky lets you define reactions to unexpected events—like contact with the environment — so you can change course in real
|
76
|
+
- **[Reactive behavior](#-real-time-reactions)**
|
77
|
+
Robots don’t always go according to plan. Franky lets you define reactions to unexpected events—like contact with the environment — so you can change course in real-time.
|
83
78
|
|
84
|
-
- **[Motion and reaction callbacks](#motion-callbacks)
|
79
|
+
- **[Motion and reaction callbacks](#motion-callbacks)**
|
85
80
|
Want to monitor what’s happening under the hood? Add callbacks to your motions and reactions. They won’t block the control thread and are super handy for debugging or logging.
|
86
81
|
|
87
|
-
- **Things are moving too fast? [Tune the robot's dynamics to your needs](#-robot)
|
82
|
+
- **Things are moving too fast? [Tune the robot's dynamics to your needs](#-robot)**
|
88
83
|
Adjust max velocity, acceleration, and jerk to match your setup or task. Fine control for smooth, safe operation.
|
89
84
|
|
90
|
-
- **Full Python access to the libfranka API
|
91
|
-
Want to tweak impedance, read the robot state, set force thresholds, or mess with the Jacobian? Go for it. If libfranka supports it, chances are Franky does too.
|
85
|
+
- **Full Python access to the libfranka API**
|
86
|
+
Want to tweak impedance, read the robot state, set force thresholds, or mess with the Jacobian? Go for it. If libfranka supports it, chances are Franky does, too.
|
92
87
|
|
88
|
+
## 📖 Python Quickstart Guide
|
93
89
|
|
94
|
-
|
90
|
+
Real-time kernel already installed and real-time permissions granted? Just install Franky via
|
95
91
|
|
96
|
-
|
92
|
+
```bash
|
93
|
+
pip install franky-control
|
94
|
+
```
|
95
|
+
|
96
|
+
otherwise, follow the [setup instructions](#setup) first.
|
97
|
+
|
98
|
+
Now we are already ready to go!
|
99
|
+
Unlock the brakes in the web interface, activate FCI, and start coding:
|
100
|
+
```python
|
101
|
+
from franky import *
|
102
|
+
|
103
|
+
robot = Robot("172.16.0.2") # Replace this with your robot's IP
|
104
|
+
|
105
|
+
# Let's start slow (this lets the robot use a maximum of 5% of its velocity, acceleration, and jerk limits)
|
106
|
+
robot.relative_dynamics_factor = 0.05
|
107
|
+
|
108
|
+
# Move the robot 20cm along the relative X-axis of its end-effector
|
109
|
+
motion = CartesianMotion(Affine([0.2, 0.0, 0.0]), ReferenceType.Relative)
|
110
|
+
robot.move(motion)
|
111
|
+
```
|
112
|
+
|
113
|
+
If you are seeing server version mismatch errors, such as
|
114
|
+
```
|
115
|
+
franky.IncompatibleVersionException: libfranka: Incompatible library version (server version: 5, library version: 9)
|
116
|
+
```
|
117
|
+
then your Franka robot is either not on the most recent firmware version or you are using the older Franka Panda model.
|
118
|
+
In any case, it's no big deal; just check [here](https://frankaemika.github.io/docs/compatibility.html) which libfranka version you need and follow our [instructions](installing-frankly) to install the appropriate Franky wheels.
|
119
|
+
|
120
|
+
## <a id="setup" /> ⚙️ Setup
|
121
|
+
|
122
|
+
To install Franky, you have to follow three steps:
|
97
123
|
|
98
124
|
1. Ensure that you are using a realtime kernel
|
99
125
|
2. Ensure that the executing user has permission to run real-time applications
|
100
|
-
3. Install
|
126
|
+
3. Install Franky via pip or build it from source
|
101
127
|
|
102
128
|
### Installing a real-time kernel
|
103
129
|
|
104
|
-
In order for
|
130
|
+
In order for Franky to function properly, it requires the underlying OS to use a realtime kernel.
|
105
131
|
Otherwise, you might see `communication_constrains_violation` errors.
|
106
132
|
|
107
133
|
To check whether your system is currently using a real-time kernel, type `uname -a`.
|
@@ -121,7 +147,7 @@ or, if you are using Ubuntu, it can be [enabled through Ubuntu Pro](https://ubun
|
|
121
147
|
|
122
148
|
### Allowing the executing user to run real-time applications
|
123
149
|
|
124
|
-
First, create a group `realtime` and add your user (or whoever is running
|
150
|
+
First, create a group `realtime` and add your user (or whoever is running Franky) to this group:
|
125
151
|
|
126
152
|
```bash
|
127
153
|
sudo addgroup realtime
|
@@ -150,9 +176,9 @@ $ groups
|
|
150
176
|
|
151
177
|
If realtime is not listed in your groups, try rebooting.
|
152
178
|
|
153
|
-
### Installing
|
179
|
+
### Installing Franky
|
154
180
|
|
155
|
-
To start using
|
181
|
+
To start using Franky with Python and libfranka *0.15.0*, just install it via
|
156
182
|
|
157
183
|
```bash
|
158
184
|
pip install franky-control
|
@@ -173,10 +199,10 @@ pip install --no-index --find-links=./dist franky-control
|
|
173
199
|
Franky is based on [libfranka](https://github.com/frankaemika/libfranka), [Eigen](https://eigen.tuxfamily.org) for
|
174
200
|
transformation calculations and [pybind11](https://github.com/pybind/pybind11) for the Python bindings.
|
175
201
|
As the Franka is sensitive to acceleration discontinuities, it requires jerk-constrained motion generation, for which
|
176
|
-
|
202
|
+
Franky uses the [Ruckig](https://ruckig.com) community version for Online Trajectory Generation (OTG).
|
177
203
|
|
178
204
|
After installing the dependencies (the exact versions can be found [here](#-development)), you can build and install
|
179
|
-
|
205
|
+
Franky via
|
180
206
|
|
181
207
|
```bash
|
182
208
|
git clone --recurse-submodules git@github.com:timschneider42/franky.git
|
@@ -188,10 +214,10 @@ make
|
|
188
214
|
make install
|
189
215
|
```
|
190
216
|
|
191
|
-
To use
|
217
|
+
To use Franky, you can also include it as a subproject in your parent CMake via `add_subdirectory(franky)` and then
|
192
218
|
`target_link_libraries(<target> franky)`.
|
193
219
|
|
194
|
-
If you need only the Python module, you can install
|
220
|
+
If you need only the Python module, you can install Franky via
|
195
221
|
|
196
222
|
```bash
|
197
223
|
pip install .
|
@@ -202,11 +228,11 @@ Make sure that the built library `_franky.cpython-3**-****-linux-gnu.so` is in t
|
|
202
228
|
|
203
229
|
#### Using Docker
|
204
230
|
|
205
|
-
To use
|
231
|
+
To use Franky within Docker we provide a [Dockerfile](docker/run/Dockerfile) and
|
206
232
|
accompanying [docker-compose](docker-compose.yml) file.
|
207
233
|
|
208
234
|
```bash
|
209
|
-
git clone https://github.com/timschneider42/franky.git
|
235
|
+
git clone --recurse-submodules https://github.com/timschneider42/franky.git
|
210
236
|
cd franky/
|
211
237
|
docker compose build franky-run
|
212
238
|
```
|
@@ -226,9 +252,9 @@ docker compose run franky-run bash
|
|
226
252
|
The container requires access to the host machines network *and* elevated user rights to allow the docker user to set RT
|
227
253
|
capabilities of the processes run from within it.
|
228
254
|
|
229
|
-
#### Building
|
255
|
+
#### Building Franky with Docker
|
230
256
|
|
231
|
-
For building
|
257
|
+
For building Franky and its wheels, we provide another Docker container that can also be launched using docker-compose:
|
232
258
|
|
233
259
|
```bash
|
234
260
|
docker compose build franky-build
|
@@ -337,7 +363,7 @@ print(robot.joint_jerk_limit.max)
|
|
337
363
|
|
338
364
|
#### Robot State
|
339
365
|
|
340
|
-
The robot state can be retrieved by
|
366
|
+
The robot state can be retrieved by accessing the following properties:
|
341
367
|
|
342
368
|
* `state`: Object of type `franky.RobotState`, which extends the
|
343
369
|
libfranka [franka::RobotState](https://frankaemika.github.io/libfranka/structfranka_1_1RobotState.html) structure by
|
@@ -363,7 +389,7 @@ state = robot.state
|
|
363
389
|
cartesian_state = robot.current_cartesian_state
|
364
390
|
robot_pose = cartesian_state.pose # Contains end-effector pose and elbow position
|
365
391
|
ee_pose = robot_pose.end_effector_pose
|
366
|
-
elbow_pos = robot_pose.
|
392
|
+
elbow_pos = robot_pose.elbow_state
|
367
393
|
robot_velocity = cartesian_state.velocity # Contains end-effector twist and elbow velocity
|
368
394
|
ee_twist = robot_velocity.end_effector_twist
|
369
395
|
elbow_vel = robot_velocity.elbow_velocity
|
@@ -390,7 +416,7 @@ For a full list of state-related features, check
|
|
390
416
|
the [Robot](https://timschneider42.github.io/franky/classfranky_1_1_robot.html)
|
391
417
|
and [Model](https://timschneider42.github.io/franky/classfranky_1_1_model.html) sections of the documentation.
|
392
418
|
|
393
|
-
### 🏃♂️ Motion Types
|
419
|
+
### <a id="motion-types" /> 🏃♂️ Motion Types
|
394
420
|
|
395
421
|
Franky currently supports four different impedance control modes: **joint position control**, **joint velocity control
|
396
422
|
**, **cartesian position control**, and **cartesian velocity control**.
|
@@ -688,7 +714,7 @@ motion
|
|
688
714
|
robot.move(motion)
|
689
715
|
```
|
690
716
|
|
691
|
-
### ⏱️ Real-Time Motions
|
717
|
+
### <a id="real-time-motions" /> ⏱️ Real-Time Motions
|
692
718
|
|
693
719
|
By setting the `asynchronous` parameter of `Robot.move` to `True`, the function does not block until the motion
|
694
720
|
finishes.
|
@@ -806,6 +832,7 @@ Franky is currently tested against following versions
|
|
806
832
|
- libfranka 0.7.1, 0.8.0, 0.9.2, 0.10.0, 0.11.0, 0.12.1, 0.13.3, 0.14.2, 0.15.0
|
807
833
|
- Eigen 3.4.0
|
808
834
|
- Pybind11 2.13.6
|
835
|
+
- POCO 1.12.5p2
|
809
836
|
- Pinocchio 3.4.0
|
810
837
|
- Python 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13
|
811
838
|
- Catch2 2.13.8 (for testing only)
|
@@ -813,7 +840,7 @@ Franky is currently tested against following versions
|
|
813
840
|
## 📜 License
|
814
841
|
|
815
842
|
For non-commercial applications, this software is licensed under the LGPL v3.0.
|
816
|
-
If you want to use
|
843
|
+
If you want to use Franky within commercial applications or under a different license, please contact us for individual
|
817
844
|
agreements.
|
818
845
|
|
819
846
|
## 🔍 Differences to frankx
|
@@ -0,0 +1,26 @@
|
|
1
|
+
franky/__init__.py,sha256=lmRG8cc4eX-0gZgCkxxVCOrmuUEGJsppWl7DDURib-Y,293
|
2
|
+
franky/_franky.cpython-38-x86_64-linux-gnu.so,sha256=giR-PnoKEbVXiTR_fGw-hRsy5aubJ7iIWjIl04C-uzk,3040945
|
3
|
+
franky/_franky.pyi,sha256=odBnBaM2qGN4mUa8WvFN5SL9aszPgDTsZj5Jb9UkFHk,60047
|
4
|
+
franky/motion.py,sha256=EZmZPvu2r4YBhcokV1PFh8s8NmiwOUERvct3Zz629C8,334
|
5
|
+
franky/reaction.py,sha256=gDD7kVc_7Et2NwMmCB4Hcd12aK0eygJVqXzZ9Dzw0_M,1488
|
6
|
+
franky/robot.py,sha256=NaTNh4PaJshbz44eibvLCMt6O_Ak7TRVjhUR6AGay9A,236
|
7
|
+
franky/robot_web_session.py,sha256=zOTAqDF4PbZLqJFr3RcuBwfWRSEMiw0Eag1stk3GWKE,7622
|
8
|
+
franky_control.libs/libPocoFoundation-44c2a91d.so.95,sha256=kMB_IJ_gYGE1jprdF_RIVEbhg9gQH3IimwBUksadJNc,3265609
|
9
|
+
franky_control.libs/libPocoNet-2f9ce4bf.so.95,sha256=wwgasubJUNFpW5brGQoUiyCEx6NgPQSG2Vjgk66OQ0s,2482737
|
10
|
+
franky_control.libs/libboost_filesystem-42b111b5.so.1.75.0,sha256=8tanNbQ7I455iTdjcNXuKf8snHpXq6N7SVvnX5H-_bY,139961
|
11
|
+
franky_control.libs/libboost_serialization-0b785d4d.so.1.75.0,sha256=sOHF1ncSl_Hg4oBqbyEuQCYAE9IaREqfm-dspP-O5mw,319177
|
12
|
+
franky_control.libs/libconsole_bridge-acce180d.so.1.0,sha256=-iSKX9xNyLCSSrducf7rDx6hXzdU5v7xQqZDulppIP8,22769
|
13
|
+
franky_control.libs/libfmt-677b7a5c.so.8.1.1,sha256=rN3uzEn_limS_u6DV-BxdTEbs2GrhlicD_OjyAlKYpA,140649
|
14
|
+
franky_control.libs/libfranka-976dfd01.so.0.15.0,sha256=q6EJaLfNrYHNcwJvov9s2sM18ahCZ2LgKZwZTbvDbok,973497
|
15
|
+
franky_control.libs/libpinocchio_default-b05a4796.so.3.1.0,sha256=NFyO0kOaOcpnFYVAehcgJj5spee4weJ_PqPZ5uUqpEg,9668545
|
16
|
+
franky_control.libs/libpinocchio_parsers-74bdc3cc.so.3.1.0,sha256=4yyz3Gw4SoyFEtvfx546_UMpH3GN9SjVWsWH28eCVSs,707441
|
17
|
+
franky_control.libs/libtinyxml-69e5f0dd.so.0.2.6.2,sha256=V45jOzaljaUrtOAYBS20QBFHn0qPFHTEcWxdcOBoJNA,118121
|
18
|
+
franky_control.libs/liburdfdom_model-9ec0392f.so.1.0,sha256=Kwlq8DuENLdEX5URKcwUC06sl9rxUYoRjGx3EI-uRiY,146081
|
19
|
+
franky_control.libs/liburdfdom_model_state-01125232.so.1.0,sha256=LNMEG27nv_6BYvelpjXjr0YsBl-6IsGQfg3uG0DvTQQ,20857
|
20
|
+
franky_control.libs/liburdfdom_sensor-011819fa.so.1.0,sha256=LzFH_sfeyWcV042TmgSEXTQL1c0teyYg3veA8sTn_EM,20857
|
21
|
+
franky_control.libs/liburdfdom_world-4d53bc81.so.1.0,sha256=IziPhPYdFfZTgKDOnUMGLYSCsZRxYfC1rEKWjvzrpb4,146081
|
22
|
+
franky_control-1.0.2.dist-info/LICENSE,sha256=6or154nLLU6bELzjh0mCreFjt0m2v72zLi3yHE0QbeE,7650
|
23
|
+
franky_control-1.0.2.dist-info/METADATA,sha256=8w7ITX99ftSyZ4TTdgcZ8fxgYC0_UsNfzcbgatWPK-4,34881
|
24
|
+
franky_control-1.0.2.dist-info/WHEEL,sha256=L3HW8fVbXzdi0Qbq6Dl6IkkMSshhqlUpffoAzAKCWvI,111
|
25
|
+
franky_control-1.0.2.dist-info/top_level.txt,sha256=LdDKRvHTODs6ll6Ow5b-gmWqt4NJffHxL83MRTCv_Ag,22
|
26
|
+
franky_control-1.0.2.dist-info/RECORD,,
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,28 +0,0 @@
|
|
1
|
-
franky/__init__.py,sha256=lmRG8cc4eX-0gZgCkxxVCOrmuUEGJsppWl7DDURib-Y,293
|
2
|
-
franky/_franky.cpython-38-x86_64-linux-gnu.so,sha256=EiVyH3s1K0kAOy3AI9MlrCSR9fjv_guW4oudx7v-svQ,3058753
|
3
|
-
franky/_franky.pyi,sha256=jp1xC8uvF4A6GBC-8B5JlWfp-N7mdm3OYsCYFWRTnek,60055
|
4
|
-
franky/motion.py,sha256=EZmZPvu2r4YBhcokV1PFh8s8NmiwOUERvct3Zz629C8,334
|
5
|
-
franky/reaction.py,sha256=gDD7kVc_7Et2NwMmCB4Hcd12aK0eygJVqXzZ9Dzw0_M,1488
|
6
|
-
franky/robot.py,sha256=GCWQOnhQIv3DhOo5FsHHgsFeNIZX8IQgeJ09VV84DLE,234
|
7
|
-
franky/robot_web_session.py,sha256=zOTAqDF4PbZLqJFr3RcuBwfWRSEMiw0Eag1stk3GWKE,7622
|
8
|
-
franky_control.libs/libPocoFoundationd-74964157.so.92,sha256=BHLfMLcmdIPPcSI8dAkqtFlclnh_y2BtbFNKyF-p3EA,2420809
|
9
|
-
franky_control.libs/libPocoNetd-5dd54f10.so.92,sha256=OFNDrRm1dpHiAzz5VZppU2O9TU0lkQj_GOMiPKQ0UWo,1907953
|
10
|
-
franky_control.libs/libboost_atomic-64eba867.so.1.78.0,sha256=CVPFDX4hj4v1t5SuvprkQP6OLyeNY8JwZcxpAVi0kzI,18161
|
11
|
-
franky_control.libs/libboost_filesystem-63963750.so.1.78.0,sha256=PlaCrBtuzsgfIQlZisEPVw3DDwBDz1jur1Yk6swfEok,167769
|
12
|
-
franky_control.libs/libboost_serialization-75ebc722.so.1.78.0,sha256=2287N4aM0rCR-iuEDyvMjrx5hefLHyhKBLSCCn3ofRs,319177
|
13
|
-
franky_control.libs/libconsole_bridge-acce180d.so.1.0,sha256=-iSKX9xNyLCSSrducf7rDx6hXzdU5v7xQqZDulppIP8,22769
|
14
|
-
franky_control.libs/libfmt-677b7a5c.so.8.1.1,sha256=rN3uzEn_limS_u6DV-BxdTEbs2GrhlicD_OjyAlKYpA,140649
|
15
|
-
franky_control.libs/libfranka-fb54b5c1.so.0.15.0,sha256=eiTTbOOF0NaYmy96v0i0y9e5zQqJ5nW9j2_z1-rd3uI,973625
|
16
|
-
franky_control.libs/libpcre2-8-b77f698a.so.0.11.0,sha256=hQ2wPgk-6gm4ZYWGy6wPDCt46HtNTpYIRBUyH9Fq-9U,642033
|
17
|
-
franky_control.libs/libpinocchio_default-eb97a09e.so.3.4.0,sha256=D9EyoBnWWkQU3tfT44JbRHn0kFg0eK4zV4wYkvrvh6c,6489713
|
18
|
-
franky_control.libs/libpinocchio_parsers-9f152785.so.3.4.0,sha256=UENErOb6on3vRPeP-NNrV-z1CvNlYBLBtMoxBYQt_DM,593433
|
19
|
-
franky_control.libs/libtinyxml-69e5f0dd.so.0.2.6.2,sha256=V45jOzaljaUrtOAYBS20QBFHn0qPFHTEcWxdcOBoJNA,118121
|
20
|
-
franky_control.libs/liburdfdom_model-9ec0392f.so.1.0,sha256=Kwlq8DuENLdEX5URKcwUC06sl9rxUYoRjGx3EI-uRiY,146081
|
21
|
-
franky_control.libs/liburdfdom_model_state-01125232.so.1.0,sha256=LNMEG27nv_6BYvelpjXjr0YsBl-6IsGQfg3uG0DvTQQ,20857
|
22
|
-
franky_control.libs/liburdfdom_sensor-011819fa.so.1.0,sha256=LzFH_sfeyWcV042TmgSEXTQL1c0teyYg3veA8sTn_EM,20857
|
23
|
-
franky_control.libs/liburdfdom_world-4d53bc81.so.1.0,sha256=IziPhPYdFfZTgKDOnUMGLYSCsZRxYfC1rEKWjvzrpb4,146081
|
24
|
-
franky_control-1.0.0.dist-info/LICENSE,sha256=6or154nLLU6bELzjh0mCreFjt0m2v72zLi3yHE0QbeE,7650
|
25
|
-
franky_control-1.0.0.dist-info/METADATA,sha256=E-4lCrLH9IIWD7wmlAiL3761hON4pOTKJf2ciKsLWS4,33516
|
26
|
-
franky_control-1.0.0.dist-info/WHEEL,sha256=L3HW8fVbXzdi0Qbq6Dl6IkkMSshhqlUpffoAzAKCWvI,111
|
27
|
-
franky_control-1.0.0.dist-info/top_level.txt,sha256=LdDKRvHTODs6ll6Ow5b-gmWqt4NJffHxL83MRTCv_Ag,22
|
28
|
-
franky_control-1.0.0.dist-info/RECORD,,
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
File without changes
|
File without changes
|
File without changes
|