scara机器人工作空间里任意方向下的边界点

  关于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 )z0 ,则点 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)距离最短的点则为所求边界点。
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/maple_2014/article/details/104933911