Dynamics ViewModel
controller.presentation.view_models.dynamics_view_model
动力学视图模型 - Presentation层 订阅 RobotStateDomainService,实现力矩补偿和示教记录
DynamicsViewModel
DynamicsViewModel(command_hub_service: CommandHubService, robot_state_service: RobotStateDomainService, dynamic_service: DynamicDomainService, teach_record_service: TeachRecordDomainService, record_repository: RecordRepository, parent: Optional[object] = None)
Bases: BaseViewModel
动力学视图模型。
订阅 RobotStateDomainService,实现力矩补偿和示教记录。
职责: 1. 处理示教模式切换 2. 订阅力矩补偿请求(数据驱动) 3. 计算并发送力矩补偿 4. 管理示教记录的录制、保存、播放
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
recording_state_changed |
pyqtSignal
|
记录状态变化信号。 |
record_list_updated |
pyqtSignal
|
记录列表更新信号。 |
command_hub |
CommandHubService
|
命令中心服务。 |
robot_state |
RobotStateDomainService
|
机械臂状态服务。 |
dynamic_service |
DynamicDomainService
|
动力学服务。 |
teach_record_service |
TeachRecordDomainService
|
示教记录服务。 |
record_repository |
RecordRepository
|
记录仓储。 |
初始化动力学视图模型。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
command_hub_service
|
CommandHubService
|
命令中心服务。 |
必需 |
robot_state_service
|
RobotStateDomainService
|
机械臂状态服务。 |
必需 |
dynamic_service
|
DynamicDomainService
|
动力学服务。 |
必需 |
teach_record_service
|
TeachRecordDomainService
|
示教记录服务。 |
必需 |
record_repository
|
RecordRepository
|
记录仓储。 |
必需 |
parent
|
Optional[object]
|
父对象。 |
None
|
源代码位于: src/controller/controller/presentation/view_models/dynamics_view_model.py
38 39 40 41 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 84 | |
toggle_teaching_mode
toggle_teaching_mode(command_dict: dict)
切换示教模式。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
command_dict
|
dict
|
命令字典,包含 control 和 mode。 |
必需 |
源代码位于: src/controller/controller/presentation/view_models/dynamics_view_model.py
86 87 88 89 90 91 92 93 94 95 96 97 | |
send_torque
send_torque(torque_values: list)
发送力矩控制命令。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
torque_values
|
list
|
力矩值列表(6个关节)。 |
必需 |
源代码位于: src/controller/controller/presentation/view_models/dynamics_view_model.py
99 100 101 102 103 104 105 106 107 108 109 110 | |
toggle_recording
toggle_recording()
切换记录状态(开始/停止)。
源代码位于: src/controller/controller/presentation/view_models/dynamics_view_model.py
142 143 144 145 146 147 148 149 150 151 152 | |
delete_record
delete_record(record_name: str) -> bool
删除指定记录。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
record_name
|
str
|
记录名称。 |
必需 |
返回:
| 名称 | 类型 | 描述 |
|---|---|---|
bool |
bool
|
是否删除成功。 |
源代码位于: src/controller/controller/presentation/view_models/dynamics_view_model.py
154 155 156 157 158 159 160 161 162 163 164 165 166 | |
run_record
run_record(record_name: str)
运行指定记录(播放示教轨迹)。
流程: 1. 获取示教记录的角度列表 2. 委托给 CommandHubService 处理
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
record_name
|
str
|
记录名称。 |
必需 |
源代码位于: src/controller/controller/presentation/view_models/dynamics_view_model.py
168 169 170 171 172 173 174 175 176 177 178 179 180 | |
reverse_record
reverse_record(record_name: str) -> Optional[str]
反转指定记录。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
record_name
|
str
|
记录名称。 |
必需 |
返回:
| 类型 | 描述 |
|---|---|
Optional[str]
|
Optional[str]: 新记录名称,失败返回 None。 |
源代码位于: src/controller/controller/presentation/view_models/dynamics_view_model.py
182 183 184 185 186 187 188 189 190 191 192 193 194 | |
get_record_names
get_record_names() -> List[str]
获取所有记录名称。
返回:
| 类型 | 描述 |
|---|---|
List[str]
|
List[str]: 记录名称列表。 |
源代码位于: src/controller/controller/presentation/view_models/dynamics_view_model.py
196 197 198 199 200 201 202 | |
is_recording
is_recording() -> bool
查询是否正在记录。
返回:
| 名称 | 类型 | 描述 |
|---|---|---|
bool |
bool
|
是否正在记录。 |
源代码位于: src/controller/controller/presentation/view_models/dynamics_view_model.py
204 205 206 207 208 209 210 | |