Tools Application Service
controller.application.services.tools_application_service
工具应用服务
ToolsApplicationService
ToolsApplicationService(kinematic_service: KinematicDomainService, robot_state_service: RobotStateDomainService)
Bases: QObject
工具应用服务。
职责: 1. 接收 6 个关节角度 2. 调用 KinematicDomainService 计算正运动学 3. 格式化结果并发射信号 4. 获取当前机械臂关节角度 5. 计算逆运动学
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
calculation_result_signal |
pyqtSignal
|
发送正运动学计算结果。 |
current_angles_signal |
pyqtSignal
|
发送当前关节角度。 |
inverse_result_signal |
pyqtSignal
|
发送逆运动学计算结果。 |
初始化工具应用服务。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
kinematic_service
|
KinematicDomainService
|
运动学服务。 |
必需 |
robot_state_service
|
RobotStateDomainService
|
机械臂状态服务。 |
必需 |
源代码位于: src/controller/controller/application/services/tools_application_service.py
31 32 33 34 35 36 37 38 39 40 | |
calculate_forward_kinematics
calculate_forward_kinematics(joint_angles: List[float])
计算正运动学。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
joint_angles
|
List[float]
|
6个关节角度(弧度)。 |
必需 |
Emits
calculation_result_signal 包含: { "quaternion": [x, y, z, w], "position": [x, y, z], "rotation_matrix": [[...], [...], [...]] # 3x3 } 或错误信息: { "error": "错误信息" }
源代码位于: src/controller/controller/application/services/tools_application_service.py
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | |
get_current_joint_angles
get_current_joint_angles()
获取当前机械臂关节角度。
Emits
current_angles_signal: List[float] - 6个关节角度(弧度)。
源代码位于: src/controller/controller/application/services/tools_application_service.py
85 86 87 88 89 90 91 92 93 94 95 96 97 98 | |
calculate_inverse_kinematics
calculate_inverse_kinematics(rotation_matrix: List[List[float]], position: List[float], initial_theta: List[float] = None)
计算逆运动学。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
rotation_matrix
|
List[List[float]]
|
3x3 旋转矩阵。 |
必需 |
position
|
List[float]
|
[x, y, z] 位置(米)。 |
必需 |
initial_theta
|
List[float]
|
初始关节角度(用于选择最接近的解). Defaults to None. |
None
|
Emits
inverse_result_signal 包含: { "joint_angles": [θ1, θ2, θ3, θ4, θ5, θ6], # 弧度 "joint_angles_deg": [θ1, θ2, θ3, θ4, θ5, θ6] # 度 } 或错误信息: { "error": "错误信息" }
源代码位于: src/controller/controller/application/services/tools_application_service.py
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | |