特产网站怎么做wordpress centos安装
特产网站怎么做,wordpress centos安装,坪地网站建设价位,网上商城推广13种方法文章目录 [toc]一、什么是逆运动学#xff08;Inverse Kinematics, IK#xff09;#xff1f;1️⃣ 先看“正运动学”#xff08;FK#xff09;好理解一点2️⃣ 逆运动学#xff08;IK#xff09;正好反过来 二、先从“最简单的一条腿”开始#xff08;二维#xff09…文章目录[toc]一、什么是逆运动学Inverse Kinematics, IK1️⃣ 先看“正运动学”FK好理解一点2️⃣ 逆运动学IK正好反过来二、先从“最简单的一条腿”开始二维模型非常重要三、逆运动学的几何本质不是魔法1️⃣ 核心思想**三角形**2️⃣ 膝关节角最简单3️⃣ 髋关节角分两步步骤 A脚的方向角步骤 B三角形内部补角髋关节角四、用 Python 写一个“最小可运行 IK”1️⃣ 纯数学 IK二维单腿2️⃣ 试一下和你站立高度接近五、你代码里的 IK 是“进阶版”六、一句话总结非常重要这一步在做什么从 (x, y) 到 (r, θ)Step 1先有一个点 P(x, y)Step 2把“到原点的距离”画出来这就是 rStep 3用投影形成直角三角形解释 r 为什么是 √(x²y²)Step 4θ 是“从 x 轴转到 OP 的角度”用 atan2 最稳总结cartesian_to_polar() 的核心就是这两行一、什么是逆运动学Inverse Kinematics, IK1️⃣ 先看“正运动学”FK好理解一点正运动学FK已知关节角度 → 算末端在哪里比如髋关节 30°膝关节 60°问脚现在在空间的什么位置 (x, z)这就是 FK。2️⃣ 逆运动学IK正好反过来逆运动学IK已知脚的位置 → 算关节角度比如你在程序里写set_site(leg,x60,y0,z-50)你真正想问的是“如果脚要到这个点髋关节要转多少度膝关节要转多少度”这一步就是逆运动学。二、先从“最简单的一条腿”开始二维我们先不管四足、不管 yaw只看一条腿在一个平面里动。模型非常重要髋关节 o \ 大腿 L1 \ o 膝关节 \ \ 小腿 L2 \ x 足端大腿长度L1小腿长度L2脚目标位置(x, z)注意 z 往下是负三、逆运动学的几何本质不是魔法1️⃣ 核心思想三角形当脚的位置(x, z)已知时从髋关节到脚 → 构成一个三角形边长分别是一条边r sqrt(x² z²)另外两条边L1、L2于是你得到一个已知三边的三角形可以用余弦定理2️⃣ 膝关节角最简单用余弦定理[\cos(\theta_{knee}) \frac{L1^2 L2^2 - r^2}{2 L1 L2}]注意这是“膝关节内角”舵机角度往往要再转换你代码里已经做了3️⃣ 髋关节角分两步步骤 A脚的方向角phiatan2(z,x)步骤 B三角形内部补角[\psi \arccos\left(\frac{L1^2 r^2 - L2^2}{2 L1 r}\right)]髋关节角hip phi psi⚠️ 有些机器人用phi - psi取决于你角度定义你现在用的代码就是其中一种约定四、用 Python 写一个“最小可运行 IK”1️⃣ 纯数学 IK二维单腿importmathdefleg_ik_2d(x,z,L1,L2): 二维平面两连杆逆运动学 输入 x, z : 足端坐标 L1 : 大腿长度 L2 : 小腿长度 输出 hip_angle, knee_angle (单位度) # 到脚的距离rmath.sqrt(x*xz*z)# ---- 膝关节角余弦定理----cos_knee(L1*L1L2*L2-r*r)/(2*L1*L2)cos_kneemax(-1.0,min(1.0,cos_knee))# 防止数值炸掉kneemath.acos(cos_knee)# ---- 髋关节角 ----phimath.atan2(z,x)cos_psi(L1*L1r*r-L2*L2)/(2*L1*r)cos_psimax(-1.0,min(1.0,cos_psi))psimath.acos(cos_psi)hipphipsi# 转成角度hip_degmath.degrees(hip)knee_degmath.degrees(knee)returnhip_deg,knee_deg2️⃣ 试一下和你站立高度接近L155.0L277.5x62z-50hip,kneeleg_ik_2d(x,z,L1,L2)print(hip ,hip,knee ,knee)这一步得到的角度就是 IK 的核心结果。五、你代码里的 IK 是“进阶版”你现在用的这个函数cartesian_to_polar(x,y,z)本质上做了三件事把 (x, y) 合成水平距离 w减去髋关节横向偏移 length_c在 3D 空间里算α髋俯仰β膝关节γ髋 yaw左右摆也就是说你已经在用完整的三维逆运动学了只是还没“从几何角度彻底看懂它”六、一句话总结非常重要逆运动学不是“控制舵机”它只是回答一个问题 “脚要去这里关节应该转多少”你现在的代码结构已经是工业级四足机器人的典型写法了步态规划set_site ↓ 插值servo_service ↓ 逆运动学IK ↓ 舵机映射cartesian_to_polar(x, y)把直角坐标转成极坐标用图形一步步拆开讲清楚。为了直观用示例点P (3, 2)来演示换成任意 x,y 逻辑都一样。这一步在做什么从 (x, y) 到 (r, θ)Step 1先有一个点 P(x, y)直角坐标就是“从原点往右 x、往上 y”的位置。图里就是把点 P 标出来Step 2把“到原点的距离”画出来这就是 r极坐标的r是从原点 O 到点 P 的距离。用勾股定理[r \sqrt{x^2 y^2}]示例[r \sqrt{3^2 2^2} \sqrt{13} \approx 3.606]图里就是从 O 连到 P 的那条线段Step 3用投影形成直角三角形解释 r 为什么是 √(x²y²)把 P 垂直投影到 x 轴形成一个直角三角形底边长度 x高 y斜边 r所以 r 就是三角形斜边。图里有 x、y、r 三条边Step 4θ 是“从 x 轴转到 OP 的角度”用 atan2 最稳极坐标的θ是从正 x 轴逆时针转到OP的角。用[\theta \text{atan2}(y, x)]为什么不用atan(y/x)atan2能正确区分象限比如 x0 的时候角度不一样也能处理 x0 的情况。示例[\theta \text{atan2}(2,3) \approx 0.588\text{ rad} \approx 33.69^\circ]图里有一个小弧线表示 θ总结cartesian_to_polar() 的核心就是这两行[r\sqrt{x2y2},\quad \theta\text{atan2}(y,x)]