我想实现逆运动学,我理解逆雅可比方法,但是伺服系统的范围只有-90到+90度,如何在算法中实现这一细节?如果计算出的角度在约束之上/之下,我不能简单地将每个关节设置为其最大/最小,因为如果我这样做,以后的计算将无法理解最大角度不是正确的路径

评论

您的手臂有多少自由度?

4Dof +手腕旋转和爪子打开/关闭,我将完全分开控制。因此,关于IK,只有4DOF。第一个自由度设置XY平面上的底角,后三个角设置Z高度

安装在旋转基座上的平面3连杆臂? (图片会有所帮助)。

对,那是正确的。基座旋转-90至90,第一段安装在旋转基座上并面向+ Z,以便可以有效地将0旋转至pi,第二段和第三段安装面向+ X以便它们可以将-90至90旋转。我将尝试绘制图片,但此处是指向实际机器人的链接:ae01.alicdn.com/kf/HTB12Q9VPpXXXXX7XVXXq6xXFXXX7/…

#1 楼

逆运动学(IK)求解器需要了解关节边界,以便始终在允许的范围内提供可行的解决方案。

在文献中,本质上有两种方法可以解决约束问题。 IK以一种原则性的方式:


梯度投影方法,该方法利用Jacobian的零空间建立次要任务,该任务试图使关节远离约束,同时收敛到关节。解决主要任务。参见例如[1]。您可以求助于KDL之类的工具。
非线性优化技术可以固有地处理有限的搜索区域,因此证明其性能优于其他方法。如今,计算资源如此丰富,这些要求苛刻的技术甚至可以实时运行。参见[2],[3]和[4]。实现此方法的工具例如是TRAC-IK,iKin(可使用教程)和iDynTree。


参考文献

[1]H.-Y。 Lee B.-J. Yi,Y。Choi,“一种用于运动冗余机械手的逼真的联合极限算法”,IEEE国际
控制,自动化和系统会议,2007年。

[2] P 。Beeson,B. Ames,“ TRAC-IK:用于改进通用逆运动学解决方案的开源库”,IEEE-RAS人形机器人国际会议,2015年。

[3]美国。 Pattacini,F。Nori,L。Natale,G。Metta和G.Sandini,“一种针对类人机器人的新型最小跳动直角坐标系控制器的实验评估”,IEEE-RSJ国际智能机器人和系统会议,2010年。 />
[4] https://robotics.stackexchange.com/a/10008/6941

#2 楼

它取决于您的设计,您有多少个关节,
所有运动都可能在180度内发生/取决于您想要的工作空间
,请说一下末端执行器的ax,y,z点,您可能有多个角度,但到达同一路径的路径不同,对于一个点,每个关节可能有多个角度集。您可以使用极限来选择一组角度不超过180度的角度,但是如果无法达到某个点,除非您需要角度大于90 / -90则不能去那里,因为我说它取决于您的工作空间和设计
也要从奇点了解,

评论


$ \ begingroup $
控制第一段高程的第二个关节的放置方向使其可以达到0到pi。如果将其与第一段角度的-90至90度结合使用,则应该可以到达所有位置。在半径为(l1 + l2 + l3)的半球中,其中l是线段长度。我只是不知道如何修改算法
$ \ endgroup $
–spetty flakson
17年7月26日在14:17

#3 楼

从注释中可以看出,您有一些冗余机制是要跟踪3D位置,如果您还想跟踪方向,则只能使用非冗余机制。
这意味着在第一种情况下,您可能有几种满足您所需位置的IK解决方案,然后可以选择一种不违反执行器约束的解决方案。在第二种情况下,如果IK违反了执行器约束,则意味着您不在工作区中。

典型的方法是在笛卡尔空间中计算手臂的工作区,然后所需的位置(有或无方向),您可以检查该点在您的工作空间中,如果找不到该点,则在该工作空间中。
然后,针对该点,有一个IK解决方案不违反您的致动极限。
一旦从IK获得解决方案,您还应该检查自碰撞,或将其包含在工作空间描述中。