pinocchio库使用教程(三)

几何模型

python 复制代码
from pathlib import Path
from sys import argv
 
import pinocchio
 
# This path refers to Pinocchio source code but you can define your own directory here.
pinocchio_model_dir = Path(__file__).parent.parent / "models"
 
model_path = Path(
    (pinocchio_model_dir / "example-robot-data/robots") if len(argv) < 2 else argv[1]
)
mesh_dir = pinocchio_model_dir
urdf_model_path = model_path / "ur_description/urdf/ur5_robot.urdf"
 
# Load the urdf model
model, collision_model, visual_model = pinocchio.buildModelsFromUrdf(
    urdf_model_path, mesh_dir
)
print("model name: " + model.name)
 
# Create data required by the algorithms
data, collision_data, visual_data = pinocchio.createDatas(
    model, collision_model, visual_model
)
 
# Sample a random configuration
q = pinocchio.randomConfiguration(model)
print(f"q: {q.T}")
 
# Perform the forward kinematics over the kinematic tree
pinocchio.forwardKinematics(model, data, q)
 
# Update Geometry models
pinocchio.updateGeometryPlacements(model, data, collision_model, collision_data)
pinocchio.updateGeometryPlacements(model, data, visual_model, visual_data)
 
# Print out the placement of each joint of the kinematic tree
print("\nJoint placements:")
for name, oMi in zip(model.names, data.oMi):
    print("{:<24} : {: .2f} {: .2f} {: .2f}".format(name, *oMi.translation.T.flat))
 
# Print out the placement of each collision geometry object
print("\nCollision object placements:")
for k, oMg in enumerate(collision_data.oMg):
    print("{:d} : {: .2f} {: .2f} {: .2f}".format(k, *oMg.translation.T.flat))
 
# Print out the placement of each visual geometry object
print("\nVisual object placements:")
for k, oMg in enumerate(visual_data.oMg):
    print("{:d} : {: .2f} {: .2f} {: .2f}".format(k, *oMg.translation.T.flat))
相关推荐
Jackey_Song_Odd1 分钟前
Part 1:Python语言核心 - 缩进与代码块
开发语言·python
视觉&物联智能4 分钟前
【杂谈】-新机器人竞赛的深层洞察:数据、模型与制造的博弈
人工智能·ai·机器人·制造·agi·具身智能
码农时代者9 分钟前
拒绝重复造轮子!开发者如何靠“高质量源码”实现项目高效交付?
java·python·php
郝学胜-神的一滴15 分钟前
深度学习入门基石:PyTorch张量核心技术全解析
人工智能·pytorch·python·深度学习·算法·机器学习
前端小趴菜~时倾24 分钟前
python爬虫学习第二课-流程控制
爬虫·python·学习
放下华子我只抽RuiKe530 分钟前
机器学习终章:集成学习的巅峰与全流程实战复盘
开发语言·人工智能·python·机器学习·数据挖掘·机器人·集成学习
学术小白人34 分钟前
【见刊通知】第二届绿色能源与机电工程国际学术会议(ICGEME 2025)
人工智能·机器人·能源·期刊·投稿·电气工程·rdlink研发家
Red丶哞39 分钟前
RustFS 使用 S3 Python SDK(Boto3)文档
开发语言·python
铁打的阿秀42 分钟前
Java 打印pdf添加水印实现
java·python·pdf
yuxi20201 小时前
我用 Python 自动化了这 10 个工作流程,每周省下 8 小时
python