2.1 加速度计传感器
判定机器人姿态的传感器有陀螺仪和加速度计等传感器,由于陀螺成本较高,而DF-1机器人在运动变化上较为缓慢,故本文采用了成本较低的加速度计来感知机器人的姿态。加速度计是物体运动测试中的重要元件,它的输出与物体的加速度成比例。传感器系统所采用加速度计的具体型号为AD公司生产的双轴加速度计ADXL202。ADXL202具有两种输出,一种是从XFILT和YFILT引脚输出模拟信号;另一种是直接从XOUT和YOUT引脚输出经调制后的DCM信号。在具体使用中,选用了加速度计的DCM信号输出,这样就可省去使用模拟信号需要引入的A/D转换环节,简化了电路设计难度。
2.2 超声传感器
用来测距的传感器主要有红外传感器、超声波传感器、激光测距仪等,为了能在测量距离的同时判断出物体的大致形状,应设计成多传感器测距系统。考虑到机器人的安装空间以及成本问题,主要选用了超声波传感器进行距离的测量。
超声波传感器主要用来完成机器人到周围障碍距离信息的测量,超声波在测距过程中存在多次反射问题,即超声波遇到障碍物体时,没有沿着原路返回发射接收点,而是经过多次反射后才返回发射接收点,这样测量到的距离信息不再真实,情况严重时会“丢失”目标。本文选用DEVANTECH公司生产的SFR05。SFR05的体积小,信号稳定,便于在机器人中安装,而且SFR05的测量距离为1 cm~4 m,在最小测量距离上可认为该传感器不存在盲区。
2.3 红外传感器
为了弥补超声传感器在测距中多次反射的问题,在超声波相对应的位置安装了三个红外测距传感器。当超声波传感器测量的距离远远大于同方向上红外传感器测量的距离时,可以据此推断出超声波已经进行了多次反射,并用红外传感器测量的距离信息来取代超声波传感器的信息。本文使用的红外传感器为SHARP公司生产的GP2D12,可测距离为10~80 cm。GP2D12加上电源就可工作,输出电压为0.3~2.8 V。GP2D12传感器在测量距离时受外界光强度、物体外表反射率及物体颜色的影响较小。
3 软件实现
传感器系统数据采集与处理单元采用ARM9微处理器,主要完成以下功能:实现对加速度计的控制和加速度的测量,并根据加速度值,计算机器人的倾角;实现对超声波传感器的控制,完成距离信息的计算;实现对红外传感器的控制,完成距离信息的获取;对获得的倾角、超声波测距和红外测距数据,按照规定的通信协议发送给上位机,程序主流程如图3所示。
程序首先要初始化,主要包括系统时钟的选择、管脚的分配、中断优先级、定时器时钟和工作方式的选定等。在ARM9内部资源中,具有PCA定时器单元和A/D单元,这些方便了对本传感器系统的数据采集。防止超声波传感器之间发生串扰,对超声波传感器采用轮流测量的方式。由于超声波传感器的工作周期为50 ms,当工作时间少于50 ms时,超声波传感器会误认为下次测量发送超声波产生的干扰为本次的回波,造成距离测量上的失真,而红外传感器建立电压的时间只需要5 ms,所以在编程上,利用定时器0产生50 ms延迟,依次对3对超声波传感器和红外传感器进行数据采集。由于加速度传感器和红外、超声传感器之间是独立的,而且数量只有一个,它的采集过程只依赖于PCA捕捉模块捕捉到的时刻,所以加速度计信息的采集和预处理工作可贯穿于150 ms以内。在完成对传感器系统的信息采集和预处理后,还要将获取的数据发送给上位机,为上位机的决策提供必要的数据。