我一直在阅读有关非完整移动机器人(如差动轮式机器人)的运动学模型。到目前为止,我发现的所有文章都为正向运动学问题提供了合理的解决方案。但是,当涉及到逆运动学时,他们会争论不休,因为对于每个可能的目标姿态都存在无限解,或者在诸如$ [0 \ quad 1 \ quad 0] ^ T $的情况下(因为机器人不能横向移动)完全没有。然后,他们提出了一种方法,该方法基于一系列直线运动和就地转弯交替驱动机器人。在平稳的转弯同样可行的情况下,使机器人在每个转弯点都进行完全停止似乎效率低下且不明智。同样,有些观点“无法达到”的说法似乎具有误导性;可能存在一种非完整的移动机器人无法通过在有限的时间内保持一组参数来达到的姿势,但是很明显,如果我们根据某些程序随时间改变参数,并且没有障碍,那么它应该能够来达到任何可能的姿势。

所以我的问题是:轴半长为$ l $,两个半径为$ r $的两个轮子的两轮差动驱动机器人的逆运动学模型是什么速度可调整的$ v_L \ ge 0 $和$ v_R \ ge 0 $(即没有原位转弯),并且鉴于我们想最小化速度的变化次数?

评论

我认为这是相关的:robotics.stackexchange.com/questions/2604/…

问题是相似的,是的,尽管我对正在寻找的解决方案进行了较窄的描述。同样,我也看不出被接受的解决方案(纯追踪)如何在任何两个姿势之间产生一条路径:据我所读,它仅与运动方向有关,而与机器人在目标点的方向无关。

#1 楼

虽然可能存在逆运动学解决方案,但是您的文本避免该问题的最可能原因是因为这种事情更自然地落在AI和路径规划领域。

在最简单的情况下,您应该看看Dubins路径。平衡约束,例如转弯半径,最大速度等,可以带您从无限解决方案到非常合理的可能运动集。给定一组姿势,您可以根据自己喜欢的任何成本函数来计划它们之间的杜宾斯路径。 />转弯半径:汉密尔顿-雅各比方法。

#2 楼

如果我理解正确,那么您想了解如何控制两轮差速驱动机器人,以便在达到所需的最终方向的同时实现平稳/优雅的驾驶-这就是停车问题。伊恩(Ian)提出了一种解决问题的AI方法,这很有趣,但是如果我不插手控制理论的观点,我将不予理.。

因为两轮差速驱动机器人是经过充分研究的在机器人平台上,我们可以从动力学模型中确定控制律。差速驱动机器人可以采用以下形式的单轮动力学建模:$$ \ dot {z} = \ left [\ begin {matrix} \ dot {x} \\ \ dot {y} \\ \ dot {\ theta} \ end {matrix} \ right] = \ left [\ begin {matrix} cos(\ theta)&0 \\ sin(\ theta)&0 \\ 0&1 \ end {matrix} \ right] \ left [\ begin {matrix} v \\\ omega \ end {matrix} \ right],$$,其中$ x $和$ y $是机器人的直角坐标,而$ \ theta \ in(-\ pi,\ pi] $是机器人之间的夹角方向和$ x $轴输入向量$ \ left [v,\ omega \ right] ^ T $由线速度和角速度输入组成。

您提到的停车问题在您的评论中已进行了广泛的研究。二维环境中的差动轮式机器人的平稳运动平稳控制律提出了一种可能的解决方案。

跟踪轨迹的另一种解决方案是控制点,完整的,与两个轮子的中心相距很小的距离$ l $,而不是直接控制独轮车机器人。为此,我们可以得出以下结论:旋转矩阵将机器人的控制律转换为该点的控制律:$$ \ dot {p} = \ left [\ begin {matrix} \ dot {p_x} \\\ dot {p_y} \ end { matrix} \ right] = \ left [\ begin {matrix} \ text {cos}(\ theta)&-l \ text {sin}(\ theta)\\\ text {sin}(\ theta)&l \ text { cos}(\ theta)\ end {matrix} \ right] \ left [\ begin {matrix} v \\\ omega \ end {matrix} \ right] $$

$ \ dot {p} $是被控制点的速度,它被分解为其$ x $和$ y $分量。至此,控制相当简单,直接控制即可!设置$$ \ dot {p} = u = r(t),$$完成此操作,其中$ u $是输入,而$ r(t)$是所需的参考轨迹;这将实现沿轨迹的平滑移动。

评论


$ \ begingroup $
这是逆运动学。运动学是对系统物理布置的研究,不考虑力或动力学。也就是说,如果将关节移动某个角度$ \ theta $,那么在其他点会产生多少平移和/或旋转?反向运动学则相反-在另一点实现所需的平移或旋转需要多少关节角$ \ theta $?或者,在这种情况下,要达到所需的轨迹需要多少轮速?您几乎(但不完全是)答案。
$ \ endgroup $
–卡盘
16年6月20日在18:32

$ \ begingroup $
在公式中,您给出$ \ dot {p} = [A] [v] $,控制输入为$ u = \ dot {p} $。好吧,运动学关系$ [A] $是正弦/余弦和轴距$ l $起作用的地方,因此,要获得要发送到系统的线性和角度输入,必须采用运动学的逆矩阵$ [A] $以获得逆运动学方程$ [v] = [A] ^ {-1} u $。
$ \ endgroup $
–卡盘
16 Jun 20'18:35