机器人奇异点分析工具

机器人奇异点分析工具

  • [1️⃣ MATLAB Robotics System Toolbox(最稳最省事版本)](#1️⃣ MATLAB Robotics System Toolbox(最稳最省事版本))
    • [1. 获取方式(安装)](#1. 获取方式(安装))
    • [2. 验证是否安装成功](#2. 验证是否安装成功)
    • [3. 是否能正常使用(最小测试)](#3. 是否能正常使用(最小测试))
    • [4. 导入自己的 URDF(核心步骤)](#4. 导入自己的 URDF(核心步骤))
    • [5. Jacobian 自动计算](#5. Jacobian 自动计算)
    • [6. 奇异性分析(最常用)](#6. 奇异性分析(最常用))
    • [7. manipulability(推荐一起用)](#7. manipulability(推荐一起用))
    • [8. 一步到位:完整流程(建议直接用)](#8. 一步到位:完整流程(建议直接用))
    • [9. MATLAB 这一套的优点(为什么推荐)](#9. MATLAB 这一套的优点(为什么推荐))
    • [10. 适合什么阶段](#10. 适合什么阶段)
    • [11. 一句话总结](#11. 一句话总结)
  • [2️⃣ Robotics Toolbox for Python](#2️⃣ Robotics Toolbox for Python)
    • [1. 获取方式(安装)](#1. 获取方式(安装))
    • [2. 验证是否安装成功](#2. 验证是否安装成功)
    • [3. 是否能正常使用(最小测试)](#3. 是否能正常使用(最小测试))
    • [4. 奇异性分析](#4. 奇异性分析)
    • [5. 特点总结](#5. 特点总结)
  • [3️⃣ Pinocchio(强烈推荐,下一篇重点讲)](#3️⃣ Pinocchio(强烈推荐,下一篇重点讲))
    • [1. 获取方式(安装)](#1. 获取方式(安装))
    • [2. 验证是否安装成功](#2. 验证是否安装成功)
    • [3. 是否能正常使用(最小测试)](#3. 是否能正常使用(最小测试))
    • [4. URDF 导入](#4. URDF 导入)
    • [5. Jacobian 计算](#5. Jacobian 计算)
    • [6. 奇异性分析](#6. 奇异性分析)
    • [7. 特点总结](#7. 特点总结)
  • [4️⃣ Drake(MIT)](#4️⃣ Drake(MIT))
    • [1. 获取方式](#1. 获取方式)
    • [2. 验证是否安装成功](#2. 验证是否安装成功)
    • [3. 是否能正常使用](#3. 是否能正常使用)
    • [4. URDF 导入](#4. URDF 导入)
    • [5. Jacobian](#5. Jacobian)
    • [6. 奇异性分析](#6. 奇异性分析)
    • [7. 特点总结](#7. 特点总结)
  • [5️⃣ CasADi / SymPy(符号级工具)](#5️⃣ CasADi / SymPy(符号级工具))
    • [1. 获取方式](#1. 获取方式)
    • [2. 验证是否安装成功](#2. 验证是否安装成功)
    • [3. 最小测试](#3. 最小测试)
    • [4. 奇异性解析](#4. 奇异性解析)
    • [5. 特点总结](#5. 特点总结)
  • 总结

以下内容GPT生成

我希望实现

输入:关节拓扑 + 连杆长度(URDF/DH)→ 自动生成:Jacobian + 奇异性分析。


1️⃣ MATLAB Robotics System Toolbox(最稳最省事版本)

如果你只是想实现:

👉 输入 URDF / DH

👉 自动得到 Jacobian

👉 顺便做奇异性分析

那么 MATLAB 是目前最省心、最少踩坑的方案。


1. 获取方式(安装)

MATLAB 自带工具箱(非开源,需要授权)

打开 MATLAB:

复制代码
roboticsAddons

搜索:

复制代码
Robotics System Toolbox

点击安装即可


2. 验证是否安装成功

方法一:

复制代码
ver('robotics')

如果返回类似:

复制代码
Robotics System Toolbox

👉 说明安装成功


方法二(更直接):

复制代码
which geometricJacobian

👉 能找到函数路径 = OK


3. 是否能正常使用(最小测试)

直接跑一个最简单模型:

复制代码
robot = loadrobot('kinovaGen3');

q = homeConfiguration(robot);

J = geometricJacobian(robot, q, 'EndEffector');

disp(J)

👉 能输出矩阵 = Jacobian 正常


4. 导入自己的 URDF(核心步骤)

复制代码
robot = importrobot('humanoid.urdf');

show(robot)

👉 如果能正常显示模型 ⇒ URDF 没问题


5. Jacobian 自动计算

复制代码
q = homeConfiguration(robot);

J = geometricJacobian(robot, q, 'foot');

disp(J)

6. 奇异性分析(最常用)

复制代码
[U,S,V] = svd(J);

sigma_min = min(diag(S));

disp(sigma_min)

👉 越接近 0 ⇒ 越接近奇异


7. manipulability(推荐一起用)

复制代码
w = sqrt(det(J * J'));

disp(w)

👉 w → 0 ⇒ 奇异


8. 一步到位:完整流程(建议直接用)

复制代码
robot = importrobot('humanoid.urdf');

q = homeConfiguration(robot);

J = geometricJacobian(robot, q, 'foot');

[U,S,V] = svd(J);

sigma_min = min(diag(S));

w = sqrt(det(J * J'));

disp(sigma_min)
disp(w)

9. MATLAB 这一套的优点(为什么推荐)

✔ 不用自己推公式

✔ URDF 直接导入

✔ 自带可视化

✔ 几乎不会踩坑


10. 适合什么阶段

复制代码
✔ 初期结构验证
✔ Jacobian正确性检查
✔ 奇异性快速判断

11. 一句话总结

👉 MATLAB = "最省脑子的 Jacobian + 奇异性分析工具"


2️⃣ Robotics Toolbox for Python

如果你不想被 MATLAB 环境绑定,或者希望后续和 RL / 仿真(PyTorch / Mujoco / Isaac)打通,推荐使用:

👉 Robotics Toolbox for Python(Peter Corke)


1. 获取方式(安装)

官方 GitHub:

https://github.com/petercorke/robotics-toolbox-python

安装:

复制代码
pip install roboticstoolbox-python

2. 验证是否安装成功

复制代码
import roboticstoolbox as rtb
print(rtb.__version__)

输出版本号 ⇒ 安装成功


3. 是否能正常使用(最小测试)

复制代码
import roboticstoolbox as rtb

robot = rtb.models.DH.Puma560()
q = robot.qz
J = robot.jacob0(q)

print(J)

输出矩阵 ⇒ Jacobian 正常


4. 奇异性分析

复制代码
import numpy as np

U, S, V = np.linalg.svd(J)
print("sigma_min:", np.min(S))

5. 特点总结

✔ Python生态(可接RL)

✔ 上手简单

✔ 适合快速验证


3️⃣ Pinocchio(强烈推荐,下一篇重点讲)

👉 humanoid / legged robot 主流工具


1. 获取方式(安装)

官方 GitHub:

https://github.com/stack-of-tasks/pinocchio

官方文档:

https://stack-of-tasks.github.io/pinocchio/

推荐安装:

复制代码
conda install -c conda-forge pinocchio

2. 验证是否安装成功

复制代码
import pinocchio as pin
print(pin.__version__)

输出版本号 ⇒ 成功


3. 是否能正常使用(最小测试)

复制代码
import pinocchio as pin

model = pin.buildSampleModelManipulator()
data = model.createData()

q = pin.neutral(model)

pin.computeJointJacobians(model, data, q)

print("OK")

4. URDF 导入

复制代码
import pinocchio as pin

model = pin.buildModelFromUrdf("humanoid.urdf")
data = model.createData()

print(model.nq)

5. Jacobian 计算

复制代码
frame_id = model.getFrameId("foot")

J = pin.computeFrameJacobian(
    model,
    data,
    q,
    frame_id,
    pin.ReferenceFrame.LOCAL
)

print(J)

6. 奇异性分析

复制代码
import numpy as np

U, S, V = np.linalg.svd(J)
print("sigma_min:", np.min(S))

7. 特点总结

✔ 解析 Jacobian

✔ 支持 URDF

✔ humanoid 主流工具


4️⃣ Drake(MIT)

👉 系统级动力学工具


1. 获取方式

官网:

https://drake.mit.edu/

安装:

复制代码
pip install drake

2. 验证是否安装成功

复制代码
import pydrake
print("Drake loaded")

3. 是否能正常使用

复制代码
from pydrake.all import MultibodyPlant, Parser

plant = MultibodyPlant(time_step=0.0)
parser = Parser(plant)

print("OK")

4. URDF 导入

复制代码
from pydrake.all import MultibodyPlant, Parser

plant = MultibodyPlant(time_step=0.0)
parser = Parser(plant)

parser.AddModelFromFile("humanoid.urdf")

plant.Finalize()

5. Jacobian

复制代码
plant.CalcJacobianSpatialVelocity(...)

6. 奇异性分析

复制代码
import numpy as np

U, S, V = np.linalg.svd(J)

7. 特点总结

✔ 强动力学

✔ 支持接触

✔ 适合 humanoid


5️⃣ CasADi / SymPy(符号级工具)

👉 用于解析 Jacobian


1. 获取方式

官网:

https://web.casadi.org/

安装:

复制代码
pip install casadi

2. 验证是否安装成功

复制代码
import casadi as ca
print(ca.__version__)

3. 最小测试

复制代码
import casadi as ca

q = ca.SX.sym('q', 2)

x = ca.vertcat(
    ca.cos(q[0]) + ca.cos(q[0]+q[1]),
    ca.sin(q[0]) + ca.sin(q[0]+q[1])
)

J = ca.jacobian(x, q)

print(J)

4. 奇异性解析

复制代码
detJ = ca.det(J)
print(detJ)

5. 特点总结

✔ 符号推导

✔ 自动微分

✔ 适合论文


总结

复制代码
MATLAB → 快速验证
RTB-Python → 轻量分析
Pinocchio → 主力工具
Drake → 系统级
CasADi → 理论推导

相关推荐
cxr82816 小时前
DNA纳米机器人:体内药物递送与病毒追踪
机器人
Deepoch17 小时前
Deepoc 具身模型开发板升级康复助行机器人自主随行能力
机器人·开发板·具身模型·deepoc·智能轮椅
才兄说1 天前
机器人二次开发机器狗巡检?异常识别近100%
人工智能·机器人
Techblog of HaoWANG1 天前
目标检测与跟踪(15)-- conda 环境与 roslaunch 节点解释器不一致问题的排查与工程化修复
人工智能·目标检测·计算机视觉·机器人·conda
2501_947908201 天前
2026钢铁冶金重载机器人怎么选?五大品牌深度对比与焊接应用方案
人工智能·机器人
鲁邦通物联网1 天前
架构实战:无API接口老旧电梯的机器人梯控非侵入式调度设计与状态机实现
机器人·巡检机器人·机器人梯控·agv梯控·机器人乘梯·机器人自主乘梯·agv机器人梯控
ZPC82101 天前
MoveGroup 规划轨迹 → 直接交给 MoveIt2 Servo 执行
人工智能·算法·计算机视觉·机器人
VBsemi-专注于MOSFET研发定制1 天前
高端意念驱动外骨骼机器人功率 MOSFET 选型方案:高动态、高可靠关节驱动系统适配指南
机器人
dc_young1 天前
【具身任务规划】REVER 与 RoboFarseer:用“可验证奖励”把VLM训练成机器人闭环长任务规划器
人工智能·语言模型·机器人
沫儿笙1 天前
库卡焊接机器人白车身焊接节气装置
人工智能·机器人