Skip to content
Merged
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
17c299d
提交选题
dengzhuo0119 Dec 19, 2025
5e6eb70
增加初始代码
dengzhuo0119 Dec 21, 2025
265bcd4
添加初始代码
dengzhuo0119 Dec 22, 2025
45ee132
Merge branch 'OpenHUTB:main' into main
dengzhuo0119 Dec 22, 2025
8611cef
feat: v0.2-添加夹爪开合控制功能(修复XML ctrlrange属性错误)
dengzhuo0119 Dec 22, 2025
81cc517
feat: v0.3-实现夹爪与立方体的接触检测功能
dengzhuo0119 Dec 22, 2025
e8e7b35
feat: v0.1-初始版本-基础机械臂可视化
dengzhuo0119 Dec 22, 2025
be9b7ac
添加初始代码
dengzhuo0119 Dec 22, 2025
d7d8e9c
Merge branch 'OpenHUTB:main' into main
dengzhuo0119 Dec 22, 2025
7596774
新增文件头注释和仿真休眠常量,支持Ctrl+C优雅退出
dengzhuo0119 Dec 23, 2025
12cfd77
Merge branch 'OpenHUTB:main' into main
dengzhuo0119 Dec 23, 2025
50017ed
新增文件头注释和仿真休眠常量,支持Ctrl+C优雅退出
dengzhuo0119 Dec 23, 2025
c2d307a
Merge branch 'OpenHUTB:main' into main
dengzhuo0119 Dec 23, 2025
88c69ac
提取PD控制参数为类内常量并添加类初始化文档字符串
dengzhuo0119 Dec 23, 2025
fd9472a
提取PD控制参数为类内常量并添加类初始化文档字符串
dengzhuo0119 Dec 23, 2025
9517f2e
提取雅克比阻尼系数为常量并完善_compute_jacobian文档
dengzhuo0119 Dec 24, 2025
9f209b4
Merge branch 'main' into main
dengzhuo0119 Dec 24, 2025
f5b25ba
Merge branch 'OpenHUTB:main' into main
dengzhuo0119 Dec 24, 2025
1cf25b0
提取关节速度限制常量并完善_move_step文档字符串
dengzhuo0119 Dec 24, 2025
f3eb289
提取关节速度限制常量并完善_move_step文档字符串
dengzhuo0119 Dec 24, 2025
0d4223a
提取位置误差阈值常量并完善_gripper_step文档
dengzhuo0119 Dec 24, 2025
0bfd5cd
Merge branch 'OpenHUTB:main' into main
dengzhuo0119 Dec 24, 2025
fc3a8e6
提取位置误差阈值常量并完善_gripper_step文档
dengzhuo0119 Dec 24, 2025
914736e
Merge branch 'OpenHUTB:main' into main
dengzhuo0119 Dec 25, 2025
697865e
提取夹爪等待步数常量并完善_grab_phase_machine文档
dengzhuo0119 Dec 25, 2025
d255cb0
提取夹爪等待步数常量并完善_grab_phase_machine文档
dengzhuo0119 Dec 25, 2025
6683bd0
Merge branch 'OpenHUTB:main' into main
dengzhuo0119 Dec 25, 2025
c9d1524
提取初始位置常量并添加位置方法的类型注解
dengzhuo0119 Dec 25, 2025
f7a93ac
提取初始位置常量并添加位置方法的类型注解
dengzhuo0119 Dec 25, 2025
2f11a70
Merge branch 'OpenHUTB:main' into main
dengzhuo0119 Dec 26, 2025
5b43246
提取抬升高度增量常量并完善_compute_jacobian类型注解
dengzhuo0119 Dec 26, 2025
9165bbc
提取抬升高度增量常量并完善_compute_jacobian类型注解
dengzhuo0119 Dec 26, 2025
6ab783c
Merge branch 'OpenHUTB:main' into main
dengzhuo0119 Dec 26, 2025
9682b40
提取相机参数常量并完善_move_step类型注解
dengzhuo0119 Dec 26, 2025
bc9daa7
提取相机参数常量并完善_move_step类型注解
dengzhuo0119 Dec 26, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 12 additions & 8 deletions src/Robot_arm_motion/robot_arm.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,10 +70,14 @@ def __init__(self):

# 位置坐标参数
self.INIT_EE_POS = np.array([0.4, 0.0, 0.2]) # 末端执行器初始目标位置

# 【优化1】提取抬升高度增量为类内常量
self.LIFT_HEIGHT_INCREMENT = 0.05 # 抓取后额外抬升的高度增量

# 【优化1】提取相机视角参数为类内常量
self.CAM_AZIMUTH = 70 # 相机方位角
self.CAM_ELEVATION = -25 # 相机仰角
self.CAM_DISTANCE = 1.8 # 相机距离
self.CAM_LOOKAT = np.array([0.4, 0.0, 0.1]) # 相机注视点

# 打印模型信息
print("=" * 50)
print("📌 模型Body列表:", [self.model.body(i).name for i in range(min(self.model.nbody, 10))])
Expand Down Expand Up @@ -105,7 +109,7 @@ def _compute_jacobian(self) -> np.ndarray:
mujoco.mj_jac(self.model, self.data, self.jacp, self.jacr, self.get_ee_pos(), self.ee_body_id)
return self.jacp[:, self.joint_ids]

def _move_step(self, target, speed=0.3):
def _move_step(self, target: np.ndarray, speed: float = 0.3) -> bool:
"""单步位置控制:基于雅克比伪逆实现末端执行器的位置跟踪

Args:
Expand Down Expand Up @@ -214,7 +218,6 @@ def _grab_phase_machine(self):

elif self.current_phase == 6:
# 阶段6:抬升立方体
# 【优化2】使用类内常量替代硬编码的抬升增量
lift_target = self.cube_pos + np.array([0, 0, self.safe_lift_height + self.LIFT_HEIGHT_INCREMENT])
if self._move_step(lift_target, speed=0.3):
print("\n✅ 抬升立方体")
Expand Down Expand Up @@ -270,10 +273,11 @@ def run(self):
"""单线程仿真主循环"""
# 初始化Viewer
self.viewer = viewer.launch_passive(self.model, self.data)
self.viewer.cam.azimuth = 70
self.viewer.cam.elevation = -25
self.viewer.cam.distance = 1.8
self.viewer.cam.lookat = np.array([0.4, 0.0, 0.1])
# 【优化2】使用类内常量替代硬编码的相机参数
self.viewer.cam.azimuth = self.CAM_AZIMUTH
self.viewer.cam.elevation = self.CAM_ELEVATION
self.viewer.cam.distance = self.CAM_DISTANCE
self.viewer.cam.lookat = self.CAM_LOOKAT

print("\n🚀 仿真已启动,开始自动抓取...")
print("💡 关闭Viewer窗口可退出程序")
Expand Down
Loading