crisp-python 3.0.0__tar.gz → 3.1.0__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.
Files changed (65) hide show
  1. {crisp_python-3.0.0/crisp_python.egg-info → crisp_python-3.1.0}/PKG-INFO +1 -1
  2. crisp_python-3.1.0/crisp_py/config/robots/panda.yaml +1 -0
  3. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/robot/robot_config.py +38 -1
  4. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/utils/geometry.py +8 -2
  5. {crisp_python-3.0.0 → crisp_python-3.1.0/crisp_python.egg-info}/PKG-INFO +1 -1
  6. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_python.egg-info/SOURCES.txt +1 -0
  7. {crisp_python-3.0.0 → crisp_python-3.1.0}/pyproject.toml +1 -1
  8. {crisp_python-3.0.0 → crisp_python-3.1.0}/LICENSE.md +0 -0
  9. {crisp_python-3.0.0 → crisp_python-3.1.0}/MANIFEST.in +0 -0
  10. {crisp_python-3.0.0 → crisp_python-3.1.0}/README.md +0 -0
  11. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/__init__.py +0 -0
  12. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/camera/__init__.py +0 -0
  13. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/camera/camera.py +0 -0
  14. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/camera/camera_config.py +0 -0
  15. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/__init__.py +0 -0
  16. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/cameras/right_wrist_camera.yaml +0 -0
  17. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/cameras/third_person_camera.yaml +0 -0
  18. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/cameras/wrist_camera.yaml +0 -0
  19. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/control/clipped_cartesian_impedance.yaml +0 -0
  20. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/control/default_cartesian_impedance.yaml +0 -0
  21. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/control/default_operational_space_controller.yaml +0 -0
  22. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/control/gravity_compensation.yaml +0 -0
  23. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/control/gravity_compensation_on_plane.yaml +0 -0
  24. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/control/joint_control.yaml +0 -0
  25. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/control/joint_velocity_control.yaml +0 -0
  26. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/control/no_friction_cartesian_impedance.yaml +0 -0
  27. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/grippers/aloha-gripper.yaml +0 -0
  28. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/grippers/gripper_franka.yaml +0 -0
  29. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/grippers/gripper_left.yaml +0 -0
  30. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/grippers/gripper_left_config.yaml +0 -0
  31. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/grippers/gripper_right.yaml +0 -0
  32. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/grippers/gripper_right_config.yaml +0 -0
  33. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/grippers/gripper_uncalibrated.yaml +0 -0
  34. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/grippers/gripper_with_trigger.yaml +0 -0
  35. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/grippers/trigger_left.yaml +0 -0
  36. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/path.py +0 -0
  37. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/robots/fr3.yaml +0 -0
  38. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/robots/fr3_left.yaml +0 -0
  39. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/robots/fr3_right.yaml +0 -0
  40. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/sensors/anyskin_sensor.yaml +0 -0
  41. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/sensors/force_torque_sensor.yaml +0 -0
  42. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/config/sensors/mock_force_torque_sensor.yaml +0 -0
  43. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/control/__init__.py +0 -0
  44. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/control/controller_switcher.py +0 -0
  45. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/control/joint_trajectory_controller_client.py +0 -0
  46. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/control/parameters_client.py +0 -0
  47. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/gripper/__init__.py +0 -0
  48. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/gripper/gripper.py +0 -0
  49. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/gripper/gripper_config.py +0 -0
  50. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/robot/__init__.py +0 -0
  51. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/robot/robot.py +0 -0
  52. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/sensors/__init__.py +0 -0
  53. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/sensors/float32_array_sensor.py +0 -0
  54. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/sensors/force_torque_sensor.py +0 -0
  55. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/sensors/sensor.py +0 -0
  56. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/sensors/sensor_config.py +0 -0
  57. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/utils/__init__.py +0 -0
  58. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/utils/callback_monitor.py +0 -0
  59. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/utils/diagnostics_viewer.py +0 -0
  60. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/utils/sliding_buffer.py +0 -0
  61. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_py/utils/tf_pose.py +0 -0
  62. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_python.egg-info/dependency_links.txt +0 -0
  63. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_python.egg-info/requires.txt +0 -0
  64. {crisp_python-3.0.0 → crisp_python-3.1.0}/crisp_python.egg-info/top_level.txt +0 -0
  65. {crisp_python-3.0.0 → crisp_python-3.1.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crisp-python
3
- Version: 3.0.0
3
+ Version: 3.1.0
4
4
  Summary: Simple python interface to control robots that use crisp_controllers and other ROS2 components.
5
5
  Project-URL: Homepage, https://utiasDSL.github.io/crisp_controllers/
6
6
  Requires-Python: >=3.11
@@ -0,0 +1 @@
1
+ robot_type: panda
@@ -125,6 +125,41 @@ class FrankaConfig(RobotConfig):
125
125
  # target_frame: str = "fr3_link8"
126
126
 
127
127
 
128
+ @dataclass
129
+ class PandaConfig(RobotConfig):
130
+ """Configuration specific to Franka Emika Panda robots.
131
+
132
+ Provides default values for frame names, joint names, and home configuration
133
+ specifically for Franka Emika Panda robots.
134
+ """
135
+
136
+ joint_names: list = field(
137
+ default_factory=lambda: [
138
+ "panda_joint1",
139
+ "panda_joint2",
140
+ "panda_joint3",
141
+ "panda_joint4",
142
+ "panda_joint5",
143
+ "panda_joint6",
144
+ "panda_joint7",
145
+ ]
146
+ )
147
+ home_config: list = field(
148
+ default_factory=lambda: [
149
+ 0,
150
+ -np.pi / 4,
151
+ 0,
152
+ -3 * np.pi / 4,
153
+ 0,
154
+ np.pi / 2,
155
+ np.pi / 4,
156
+ ]
157
+ )
158
+ base_frame: str = "base"
159
+ target_frame: str = "panda_hand_tcp"
160
+ # target_frame: str = "panda_link8"
161
+
162
+
128
163
  @dataclass
129
164
  class KinovaConfig(RobotConfig):
130
165
  """Configuration specific to Kinova robots.
@@ -240,6 +275,8 @@ def make_robot_config(robot_type: str, **kwargs) -> RobotConfig: # noqa: ANN003
240
275
 
241
276
  if robot_type == "franka":
242
277
  return FrankaConfig(**kwargs)
278
+ elif robot_type == "panda":
279
+ return PandaConfig(**kwargs)
243
280
  elif robot_type == "kinova":
244
281
  return KinovaConfig(**kwargs)
245
282
  elif robot_type == "iiwa":
@@ -248,5 +285,5 @@ def make_robot_config(robot_type: str, **kwargs) -> RobotConfig: # noqa: ANN003
248
285
  return SO101Config(**kwargs)
249
286
  else:
250
287
  raise ValueError(
251
- f"Unsupported robot type: {robot_type}. Supported types: franka, kinova, iiwa, so101"
288
+ f"Unsupported robot type: {robot_type}. Supported types: franka, panda, kinova, iiwa, so101"
252
289
  )
@@ -51,7 +51,7 @@ class Pose:
51
51
  def from_ros_msg(cls, msg: PoseStamped) -> "Pose":
52
52
  """Create Pose from ROS PoseStamped message."""
53
53
  position = np.array([msg.pose.position.x, msg.pose.position.y, msg.pose.position.z])
54
- orientation = Rotation.from_quat(
54
+ quat = np.array(
55
55
  [
56
56
  msg.pose.orientation.x,
57
57
  msg.pose.orientation.y,
@@ -59,6 +59,9 @@ class Pose:
59
59
  msg.pose.orientation.w,
60
60
  ]
61
61
  )
62
+ quat_x_sign = np.sign(quat[0]) if quat[0] != 0 else 1.0
63
+ quat *= quat_x_sign # Ensure a consistent quaternion sign
64
+ orientation = Rotation.from_quat(quat)
62
65
  return cls(position, orientation)
63
66
 
64
67
  @classmethod
@@ -67,7 +70,7 @@ class Pose:
67
70
  position = np.array(
68
71
  [msg.transform.translation.x, msg.transform.translation.y, msg.transform.translation.z]
69
72
  )
70
- orientation = Rotation.from_quat(
73
+ quat = np.array(
71
74
  [
72
75
  msg.transform.rotation.x,
73
76
  msg.transform.rotation.y,
@@ -75,6 +78,9 @@ class Pose:
75
78
  msg.transform.rotation.w,
76
79
  ]
77
80
  )
81
+ quat_x_sign = np.sign(quat[0]) if quat[0] != 0 else 1.0
82
+ quat *= quat_x_sign # Ensure a consistent quaternion sign
83
+ orientation = Rotation.from_quat(quat)
78
84
  return cls(position, orientation)
79
85
 
80
86
  def to_ros_msg(self, frame_id: str, stamp: TimeMsg) -> PoseStamped:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crisp-python
3
- Version: 3.0.0
3
+ Version: 3.1.0
4
4
  Summary: Simple python interface to control robots that use crisp_controllers and other ROS2 components.
5
5
  Project-URL: Homepage, https://utiasDSL.github.io/crisp_controllers/
6
6
  Requires-Python: >=3.11
@@ -31,6 +31,7 @@ crisp_py/config/grippers/trigger_left.yaml
31
31
  crisp_py/config/robots/fr3.yaml
32
32
  crisp_py/config/robots/fr3_left.yaml
33
33
  crisp_py/config/robots/fr3_right.yaml
34
+ crisp_py/config/robots/panda.yaml
34
35
  crisp_py/config/sensors/anyskin_sensor.yaml
35
36
  crisp_py/config/sensors/force_torque_sensor.yaml
36
37
  crisp_py/config/sensors/mock_force_torque_sensor.yaml
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "crisp-python"
3
- version = "3.0.0"
3
+ version = "3.1.0"
4
4
  description = "Simple python interface to control robots that use crisp_controllers and other ROS2 components."
5
5
  readme = "README.md"
6
6
  license-files = ["LICENSE.md"]
File without changes
File without changes
File without changes
File without changes