我正在寻找一种方法来限制机器人的运动范围,它使用了复杂的约束条件,例如不撕裂连接到机器人的电缆。连接的电缆(红色),固定在X点(在A4轴之前)和Y点(在A6轴之后)。机器人。它只能拉伸和弯曲到一定程度,但是像A4轴完全旋转360°一样,所有其他轴都保持在图中的位置,它将束缚电缆并将其撕裂。
如果关节A5处于0°,则A4和A6仍然可以移动整个360°,但是它们彼此之间的分叉不能太大,否则会扭曲电缆。如果A5倾斜,则关系变得更加复杂。

如何表达这样的约束?

这不是一个简单的关节约束,您可以在其中独立限制关节的范围,它也不是位置约束,您可以在其中定义机器人不得进入的区域。检查起点和目标姿势是不够的,因为沿从起点到目标姿势的路径,仍然可能存在会给电缆施加太大压力的姿势。一组预先测试的路径,如何将机器人限制为不会剥夺电缆的运动?

用于此类问题的标准技术是什么? >

评论

与其尝试对其建模,不如将电缆布置为使其穿过每个旋转轴,这样更好,这样,只要您为每个轴分别留出足够的松弛度,就可以为任意轴组合留出足够的松弛度。或者,检查您是否无法获得更柔软的高级电缆,或者甚至用一组更柔软的(甚至是盘绕的)电缆代替整体式不挠性电缆。

我使用SolidWorks进行了类似的模拟:youtube.com/watch?v=crJXUlzJ918

#1 楼

我不确定“标准技术”是什么,但是这里有一些想法。

您可以结合基于标准雅各布的正向运动学作为基础,然后在您偏见的地方应用梯度搜索算法应对诸如电线松弛或其他约束之类的问题。

让我再详细一点。通常,您只需给机械臂一个终点,或者可能是您希望末端执行器遵循的一系列方式即可。然后,您可以使用正向运动学在这些航点之间移动末端执行器。为了避免难以描述的约束,您可以定义一个值函数,该值会随着臂的移动而增加,并减少导线上的松弛。

如果您猜测一条路径,最有可能的是您最初的猜测会导致导线被卡住。您的价值功能将为您提供代表这一事实的分数。然后,您可以在航点之间进行调整,并对其进行一些微调,这可能会导致函数重新设置约束以减少约束。然后,您可以对其进行一些调整,以进一步减少它。

这称为优化,这是一个巨大的领域,但最基本的方法是“梯度下降”。从理论上讲,如果您使用优化方法来调整航路点,最终您会发现一组航路点,可以将沿导线的拉力降至最低。优化的主要问题是,您会遇到无法充分解决问题的局部最小值,而绕过局部最小值的方法可能会很慢。

如果您希望对此有所了解您可能需要研究此处介绍的算法。请记住,对于您的问题可能没有简单的答案,也没有解决问题的简单算法。

#2 楼

电缆具有一定程度的松弛度,并且电缆所经过的每个接头都会根据接头角度吸收一部分松弛度。如果所有关节吸收的松弛量超过可用的松弛度,电缆就会断裂。

首先,如果您可以使电缆沿着机器人穿过每个关节,这样会有所帮助。对松弛有可估计的影响,并且每个接头独立地影响电缆。这将确实有助于计算。让我们通过以下方式定义关节1以角度th1吸收的松弛量:

f1(th1)


现在,您的机器人手臂可以移动到任何位置,从而使

f1(th1) + f2(th2) + ... + f6(th6) <= total_slack


这是假定电缆已固定,可以在机器人手臂上上下滑动,从而将松弛部分分配到需要的地方。通常,在大多数机器人中不是这种情况,而且也不容易做到。

解决此问题的一种更可靠的方法是在每个关节前后牢固地固定电缆,并确保每个关节都有足够的松弛度。

#3 楼

不要在软件中修复它。将其固定在机械线束设计中。如果尝试使用软件进行操作,则机器人将不可避免地自行断裂。即使电缆从未超过极限,使用这种电缆也会很快磨损。

试图共享接头之间的松弛会要求电缆滑动,这会随着时间的流逝损坏电缆。接近整体极限时,通过反复摩擦电缆并使其绕紧半径弯曲。共享松弛部分意味着您必须松散地连接电缆,这会使电缆容易松动,鼓励您留出更少的松弛部分。

相反,将电缆固定在机器人的每个部分上并分别对待每个关节。在每个接头的整个运动范围内,确保电缆弯曲半径大于其直径的10倍(越大越好)。如果这需要一个较大的环,则可以使用链条电缆导向器(看上去有点像宽塑料自行车链条),以防止其妨碍其他部件的活动。

评论


$ \ begingroup $
对不起,Theran,但这个答案实际上并没有回答问题,这就是为什么我保留类似建议作为评论的原因。
$ \ endgroup $
– Mark Booth♦
2012年11月15日,0:33