保真度变化的模型是受欢迎的。这包括非线性模型以及线性化模型。
#1 楼
这里没有很多信息。让我们将轮子固定为相距距离$ b $,每个轮子相对于连接它们的直线都有方向$ \ theta_i $。然后假设每个车轮可以以角速度$ v_i $独立驱动。如果车轮是独立驱动的,但方向固定,$ \ theta_1 = \ theta_2 = 90 ^ \ circ $,则可能会出现差动驱动(油箱踏板)。
值得注意的是,假设车轮不垂直于其方向滑动,则可以在很短的时间内给出固定的速度指令,以封闭形式解决机器人基座的运动与机器人在软件控制下)。 iCreate就是这样的平台,较小的先驱者也是如此,Clearpath的Husky也是如此。
用于这些事物的常用模型是:
$$ v_b = \ frac {1} {2} \ cdot(v_1 + v_2)$$
$$ \ omega_b = \ frac {1} {b}(v_2-v_1)$$
对于固定的时间增量$ \ delta t $,您可以找到方向的变化以及使用这些变化的直线距离。请注意,机器人在此时间窗口内沿圆周行驶。沿圆的距离正好为$ \ delta t \ cdot v_b $,圆的半径为$ R = \ frac {b} {2} \ cdot \ frac {v_1 + v_2} {v_2-v_1} $。足以插入以下方程式:圆弧段-尤其是弦长方程式,它描述了机器人距其原始位置的距离。我们知道$ R $和$ \ theta $求解$ a $。
因此,假设机器人以方向$ 0 $开始,位置为$(0,0)$,并沿时间窗口$ \ delta t $移动,速度为$ v_1 $(左轮)和$ v_2 $(右轮),其方向将为:$$ \ theta_1 = \ frac {\ delta t} {b}(v_2-v_1)$$,位置为:
$$ p_x = \ cos \ left(\ frac {\ theta_1} {2} \ right)\ cdot \ left(2 R \ sin \ left(\ frac {\ theta_1} {2} \ right)\ right)$$
$$ p_y = \ sin \ left(\ frac {\ theta_1} {2} \ right)\ cdot \ left(2 R \ sin \ left(\ frac {\ theta_1} {2} \ right)\右)$$
请注意,由于$ v_1 \至v_2 = v $,限制为
$$ p_x = \ delta t \ cdot v $$
$$ p_y = 0 $$
按预期。
更新原因?。
重新排列$ p_x $以便:
$ $ p_x = cos \ left(\ frac {v_2-v_1} {2b} \ right)
* 2 * \ left(b \ frac {v_1 + v_2} {2(v_2-v1)} \ right)
* sin \ left(\ frac {v_2-v_1} {2b} \ right)
$$
$$ p_x = cos \ left(\ frac {v_2-v_1} {2b} \ right)
* \ frac {(v_2 + v_1)} {2} * \ frac {sin \ left(\ frac {v_2-v_1} {2b} \ right)}
{ \ frac {v_2-v_1} {2b}}
$$
现在请注意,我们有三个限制,即$ v_2 \ rightarrow v_1 $。
$$ cos \ left(\ frac {v_2-v_1} {2b} \ right)\ rightarrow 1 $$
$$ \ frac {(v_2 + v_1) } {2} \ rightarrow v_1 == v_2 $$
$$ \ frac {sin \ left(\ frac {v_2-v_1} {2b} \ right)}} {\ frac {v_2-v_1 } {2b}}
\ rightarrow 1 \ text {(请参见sinc函数)} $$
这在Internet上都涉及,但是您可以从这里开始:http:// rossum .sourceforge.net / papers / DiffSteer /或此处:https://web.cecs.pdx.edu/~mperkows/CLASS_479/S2006/kinematics-mobot.pdf
如果车轮未固定方向,因为您可以改变速度和方向,所以变得更加复杂。从这个意义上讲,机器人可以变得完全完整(可以在平面上的任意方向和方向上移动)。但是,我敢打赌,固定方向会导致您得到相同的模型。
还有其他两个车轮模型,例如自行车模型,可以很容易地想到设置速度,并且只有改变一个方向。
那是我目前能做的最好的事情。
评论
$ \ begingroup $
也许我有点迟了,但是如果v1 = v2,为什么看不到Px = dt * v。因此,我们有sin(theta / 2)作为乘法的一部分,因此当v1 = v2-> theta = 0时,我们得到sin(0/2)= 0,结果Px =0。我缺少什么?
$ \ endgroup $
–长史密斯
17年3月16日13:18
$ \ begingroup $
实际上,如果$ \ theta \ neq 0 $,则只需使用等式。为了回答您的问题,我已经更新了答案。
$ \ endgroup $
–乔什·范德·胡克(Josh Vander Hook)
17年4月30日在19:12
#2 楼
如果您真的想深入研究数学,这里有一份开创性的论文,它对轮式机器人的大多数模型进行了统一和分类。评论
$ \ begingroup $
很抱歉,在StackExchange上不建议仅链接的答案。您是否可以将该链接的内容压缩为几段,并保留在此处(当然,还有实际的链接)。这有助于防止链接腐烂。
$ \ endgroup $
– Manishearth
2012年11月25日13:09
$ \ begingroup $
当然,我本周有足够的时间会尽快这样做。抱歉,我并不了解此政策,并认为该链接将是非常有用的。
$ \ endgroup $
–georgebrindeiro
2012年11月26日,下午3:16
$ \ begingroup $
优秀论文-感谢您的链接!也是一个漫长的周末:-)
$ \ endgroup $
– uhoh
17年9月21日在3:45
#3 楼
答案很简单,但其他答案却使动态模糊。 } \\ \ 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 $由线性和角速度输入组成。评论
$ \ begingroup $
-1这仅仅是不同坐标之间的转换。它根本没有按照问题的要求来模拟机器人的动力学。其他答案的“混淆”是因为它们考虑到要控制两个轮子而不是一些抽象输入向量。这样的向量可以是问题中所要求的模型的结果。
$ \ endgroup $
–弯曲单元22
16年6月17日在17:44
$ \ begingroup $
我提出的模型满足了提示,并增加了讨论的范围,实际上是非完整差速驱动机器人动力学模型(尽管不一定是两轮驱动的,这是一种优势) )。尽管输入速度矢量(也称为扭曲)可能是一种抽象,但对于许多两轮平台来说,使用扭曲输入是标准的。但是,这确实突出了以下事实:状态空间表示是任意的。控制车轮速度是控制车轮转矩的一种抽象,而车轮转矩本身就是控制电动机电流的一种抽象。
$ \ endgroup $
–JSycamore
16年6月20日在13:42
评论
这个问题似乎很广泛。如果将“运动方程式”链接到描述其含义的Wikipedia文章(例如),这将有所帮助。另外,您应该更具体地指定机器人。例如,有无源轮吗?两个轮子的类型是什么?等自行车风格还是赛格威风格?您应该更具体。