王露,蒋恒新,闫潇乐
重庆交通大学,重庆,400074
如今工业机器人的技术发展迅速,依靠人工来完成的工作大多被工业机器人所承担,因此移动机器人的研究已经从工业生产上不断地向我们的日常生活领域转换[1]。由于ROS系统具有快速开发的特点,因此在许多方面都得到了应用,ZAMAN等人[2]实现了机器人即时定位和地图构建的功能,KERR等人[3]实现了仿真机器人等。助老服务机器人主要包含有感知环境的系统、运动控制系统以及语音控制系统等,通过这些系统的互相联动,才能搭建一台较为理想的助老机器人。搭建助老服务机器人的本体最主要的就是设计机器人的机械结构,该部分不仅可以决定机器人的运动速度,还影响着机器人运动的范围及运动的可靠性,是移动机器人能否实现设计目标的关键。自主导航技术作为移动机器人的研究核心,是指机器人通过激光雷达所感知到的环境信息和自身的位置,实现姿态间的自主移动,在移动过程中还可以合理地避开障碍物[4]。本设计采用多传感器来对室内的环境进行感知,包括激光雷达、双目摄像头等,通过多个传感器的融合,机器人便可实现室内自主导航的目的。本设计还充分考虑了机器人的各项用途及各部分功能的实现,对机器人本体进行了不断的改进与完善,成功搭建了助老服务机器人。通过实验验证,该机械结构能够保证各功能部件之间良好运作,确保了机器人在室内运行的安全性及稳定性。
本设计采用以树莓派4B(Raspberry Pi 4B)为核心芯片的控制电路。树莓派4B具备1.5GHz运行的64位四核处理器,最高支持以60fps速度刷新的4K分辨率的双显示屏,高达4GB RAM,2.4/5.0GHz双频无线LAN,蓝牙5.0/BLE,USB3.0和POE功能。
本设计采用STM32F103RCT6的控制电路。该单片机为32位CPU,片内带有两个无源振荡器,主频晶振为8MHz,可倍频至72MHz,RTC晶振为32.768kHz。同时该单片机拥有84个中断,包括16个内核中断和60个可屏蔽中断,具有16级可编程的中断优先级。该芯片共有8个定时器,包含2个高级定时器、4个通用定时器和2个基本定时器。STM32控制器实现的主要功能是采集里程计信息、采集陀螺仪信息和电机控制。STM32控制器将实现ROS主控发送过来的目标速度并且给ROS主控去提供运动底盘的传感器的信息,包括里程计信息、IMU和电池电压数据。
本设计采用HWT101旋转姿态角度传感器,该模块集成高精度的水晶陀螺仪传感器,采用高性能的微处理器和先进的动力学解算与卡尔曼动态滤波算法,能够快速求解出实时运动姿态。模块内部集成了姿态解算器,稳定性极高,内部自带电压稳定电路,工作电压3.3~5V,引脚电平兼容3.3V/5V的嵌入式系统。支持串口和IIC两种数字接口。串口速率2400~921600bps可调,IIC接口支持全速400K速率,最高500Hz数据输出频率。保留4路扩展端口,可以分别配置为模拟输入、数字输入、数字输出和PWM输出等功能。具备GPS连接能力,可接受符合NMEA-0183标准的串口GPS数据,形成GPS-IMU组合导航单元。
本设计助老服务机器人的控制程序中有多个运动状态控制函数,可实现对该助老服务机器人的位置姿态控制。机器人底盘配备有两个减速比为1:56的带编码器直流减速电机,既能够控制移动机器人的行驶距离,还可以控制机器人运行的速度。机器人运动底盘如图1所示。
本设计采用了万向轮为从动轮,万向轮的一大优点就是灵活、控制简单且可靠。利用万向轮可以克服麦克纳姆轮的缺点,而且也不会打滑,机器人便可在室内完成各种形式的运动。轨迹跟踪控制是轮式机器人的一个典型任务,轨迹跟踪控制不仅具有空间位置要求,同时还具有时间要求, 即机器人要在规定的时间内到达指定位置, 使机器人跟踪一条以时间为参数的轨迹[5]。
本文设计的移动机器人主要由控制系统、感知系统及驱动装置三部分组成。控制装置主要包括树莓派主板和STM32主板,树莓派主板和STM32之间采用串口来进行通信。STM32驱动板通过接收树莓派ROS操作系统的运动控制信息,经过一系列的算法,将运动控制信息转换成PWM波,以此来控制电机转动,使机器人移动到室内的任意位置。图2为本设计的移动机器人系统框架图。
考虑到室内场所的要求和机器人的重心等问题,本文设计的移动机器人采用可以在平地平稳前进的轮式底盘。该底盘配有两个万向轮作为从动轮,在有转向要求时,可以帮助移动机器人快速且准确地移动。移动机器人硬件分为上下四层:第一层安装有双目摄像头、激光雷达和环形六麦克风阵列,第二层为航模电池等设备,第三层安装树莓派主板和各类传感器,第四层安装STM32驱动板。电源采用11.1V航模电池,经USB、LM2596S稳压等给机器人供电。两轮差分底盘编码器电机经TB6612FNG电机驱动与STM32连接,实现闭环控制。单片机通过串口数据线与树莓派通信。激光雷达、麦克风阵列放置于机器人本体的顶层,以防车体本身干扰。所有供电模块通过急停按钮控制,便于人为地处理一些突发的紧急情况,使机器人能够紧急停止工作。
表1 主要硬件型号及参数
本设计采用Gmapping功能包来进行自主导航。在路径规划中采用了Navigation功能包,该功能包首先得订阅laser_scan话题,此话题含有激光雷达的深度信息,同时树莓派主板接收底盘传输上来的里程计信息,运用Rao-Blackwelllized粒子滤波算法,经过了一系列参数的调整,就可以输出二维栅格地图,从而完成室内各个区域地图的构建。
本设计移动机器人进行自主导航时,移动机器人首先会通过全局的路径规划,在室内构建的地图中计算出一条从当前位置到目标位置的最为理想的行径。实际上机器人在室内进行移动时,移动方向会与操作者下发的指令存在一些偏差,这时本地路径规划器会将全局路径分成块,分块控制移动机器人的位置和姿态,使之在局部切合全局路径的计划。通过将全局路径设计和局部路径设计互相联系的方式,机器人就可以实现自主导航的目的。在本设计中,局部路径规划算法采用DWA算法。在ROS系统中,当move_base处在规划的时刻时,通过调用DWA算法,便可以计算出一条最佳的速度命令,将这条命令发送给机器人运动底盘执行。利用DWA算法,首先要确定机器人的运动模型,然后要对机器人进行速度的采集,通过获取机器人的多组速度,采用速度评价函数对每个速度所生成的轨迹进行评价,就可以计算出机器人在室内移动的确切轨迹。
本设计采用思岚激光雷达YDLIDAR X2L,利用三角测距这一原理,实现了高精度的距离测量。在测距的同时,机械结构会进行360度的扫描,不断地获取移动机器人的角度信息,最终实现扫描环境的云数据的输出。X2L采用3.3V电平串口(UART)实现通信,可以依照系统的通信协议进行通信,以此来得到扫描的点云数据、设备信息和设备状况,并可设置设备工作模式等。X2L自带电机调速功能的电机驱动器,外设可通过接口中的M_SCTR管脚输入控制信号对X2L的电机进行控制。M_SCTR为电机速度控制信号,可电压调速,也可以PWM波调试,电压越低/PWM占空比越小,电机的转动速度越高,占空比为0%时速度最大。
语音控制是利用科大讯飞六麦克风阵列进行声音信号的采集,然后再利用讯飞评估板对语音进行过滤,通过离线命令词识别的方法将信号转换成文字,以文字的形式返回。操作者可通过语音交互这一功能对机器人进行提问,问题主要涉及室内的环境状况、机器人自主检测展厅内的温湿度及二氧化碳情况,语音播报其含量,通过USB免声卡驱动连接喇叭来反馈操作者的提问。当机器人在室内任意环境中被操作人员呼唤,机器人能够语音识别并做出相应的反应。同时还可以通过语音对机器人进行控制,如启动、停止、对话等。
由于移动机器人底盘使用了驱动轮及万向轮,机器人本体采用了四层阳极氧化铝合金板及铝型材为主要结构,因此该设计能够保证移动机器人在室内的任意位置稳定地行驶,同时当机器人有转向要求的时候,可以通过控制底盘进行360度的旋转。该机械装置为机器人提供了可靠的工作条件,保证了各层设备的良好运作能力。本设计机器人主要是实现自主导航的功能,机器人通过自主路径规划可以实现在室内任意区域自主移动。老人行动不便时,通过手势或者语音对机器人发出指令,机器人通过自主导航的方式到达指定位置,做出相应的动作。
移动机器人是一个较为复杂的自动化系统,涉及机械结构、自动控制、通信控制、传感器信息融合及电源技术等多个领域,而机械结构是移动机器人这一复杂系统的基础结构,同时机械结构也决定了移动机器人是否能够正常投入使用。本设计基于整体结构的布局与控制,借鉴了各类移动机器人的机械结构,在此基础上进行了不断的创新与改进,完成了助老机器人的设计。同时铝合金板及铝型材支撑柱增加了移动机器人外壳的强度,能够较好地保证移动机器人的使用期限。结果表明本设计的移动机器人可满足语音控制、自主导航等功能,能够较好地实现助老服务的目的。