a) 在某一定位时刻a、b这2点能够同时检测到3个参考点的信号(地面是平的,进行平面二维定位时只需2个信号),就用红外超声绝对定位方法计算移动小车的位置,计算出它们中点的位置(即移动小车的位置),并根据前一时刻a、b这2点的坐标、2个轮子间的固定距离判断出轮子相对于所建坐标系的运行方向。
b) a、b中只有1点能够同时检测到3个参考点的信号,则根据前一时刻a、b这2点的坐标、光电编码器测得2个轮子的移动距离长短比较、2个轮子间的同定距离计算出移动小车的位置和运行方向。
c) a、b这2点都不能同时检测到3个参考点的信号,则根据前一时刻a、b这2点的坐标、2个轮子的固定距离、光电编码器测得2个轮子的移动距离计算出小车的坐标和运行方向。
下面给出第2种情况的求解方法,见图3。通过比较光电编码器所测2个轮子的移动距离,可得出小车向移动距离短的轮子一侧转弯,已知红外超声测得的a′、b′、b点的坐标,2个轮子的间距d,线段aa′和bb′平行,ab和小车的运动方向垂直,根据几何知识可以求出a点的坐标和小车的移动方向,其他情况亦然。
a) 超声波信标节点不断向外发射红外和超声波信号,每个节点的红外与超声波信号编码相对应,并且与其他节点的信号编码不同。
b) 普通节点每隔1 s(可以改变,但不能太长,否则小车出现拐弯时运行轨迹可能不平行)进行一次定位,主控制器通过串口向各个单元发出定位信号并启动内部定时器,延时100 ms后依次读取8个超声测距单元所测得的a、b这2点到参考点的距离信息和2个光电编码器测距单元记录的位移信息,计算出移动小车的位置和运行方向。定时器定时到1 s后重复此过程。主控制器的软件流程如图6所示。
c) 2个光电编码器测距单元初始化后立刻开始记录轮子的位移,串口收到定位信号后,将记录的位移信息存到指定位置,等待主控制器读取,并从0开始继续记录位移情况。