资讯

小白也能懂:用Eigen搞定机械臂数值法逆解

转载 2025-09-09 10:41 Agilex 来源:Agilex
松灵机器人(东莞)有限公司
前言

在前几期中,我们实现了PIPER机械臂的点位控制轨迹录制视觉识别陀螺仪控制手势识别。正向与逆向运动学,是连接“空间指令”与“关节动作”的桥梁。无论是点击屏幕、挥手控制,还是自动抓取,背后都离不开今天实现的这套FK/IK求解。

更重要的是——所有代码已开源,欢迎动手实践!

开源链接:https://github.com/agilexrobotics/Agilex-College.git

摘要

本章实现基于线性代数库Eigen实现松灵PIPER机械臂的正解,逆解的雅各比方法,自定义交互式标记interactive_marker_utils的实现

标签

运动学正解、运动学逆解的雅各比方法、RVIZ仿真、机械臂DH、交互式标记、松灵PIPER

功能演示


已关注 关注 重播 分享 赞 关闭观看更多更多退出全屏切换到竖屏全屏退出全屏AGV网已关注分享视频,时长00:48

0/0

00:00/00:48切换到横屏模式继续播放进度条,百分之0播放00:00/00:4800:48全屏倍速播放中 0.5倍 0.75倍 1.0倍 1.5倍 2.0倍 超清 流畅

您的浏览器不支持 video 标签

继续观看

小白也能懂:用Eigen搞定机械臂数值法逆解

观看更多转载,小白也能懂:用Eigen搞定机械臂数值法逆解AGV网已关注分享点赞在看已同步到看一看写下你的评论

视频详情


已关注 关注 重播 分享 赞 关闭观看更多更多退出全屏切换到竖屏全屏退出全屏AGV网已关注分享视频,时长00:18

0/0

00:00/00:18切换到横屏模式继续播放进度条,百分之0播放00:00/00:1800:18全屏倍速播放中 0.5倍 0.75倍 1.0倍 1.5倍 2.0倍 超清 流畅

您的浏览器不支持 video 标签

继续观看

小白也能懂:用Eigen搞定机械臂数值法逆解

观看更多转载,小白也能懂:用Eigen搞定机械臂数值法逆解AGV网已关注分享点赞在看已同步到看一看写下你的评论

视频详情

1.使用前准备1.1.硬件准备

• AgileX robotics Piper机械臂

1.2.软件环境配置

1. PIPER机械臂驱动部署请参考:https://github.com/agilexrobotics/piper_sdk/blob/1_0_0_beta/README(ZH).MD

2. PIPER机械臂ROS控制节点部署参考:https://github.com/agilexrobotics/piper_ros/blob/noetic/README.MD

3. 安装Eigen线性代数库

sudo apt install libeigen3-dev1.3.准备松灵PIPER的DH参数表以及关节限位

查阅松灵PIPER用户手册可以找到PIPER的改进DH参数表与关节限位:

DH

机械臂关节运动范围

2.正向运动学计算FK

正向运动学FK的计算过程实际上是从每个关节的角度值----计算---->>机械臂某一关节在三维世界的位姿,本文以机械臂最后一个旋转关节joint6为例

2.1.准备DH参数

1. 根据PIPER的DH参数表构建正向运动学计算程序,由1.3小结的松灵PIPER的改进DH参数表,可以得到

// 改进DH参数 [alpha, a, d, theta_offset]dh_params_ = {{0,         0,          0.123,      0},                     // Joint 1{-M_PI/2,   0,          0,          -172.22/180*M_PI},      // Joint 2 {0,         0.28503,    0,          -102.78/180*M_PI},      // Joint 3{M_PI/2,    -0.021984,  0.25075,    0},                     // Joint 4{-M_PI/2,   0,          0,          0},                     // Joint 5{M_PI/2,    0,          0.091,      0}                      // Joint 6};

转换为标准DH,可以参考以下的转换规则:

标准DH到改进DH

αᵢ₋₁(标准) = αᵢ(改进)

aᵢ₋₁(标准) = aᵢ(改进)

dᵢ(标准) = dᵢ(改进)

θᵢ(标准) = θᵢ(改进)

改进DH到标准DH

αᵢ(标准) = αᵢ₊₁(改进)

aᵢ(标准) = aᵢ₊₁(改进)

dᵢ(标准) = dᵢ(改进)

θᵢ(标准) = θᵢ(改进)

得到转换后的标准DH:

// 标准DH参数 [alpha, a, d, theta_offset]dh_params_ = {{-M_PI/2,   0,          0.123,      0},                     // Joint 1{0,         0.28503,    0,          -172.22/180*M_PI},      // Joint 2 {M_PI/2,    -0.021984,  0,          -102.78/180*M_PI},      // Joint 3{-M_PI/2,   0,          0.25075,    0},                     // Joint 4{M_PI/2,    0,          0,          0},                     // Joint 5{0,         0,          0.091,      0}                      // Joint 6};

2. 准备DH变换矩阵

• 改进DH变换矩阵:

- 用Eigen改写为改进DH的变换矩阵:T 
0 0

网友评论

取消