关于scara机器人工作空间的绘制详见另外一篇博文:绘制scara机器人工作空间。
给定工作空间里任意一点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)及运动方向 s ⃗ \vec{s} s ,怎样确定该点在该方向上的边界点?如下图,过点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)且与 s ⃗ \vec{s} s平行的直线与四个圆有8个交点, P 2 P_2 P2为所求的边界点。事实上,对于给定工作空间里任意一点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)及运动方向 s ⃗ \vec{s} s,至多与以下4个圆有8个交点,至少有1个交点(即相切)。
可以这样确定scara机器人工作空间里任意方向下的边界点:
(1)依次求直线与4个圆的交点。
(2)筛选掉在 s ⃗ \vec{s} s反方向上的交点。设 a ⃗ \vec{a} a与 b ⃗ \vec{b} b为同一直线上的两向量,若 a ⃗ ⋅ b ⃗ > 0 \vec{a} \cdot \vec{b}>0 a⋅b>0,则 a ⃗ \vec{a} a与 b ⃗ \vec{b} b同向,否则反向。如上图,点 P 1 P_1 P1在 s ⃗ \vec{s} s的反方向上,应剔除。
(3)筛选掉不在当前手系下对应的圆弧段上的点。如下图,直线 Q M QM QM交圆于 Q Q Q ,由于叉乘 z z z方向分量 ( C 2 M ⃗ × M B 2 ⃗ ) z ≥ 0 (\vec{C_2M} \times \vec{MB_2})_z\geq0 (C2M×MB2)z≥0 ,则点 M M M为边界点,由于叉乘 z z z方向分量 ( C 2 Q ⃗ × Q B 2 ⃗ ) z < 0 (\vec{C_2Q} \times \vec{QB_2})_z<0 (C2Q×QB2)z<0,则点 Q Q Q不是边界点。
(4)在剩下的交点中,与点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)距离最短的点则为所求边界点。
scara机器人工作空间里任意方向下的边界点
猜你喜欢
转载自blog.csdn.net/maple_2014/article/details/104933911
今日推荐
周排行