✨ 复制成功!

以文会友,打造好学人设!

📋 已复制到剪贴板:

关节重置

创建时间:2024-12-03 更新时间:2024-12-03 阅读次数:1398 次

在操作机械臂进行训练的时候,经常会用到关节重置从而开启下一轮的训练,通常使用resetJointState函数来实现。具体实现过程如下所示:

# 定义各个活动关节的初始化角度
jointPositions=[0.98, 0.458, 0.31, -2.24, -0.30, 2.66, 2.32, 0.02, 0.02]


#加载机械臂
orn=[-0.707107, 0.0, 0.0, 0.707107]#p.getQuaternionFromEuler([-math.pi/2,math.pi/2,0])
eul = self.bullet_client.getEulerFromQuaternion([-0.5, -0.5, -0.5, 0.5])
self.panda = self.bullet_client.loadURDF("franka_panda/panda.urdf", np.array([0,0,0])+self.offset, orn, useFixedBase=True, flags=flags)

## 重置每个活动关节
index = 0
for j in range(self.bullet_client.getNumJoints(self.panda)):
  self.bullet_client.changeDynamics(self.panda, j, linearDamping=0, angularDamping=0)
  info = self.bullet_client.getJointInfo(self.panda, j)

  jointName = info[1]
  jointType = info[2]
  if (jointType == self.bullet_client.JOINT_PRISMATIC):
    self.bullet_client.resetJointState(self.panda, j, jointPositions[index]) 
    index=index+1
  if (jointType == self.bullet_client.JOINT_REVOLUTE):
    self.bullet_client.resetJointState(self.panda, j, jointPositions[index]) 
    index=index+1
本教程共28节,当前为第21节!
本教程最新修订时间为:2026-07-24 11:58:56

📌 面试天下网:一款服务于大一新生的口袋书,让大家在无聊的公共课上可以学习大模型技术!
📌 网站公告:人人都需要的干眼克星上线啦>>>>>>
📌 网站公告:程序出海:中国程序员当下最大的机遇>>>>>>
📌 网站公告:程序员都应该掌握的快速学习法>>>>>>