Pinocchio - 开源多刚体动力学 C++、Python库

news/2025/2/22 11:19:10

系列文章目录


前言

Pinocchio 是一个用于动态计算的 C++ 库,侧重于机器人、计算机动画和生物力学应用。
它基于 Featherstone 在其著作中正式提出的动态多体计算。
该软件附带一个 python 封装和可视化工具。


一、库特征

实现了以下算法

  • 递归牛顿-欧拉算法(RNEA,即逆动力学算法)
  • 复合刚体算法(CRBA,即广义惯性矩阵)
  • 惯性矩阵的稀疏乔尔斯基分解(用于受约束正向动力学解析)
  • 置放雅各比(即从配置速度到末端执行器空间速度的应用),以及身体置放、速度和加速度的计算。
  • 质量中心及其雅各布
  • 模型可通过 URDF 格式解析。实现了以下关节模型
  • 旋转 X、Y、Z(优化),与笛卡尔方向不对齐
  • 棱柱 X、Y、Z
  • 双曲线(四元数表示法)
  • 自由(即无约束,适用于人形机器人等移动机器人--旋转使用四元数表示法)

建议使用教程(请参阅页面顶部菜单中的相应项目):在 20 个小时的工作中生成第一个仿人行走机器人,同时了解 Python、Pinocchio 界面、逆运动学和 LQR。

二、安装 Pinocchio

2.1 安装

   如果您从未添加过 robotpkg 的软件仓库,现在就添加吧:

sudo tee /etc/apt/sources.list.d/robotpkg.list <<EOF
deb [arch=amd64] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -sc) robotpkg
EOF

curl http://robotpkg.openrobots.org/packages/debian/robotpkg.key | sudo apt-key add -
sudo apt update

Pinocchio 及其依赖项的安装通过以下命令行完成: 

 sudo apt install -qqy robotpkg-py3*-pinocchio

它将安装所有系统和其他所需的依赖项。

2.2 配置环境变量

所有软件包都将安装在 /opt/openrobots 目录下。要使用已安装的库和程序,必须配置 PATH、PKG_CONFIG_PATH、PYTHONPATH 和其他类似的环境变量,使其指向该目录。例如

export PATH=/opt/openrobots/bin:$PATH
export PKG_CONFIG_PATH=/opt/openrobots/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=/opt/openrobots/lib:$LD_LIBRARY_PATH
export PYTHONPATH=/opt/openrobots/lib/python3.10/site-packages:$PYTHONPATH # Adapt your desired python version here
export CMAKE_PREFIX_PATH=/opt/openrobots:$CMAKE_PREFIX_PATH

您可以直接将这些行添加到 $HOME/.bashrc 中,以实现持久配置。

 


http://www.niftyadmin.cn/n/5271080.html

相关文章

Linux---用户组相关操作

1. 创建用户组 命令说明groupadd创建(添加)用户组 创建用户组效果图: 2. 创建用户并指定用户组 创建用户并指定用户组效果图: 3. 修改用户组 修改用户组效果图: 4. 删除用户组 命令说明groupdel删除用户组 删除用户组效果图: 说明: 如果用户组下面有用户先删除用户在…

02.Git常用基本操作

一、基本配置 &#xff08;1&#xff09;打开Git Bash &#xff08;2&#xff09;配置姓名和邮箱 git config --global user.name "Your Name" git config --global user.email "Your email" 因为Git是分布式版本控制工具&#xff0c;所以每个用户都需要…

C#监听端口报错“以一种访问权限不允许的方式做了访问套接字的尝试”

C#编写的端口监听程序&#xff0c;平时都能正常运行&#xff0c;但最新操作系统更新补丁重启电脑后&#xff0c;运行程序报错“以一种访问权限不允许的方式做了访问套接字的尝试”&#xff0c;客户端程序也无法连接。   百度错误信息&#xff0c;给出的答案都是端口监听程序使…

55 代码审计-JAVA项目注入上传搜索或插件挖掘

目录 必备知识点演示案例:简易Demo段SQL注入及预编译IDEA审计插件FindBugs安装使用Fortify_SCA代码自动审计神器使用Ofcms后台SQL注入-全局搜索关键字Ofcms后台任意文件上传-功能点测试 涉及资源&#xff1a; 我们一般针对java项目&#xff0c;进行漏洞分析的话&#xff0c;主要…

季节性ARIMA模型进行时间序列预测

首先对于模型&#xff1a; SARIMA(p,d,q)x(P,D,Q)。 参数的选择的注意事项如下&#xff1a; where, P, D and Q are SAR, order of seasonal differencing and SMA terms respectively and ‘x’ is the frequency of the time series. If the model has well defined season…

Codeforces Round 915 (Div. 2) A-F(补题补写法)

A. Constructive Problems&#xff08;签到&#xff09; 题解 输出max(x,y) t int(input()) for _ in range(t):u, v map(int,input().split())print(max(u,v)) B. Begginers Zelda&#xff08;统计树的叶子&#xff09; 题解 输出叶子个数除以2上取整 // Problem: B…

uniapp中uni-data-select下拉框组件如何去除边框?

在目录中找到文件夹。 找到下拉框组件文件夹 注释该文件夹以下代码就能实现下拉框不带边框。

spring-kakfa依赖管理之org/springframework/kafka/listener/CommonErrorHandler错误

问题&#xff1a; 整个项目使用spring-boot2.6.8版本&#xff0c;使用gradle构建&#xff0c;在common模块指定了implementation org.springframework.kafka:spring-kafka:2.6.8’这个工程也都能运行&#xff08;这正常发送kafka消息和接收消息&#xff09;&#xff0c;但是执行…