获取关节信息

创建时间:2024-12-01 更新时间:2024-12-02 阅读次数:1340 次

不同厂家生产的机械臂的关节个数是不相同的,同时抓手也有所不同,所以提前了解机械臂的关节和抓手是一件十分重要的事情。下面以panda机械臂为例,了解一下它的各个关节的情况:

import numpy as np
import pybullet as p
import pybullet_data

p.connect(p.GUI)
p.setAdditionalSearchPath(pybullet_data.getDataPath())
p.setGravity(0, 0, -10)
p.loadURDF("plane.urdf")
panda = p.loadURDF("franka_panda/panda.urdf", basePosition=np.array([0., 0., 0.]))
joint_num = p.getNumJoints(panda)
print("panda的关节数量为:", joint_num)

for joint_index in range(joint_num):
    joint_info_tuple = p.getJointInfo(panda, joint_index)
    print(f"关节序号:{joint_info_tuple[0]},关节名称:{joint_info_tuple[1]},关节类型:{joint_info_tuple[2]}")

p.disconnect()

代码运行的结果为:

panda的关节数量为: 12
关节序号:0,关节名称:b"panda_joint1",关节类型:0
关节序号:1,关节名称:b"panda_joint2",关节类型:0
关节序号:2,关节名称:b"panda_joint3",关节类型:0
关节序号:3,关节名称:b"panda_joint4",关节类型:0
关节序号:4,关节名称:b"panda_joint5",关节类型:0
关节序号:5,关节名称:b"panda_joint6",关节类型:0
关节序号:6,关节名称:b"panda_joint7",关节类型:0
关节序号:7,关节名称:b"panda_joint8",关节类型:4
关节序号:8,关节名称:b"panda_hand_joint",关节类型:4
关节序号:9,关节名称:b"panda_finger_joint1",关节类型:1
关节序号:10,关节名称:b"panda_finger_joint2",关节类型:1
关节序号:11,关节名称:b"panda_grasptarget_hand",关节类型:4

最后,大家要注意两个重点函数:

  • getNumJoints,获取关节总数

  • getJointInfo,获取关节信息

本教程共28节,当前为第19节!
本教程最新修订时间为:2025-12-16 08:17:09