- 博客(105)
- 收藏
- 关注
原创 【无标题】
旋转矩阵虽然有 9 个数,但它的"变化速度"永远长成"一个 3 维角速度的叉积矩阵 × 它自己"。所以"转速"天然是 3 个数(绕哪根轴、多快),不用存 9 个数的导数。:关节速度估计、力传感器滤波、末端位姿估计(融合编码器 + 相机)、双臂相对位姿估计都用 KF/EKF。(这个方向的"放大倍数"只有 0.15)。,观察误差不再是 0——说明"接近万向锁"时欧拉角数值开始不稳定。定义为"此刻经过基座原点的那个点的速度"),则任意点。是把奇异值对角元取倒数)。是"最省"的解,但只完成了主任务(末端速度)。
2026-08-12 13:57:42
328
原创 【无标题】
本系列最后、也是最"吃肉"的一篇。内容多,先用一张表把"为什么学这个"钉住:09 篇 §1.2 算过一笔账:两手抓住同一刚体后2×7⏟14 个关节−6⏟闭链约束(相对位姿锁死)=6⏟物体位姿+2⏟内力自由度\underbrace{2\times7}_{14 \text{ 个关节}} - \underbrace{6}_{\text{闭链约束(相对位姿锁死)}} = \underbrace{6}_{\text{物体位姿}} + \underbrace{2}_{\text{内力自由度}}14 个关节2×7−闭
2026-08-12 13:40:05
192
原创 【无标题】
独立模式就是"两个单臂",用 09 以前的单臂工具就能干。协调模式才是 09/10 的战场——一旦两手抓同一个物体,两只手就被"焊"在了那个物体上,变成一个闭运动学链(闭环),约束从"别撞"升级为"别错位"。双七轴有 2×7=142\times7=142×7=14 个关节。但两只手抓住同一个刚体后:14⏟关节−6⏟闭链约束=6⏟物体运动+2⏟内力\underbrace{14}_{关节} - \underbrace{6}_{闭链约束} = \underbrace{6}_{物体运动} + \underbrace
2026-08-12 13:30:57
345
原创 【无标题】
机器人能测到的信号,没有一个是干净的:于是出现一个经典局面:同一个量,有好几种"说法",但都不完全可信。到底信谁?假设机器人末端位置真值是 xxx,有两个独立的估计源(比如编码器读数和 IMU 积分):z1=x+n1,z2=x+n2,n1∼N(0,σ12), n2∼N(0,σ22)z_1 = x + n_1,\qquad z_2 = x + n_2,\qquad n_1\sim\mathcal N(0,\sigma_1^2),\ n_2\sim\mathcal N(0,\sigma_2^2)z1=x+
2026-08-12 13:00:52
304
原创 【无标题】
先给结论:运动学(01-02 篇)回答"手臂在哪",动力学(本篇)回答"要多大的力/力矩,它才能到、且稳"。前者是几何问题,后者是物理问题(惯性、重力、摩擦)。单臂现在用 CSP 位置模式 + JTC 插值,确实"不需要"动力学(位置环在驱动器里帮我们扛了惯性)。但:工程判断:动力学决定"手臂能不能到、稳不稳、手感好不好"。动力学用在哪(应用清单):M(q)q¨+C(q,q˙)q˙+g(q)+τf(q˙)=τ(1)M(q)\ddot q + C(q,\dot q)\dot q + g(q) + \tau_f
2026-08-11 19:11:25
318
原创 【无标题】
每个关节挂一个坐标系 {i}\{i\}{i}。关节 i+1i+1i+1 的轴线是 ziz_izi 轴。两个相邻坐标系之间的一般刚体变换有 6 个自由度,但 DH 约定把 xi−1x_{i-1}xi−1 约束成"同时垂直于 zi−1z_{i-1}zi−1 和 ziz_izi"的公垂线方向——消掉 2 个自由度,剩 4 个参数:怎么来的(推导):从坐标系 {i−1}\{i-1\}{i−1} 走到 {i}\{i\}{i},分四步:Tii−1=Rz(θi)⏟绕 zi−1 转 qiTz(di)⏟沿 zi−1
2026-08-11 17:05:52
374
原创 【无标题】
七轴机械臂算法的"地基":所有后面内容(IK、雅可比、阻抗、双臂内力)都建立在这套数学上。目标:能闭着眼睛在代码里写出 旋转、四元数、指数映射、伪逆、卡尔曼滤波。配套代码:code/01_examples.py,11 个示例全部可运行(
2026-08-11 16:01:36
410
原创 如何在优快云博客编辑器中导入自己的Markdown文件
一个刚体在空间里能做的独立运动有6 种:前后、左右、上下(3 个平移)+ 绕这三根轴各转一下(3 个转动)。这 6 种独立运动就叫6 个自由度。6 轴:6 个关节,刚够让末端到达"任意位置、任意朝向"——刚好够用7 轴:7 个关节,比"刚好"多 1 个。多出的叫冗余(redundancy)
2026-08-11 15:53:07
445
原创 EtherCAT DC 完整详解(基于 IgH 1.5.2 官方手册)
摘要: EtherCAT的分布式时钟(DC)机制通过硬件纳秒时钟实现多轴设备(如机器人、CNC)的同步控制,同步偏差≤100ns。DC解决静态偏移(初始时间差异)和动态漂移(晶振误差)问题,通过三层补偿(传输延迟、初始偏移、动态漂移)确保精度。核心流程包括链路延迟测量、偏移校准及周期性漂移补偿,最终输出SYNC0/SYNC1同步脉冲控制伺服动作。实现需结合IgH库API(如ecrt_slave_config_dc)、实时内核及硬件隔离,并在ROS2硬件接口中周期性调用同步函数。常见故障源于未及时漂移补偿或驱
2026-08-05 08:54:18
487
原创 realtime 用户组 & 实时权限 总结
该权限配置仅控制程序调度、内存锁定权限,不替代 CPU 隔离、网卡中断绑定、RT 内核等实时优化,想要微秒级稳定周期,所有配置需要配套完整部署。
2026-08-04 14:38:02
212
原创 igh主站工作逻辑
两者分属内核空间、用户空间,哪怕内核线程优先级更高,共用一颗 CPU 时: 用户插补、闭环计算会被内核任务强行打断,周期抖动暴涨,机械臂震动、跟随误差超标。,负责总线扫描、读取从站 SII、分配你修改的 Station 地址、SDO 后台读写、掉线检测。加载 ec_master、网卡链路 UP 后,内核自动创建。
2026-08-04 14:03:02
294
原创 从Linux驱动本质到IgH EtherCAT完整流程:一篇彻底打通驱动、配置、库、硬件的硬核博客
本文不讲空话、不堆术语,从最基础的驱动原理,到你真实开发中配置文件 → 加载驱动 → 用户程序 → 内核 → 硬件的完整路径,一次性讲透、讲全、讲明白。- 我写的代码包含 ecrt.h 、调用 libethercat.so ,怎么就控制了伺服驱动器?配置 → 驱动加载 → 用户代码 → 动态库 → 系统调用 → 内核 → 驱动 → 硬件。你调用的是 ecrt.h 声明的API,链接时使用 libethercat.so。四、完整流程:从配置 → 驱动 → 代码 → 硬件(最透彻版本)
2026-04-09 18:18:41
297
原创 关于solidworkds利用sw2urdf插件导出单个物体并自定义坐标系
利用solidworks生成单个物体的urdf和stl供ros系统使用,图文步骤。
2026-03-21 09:54:01
142
原创 pdo配置 ethercat driver ros2
修正:RPDO顺序与实际一致(0x6040 → 0x607a → 0x6071 → ...)# 修正:TPDO顺序与实际一致(0x6041 → 0x6064 → 0x603f → ...)在使用ethercat driver ros2 配置pdo的时候,各个条目的顺序必须一模一样!不一样的话,在调用的时候就会读写错乱!
2026-02-03 13:46:56
399
原创 6轴机械臂无末端力传感器导纳拖动全解析
无末端力传感器也能实现手动拖动:利用关节力矩偏差间接获取外力,无需额外硬件;算法简化是关键:低速场景忽略惯性项,避免复杂微分方程求解,工程实现更稳定;CSP模式适配:最终输出位置指令,直接对接驱动器,无需修改驱动器配置;调优逻辑简单:刚度决定“软硬”,阻尼决定“顺滑度”,死区过滤噪声。
2026-01-24 14:21:25
869
原创 对象字典(OD)、服务数据对象(SDO)、过程数据对象(PDO)(三)
摘要:本文深入解析EtherCAT数据交互原理,重点阐述SDO/PDO在通讯模式、封包结构和寻址方式上的差异。硬件层面,PDO采用三缓存并行机制保障实时性,SDO通过单缓存邮箱模式确保可靠性;协议层面,PDO使用逻辑寻址和精简帧结构实现高效传输,SDO则采用节点寻址和完整控制字段保证配置精确性。文章还详细说明了从站识别PDO数据的分层机制,并澄清了SDO字典与对象字典(OD)的关系。通过"协议规则-硬件机制-传输载体-工程实现"的完整闭环,系统揭示了EtherCAT实现高速可靠通信的底层
2026-01-23 13:52:30
827
原创 对象字典(OD)、服务数据对象(SDO)、过程数据对象(PDO)(二)
CoE(CANopen over EtherCAT)协议结合两篇文档,SDO 的核心逻辑可总结为 “协议定义传输规则,API 封装实现细节CoE 协议(规则)→ OD(数据源头)→ SDO/PDO(访问接口)→ IgH API(工程实现)CoE 协议:定义 “交通规则”,确保 SDO/PDO 跨品牌兼容、传输有序;2OD:定义 “数据资产”,所有 SDO/PDO 操作都围绕 OD 的索引 / 子索引展开;SDO:CoE 协议定义的 “配置接口”,负责初始化、查询、故障诊断(万能但慢);PDO。
2026-01-23 13:44:43
699
原创 EtherCAT+IgH 的一些概念
EtherCAT 的实时性源于 “单帧多站 + DMA 搬运”,IgH 主站的价值在于 “标准化配置 + 底层抽象”。主站创建 Domain(物理内存容器),通过 PDO 映射规则,将从站的控制 / 反馈数据与 Domain 内存绑定;周期运行时,上层程序仅需读写 Domain 内存,IgH + 从站 SM 模块自动完成 “内存→总线→寄存器” 的高速搬运;所有组件围绕 “确定性、低延迟” 设计,最终实现微秒级实时控制。
2026-01-23 11:52:35
971
原创 实时控制必懂:9个核心概念
实时控制中的这些概念,本质上是 “时间维度” 的不同侧面:周期是 “节奏”,延迟是 “耗时”,抖动是 “波动”,确定性是 “保障”。理解它们的关联,就能在调试机械臂、优化 EtherCAT 通信时精准定位问题 —— 比如机械臂抖动大概率是抖动过大,报警 “跟随误差” 可能是延迟超标,周期超限则是吞吐量不足。
2026-01-23 10:37:37
745
原创 深度解析 IGH EtherCAT 主站核心文件体系:构成、作用与生成逻辑
深度解析 IGH EtherCAT 主站核心文件体系:构成、作用与生成逻辑
2026-01-14 15:12:51
1070
原创 IGH EtherCAT 主站核心文件体系全解析:构成、区别与运维实践
IGH EtherCAT 主站核心文件体系全解析:构成、区别与运维实践
2026-01-14 14:36:55
954
1
原创 MoveIt Task Constructor(MTC)全解析
MoveIt Task Constructor(MTC)全解析:从核心概念到工业级落地(ROS2+MoveIt2)
2026-01-08 17:22:06
1335
原创 EtherCAT+ROS 2 实时系统优化实践:CPU 隔离、线程绑定与优先级调优
EtherCAT 主站线程独占隔离核心 2,无系统进程 / 中断干扰,总线周期抖动从 ±1ms 降至 ±0.1ms 以内;优先级分层设计确保总线线程(99)优先执行,杜绝总线收发超时;全链路 250Hz 控制频率同步,轨迹跟踪误差降低 80% 以上。本文围绕 EtherCAT+ROS 2 实时系统的核心痛点,从系统层(CPU 隔离)、硬件层(驱动优化)、控制层(配置同步)三个维度实现全链路实时优化。
2025-12-26 17:47:57
1260
原创 ROS2 日志膨胀导致磁盘爆满?三步解决 + 长效防护方案
ROS2 日志膨胀的本质是 “无限制输出 + 无自动清理”,治理需遵循 “预防大于治理应急处理:定位大文件→删除文件→释放句柄;长效防护:代码降级日志 + 系统自动轮转 + 运行时限制级别。通过这套组合方案,既能解决当下的磁盘爆满问题,又能从根源上避免日志失控,让 ROS2 节点稳定运行的同时,不再成为磁盘空间的 “吞噬者”。
2025-11-25 17:34:40
612
原创 采用四元数计算机械臂 末端位移,
而之前的计算只是 “以 base 坐标系为参考的伪 tool 坐标系运动”。举个例子:当机械臂末端倾斜 45 度时,tool 的 Y 轴指向斜前方 ——在早期代码中,tool 坐标系偏移的计算。部分早期代码可能错误地使用。
2025-11-19 17:02:37
707
原创 突破网络瓶颈:MoveIt2子模块克隆失败的终极解决指南
CMake Error at python/bindings/CMakeLists.txt:3 (pybind11_add_module): Unknown CMake command "pybind11_add_module".
2025-11-18 17:47:48
460
原创 解决 rosdep update 失败的终极方案:本地仓库配置法(详细步骤)
解决 rosdep update 失败的终极方案:本地仓库配置法(详细步骤)
2025-09-18 11:48:08
747
原创 关于ros2_control中的joint_state_broadcaster,监听/joint_states,关节轨迹乱序问题。
关于ros2_control中的joint_state_broadcaster,监听/joint_states,关节轨迹乱序问题。
2025-09-12 15:36:33
510
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅