当前位置: 首页 > news >正文

关于6轴球腕机械臂的肩部奇异描述纠正

对于常见的球腕6轴机械臂构型,在大多数资料中奇异点描述如下:

  • 肩部奇异点(Shoulder singularity): 肩部奇异点是在机器人手腕的中心与J1轴关节在同一条直线上时发生。这种情况下,会导致关节轴1和4试图瞬间旋转180度。

  • 肘部奇异点(Elbow singularity): 当机器人手腕的中心与关节轴2和3处于同一平面时,会产生肘部奇异点。肘部奇异点看起来像机器人“伸得太远”,导致肘部锁定在某个空间位置。

  • 腕部奇异点(Wrist singularity): 当机器人的两个手腕轴(关节轴4和6)在同一条直线上时,就会发生这种情况,这可能会导致这些关节试图立即旋转180度。

对于肘部奇异和腕部奇异,博主无异议,而对于肩部奇异点,博主发现一个问题,即即使球腕中心点与J1轴线不重合,也可能存在该问题。

案例如下:
现有一机器人构型(最常见的构型)如下图所示,
在这里插入图片描述
MDH被定义为:

robot:: 6 axis, RRRRRR, modDH, slowRNE                           
+---+-----------+-----------+-----------+-----------+-----------+
| j |     theta |         d |         a |     alpha |    offset |
+---+-----------+-----------+-----------+-----------+-----------+
|  1|         q1|        0.1|          0|          0|          0|
|  2|         q2|          0|          0|     1.5708|     1.5708|
|  3|         q3|          0|        0.2|          0|     1.5708|
|  4|         q4|        0.2|          0|     1.5708|          0|
|  5|         q5|          0|          0|    -1.5708|          0|
|  6|         q6|        0.1|          0|     1.5708|          0|
+---+-----------+-----------+-----------+-----------+-----------+

在当前位置下,坐标系456原点与1轴重合,发现雅可比矩阵的秩为5。
在这里插入图片描述

当我给连杆2一个较大的偏置时,此处d2=200,此时构型如下图所示:
在这里插入图片描述

从下图中可以看到,坐标系456原点与J1轴线已不再重合,但雅可比矩阵仍奇异。
在这里插入图片描述

由此可见,常见的肩部奇异描述是有问题的,正确的肩部奇异点描述应如下:

腕部中线点在通过J1轴线且平行J2轴线的平面上。
腕部中线点在通过J1轴线且平行J2轴线的平面上。
腕部中线点在通过J1轴线且平行J2轴线的平面上。


测试代码如下:

% 通过修改d2的值,观察该现象
clear,clc,close alld1 = 100;
d2 = 0;
d4 = 200;
d6 = 100;
a3 = 200;
d=[d1 d2 0 d4 0 d6]/1000;
a=[0 0 a3 0 0 0]/1000;
alpha=[0 pi/2 0 pi/2 -pi/2 pi/2];
offset = [0 pi/2 pi/2 0 0 0];for i=1:6Link(i) = RevoluteMDH('d', d(i),'a', a(i),'alpha', alpha(i), 'offset', offset(i));
endrobot = SerialLink(Link,'name','robot')R = sqrt(a3*a3+d4*d4);
q = [0,-asin(a3/R),pi/2,0,pi/4,pi/2]
J = robot.jacob0(q)
[~,S,~]=svd(J)
rankJ = rank(J)
robot.plot(q)
jsingu(J)T01 = robot.links(1).A(q(1)).T;
T12 = robot.links(2).A(q(2)).T;
T23 = robot.links(3).A(q(3)).T;
T34 = robot.links(4).A(q(4)).T;
T04  = T01 * T12 * T23 * T34

参考链接:

  • https://zhuanlan.zhihu.com/p/531651439
  • https://www.cad2d3d.com/post-1615.html
  • https://www.163.com/dy/article/GIBAB7RQ05524DYX.html
  • https://www.mecademic.com/academic_articles/singularities-6-axis-robot-arm/
http://www.lryc.cn/news/195994.html

相关文章:

  • Python —— hou.Node class
  • MATLAB——RBF、GRNN和PNN神经网络案例参考程序
  • E138: Can‘t write viminfo file
  • Compose Canvas基础(2) 图形转换
  • 【计算机网络笔记】分组交换中的报文交付时间计算例题
  • JVS-rules规则引擎,解决大数据风控的自动化决策利器
  • dvaJs在react 项目中的简单使用
  • 如何将las数据转换为osgb数据?
  • 创新与重塑,佛塑科技打造集团型 CRM 建设标杆
  • STM32CUBEMX_DMA串口空闲中断接收+接收发送缓冲区
  • 酸蚀刻对钛医药材料纳米形态表面特性及活化能的影响
  • iOS代码混淆工具推荐:IPA Guard详细介绍
  • Vue检测数据的原理
  • 队列的运行算法
  • KVM/qemu安装UOS 直接让输入用户密码
  • 画一条0.5px的线、设置小于12px的字体、解决 1px 问题
  • Unity中Shader的深度写入ZWrite
  • Jetson nano 系列之7—jetson 通过rtp将视频发给远程host
  • 有哪些值得推荐的优秀 HTMLCSS 网站前端设计的网络资源(博客、论坛)?
  • RTSP/Onvif安防视频平台EasyNVR级联至EasyNVS系统不显示通道,是什么原因?
  • 点云处理【三】(点云降采样)
  • GB/T 41510-2022 起重机械安全评估规范 通用要求 摘要
  • 【vr】【unity】白马VR课堂系列-VR开发核心基础05-主体设置-手柄对象的引入和设置
  • UE5发布Android屏幕适配实践(Blueprint)
  • Spanner: Google’s Globally Distributed Database
  • Java基础——了解进制和位运算
  • mybatisplus 自定义mapper加多表联查结合分页插件查询时出现缺失数据的问题
  • 陪诊系统|陪诊软件革新陪诊体验解决病患难题
  • [Tkinter 教程08] Canvas 图形绘制
  • ES6 Symbol 数据结构