梁 帅, 朱松毅, 周涵巍, 石 尚, 黄梅涛, 张执南*,
(1.上海交通大学 机械与动力工程学院,上海 200240,E-mail: robot-dreamer@sjtu.edu.cn;2.上海交通大学 航空航天学院,上海 200240;3.上海交通大学 电子信息与电气工程学院,上海 200240)
多机器人系统是一类面向科学前沿、多学科交叉的技术集成平台,在工业制造、仓储物流、侦查监控和应急救灾等应用领域展现出单个机器人无可比拟的优势,由于其独特的优势和广泛的用途,其在学术研究上的热度逐年攀升[1]。多机器人协作中呈现的简单、分布式的特征使其比单个机器人更具鲁棒性[2],可以执行远超出单个机器人能力的任务,效率也显著提高[3]。
为了将多机器人变为现实,研究者付出了巨大的努力。瑞士洛桑联邦理工学院开发了Alice机器人,作为移动机器人的定位和导航、半自主操作控制策略的研究平台[4],后来又开发了S-bot机器人,通过夹具相互连接共同完成穿越间隙或移动物体等任务,旨在研究群机器人团队合作和机器人间通信[5]。Bonani等人设计了一款软硬件开源的差速轮式机器人E-puck,用于教育和科学目的[6]。Alonso-Mora等人借助E-puck开展多机器人图案编队的研究工作[7],完成了10个物理机器人的实验。但此类多机器人系统数量较少,尺寸相对较大。
随着研究的深入,多机器人系统逐渐向大规模方向发展。哈佛大学开发的Kilobot[8]使用振动电机和刚性支撑腿移动,通过感知红外信号的强度估算和其他个体之间的距离,这种独特的设计进一步减小了单个机器人的尺寸和成本,使其成为大规模多机器人研究的理想选择。Li等人[9]受细菌等微生物的启发,设计了一款可以随环境改变自身尺寸的机器人,并通过磁铁与其他机器人形成耦合,为大规模群体机器人系统提供了全新的途径。
与此同时,多机器人系统也向小尺寸方向发展,并探索人类和多机器人交互的方式。Suzuki等人设计的群体机器人ShapeBot[10],是多机器人和可重构机器人的组合,每个单独的ShapeBot都可以通过线性执行器实现外形变化,使得整个多机器人系统呈现出复杂的队形。Le Goc等人通过数个直径只有2.6cm的Zooids[11]机器人,实现了群体绘图、群体动画、绘图可视化等人机交互界面。
目前国内已有较多单体机器人的研究[12-13],但应用于机器人集群控制和教学的机器人产品品类较少、价格昂贵、尺寸庞大、移动缓慢,且还需额外增加光学三维动作捕捉系统或UWB定位系统的辅助才能实现机器人定位,对场地环境要求苛刻,进一步增加了成本,提高了研究者的开发门槛。
基于以上现状分析,减小单个机器人尺寸是降低多机器人系统成本、降低使用开发门槛的最有效措施。因此,本文设计开发了一款桌面级群控机器人系统——CoCube,在满足多机器人控制算法部署的前提下,兼顾了系统成本、便携性和易用性。本文将对系统各部分硬件和软件配置进行详细介绍,并验证本系统性能。
按照从底层到顶层的顺序,介绍CoCube桌面级群控机器人系统的设计与开发方法。
CoCube机器人硬件电路结构框图如图 1,分为机器人主电路板、灯板电路板和外接串口烧录器,一块锂电池和两只直流减速电机。
▲图1 CoCube机器人硬件电路结构框图
对于通信功能,系统中每一个机器人都应当具备与上位机或其他机器人无线通信的能力。CoCube选用集成2.4G Wi-Fi、传统蓝牙和低功耗蓝牙功能的ESP32-WROOM-32U微控制器,该微控制器内置双核CPU,具备4M集成SPI Flash,26个GPIO和最高240 MHz时钟频率,满足外围扩展和快速计算的需要。
对于运动控制,CoCube选用两个H桥电机驱动器MS8837,通过微控制器输出PWM信号分别控制两个电机的旋转方向和速度。此外,通过两个槽型透射式光中断器GP1S196HCZ0F测量两个电机转子轴的转速,可实现闭环控制。
对于方向感测,CoCube设计有MPU6050惯性测量单元,可检测三轴陀螺仪和三轴加速度,进一步控制机器人的运动。
对于声音提醒,CoCube安装有一个蜂鸣器DET402,以提供与用户交互的声音。
对于灯光显示,CoCube设计有8×8大小的WS2812灯板矩阵,用于显示彩色图案、文字符号以及视觉标记。
对于电源管理,CoCube使用高压LiPo电池(3.7 V,1 600 mAh)供电,采用IP5306芯片管理电池充放电,并将电池电压升压为5 V为电机驱动器、蜂鸣器和灯板矩阵供电。采用RT9080-33GJ5线性稳压器将5 V降为3.3 V,为微控制器和其他模块供电。此外,PCB上设计有分压电路,微控制器能检测锂电池电压以防电池过度放电。
考虑到机器人主电路板的尺寸限制和为多个机器人烧录程序的便捷性,USB转串口电路并未放置于机器人主电路板内,而是单独设计为一块串口烧录器。
CoCube机器人长43 mm,宽43 mm,高35 mm,重80 g。外壳和底座采用黑色树脂3D打印,表面喷彩色模型漆。其机械结构如图2所示,主要包含以下三部分:
▲图2 CoCube机器人机械结构爆炸图
(1) 移动底盘:CoCube采用三轮构型。驱动轮装有橡胶O形圈以增加与地面间的摩擦力,位于底盘后部同轴排布,由两台旋转对称安放的微型直流减速电机通过齿轮传动;从动轮由一颗4 mm直径不锈钢球充当,由内向外嵌入底盘前部,并被一块尼龙3D打印件固定,起到防止脱落和自润滑的作用。
(2) 主电路板:考虑到PCBA生产工艺,除槽型透射式光中断器外,其余电子元件全部设计于PCB正面,方便单面SMT、降低成本。在PCB背面留有4个触点,电机的簧片可以直接与触点接触实现供电。
(3) 灯板与外壳:外壳顶部设计为格栅状,防止各个灯珠发出的光相互干扰。顶部粘贴的PET磨砂面板,可使透过的光均匀柔和,呈现更好的视觉效果。外壳后部在Type C母座和滑动开关处留有孔位,方便充电、烧录程序与开关机。
对于集中式集群机器人系统而言,精准的机器人定位与低延迟通信至关重要。如图3展示了CoCube定位系统与通信环境配置,包含一台上位机电脑、路由器、摄像头、俯拍相机支架、桌垫以及数个CoCube机器人。
系统通过机器视觉识别各CoCube机器人顶部灯板显示的标记来跟踪各机器人的位置和方向。为了高效地识别并区分机器人,本项目选用4×4编码的ArUco基准标记图案标识机器人的ID和位姿,共可编码50个不同的ID,且恰好能在8×8大小的灯板上完整显示,呈现出较强的视觉观赏性。系统也保留了直接在机器人顶部粘贴ArUco卡片的方法,在调试阶段有更强的易用性。
系统选用罗技C930C摄像头,在720 p和1080 p分辨率下,最高可达到60 Hz和30 Hz的刷新率。将其用俯拍相机支架固定于距离桌面的高度50 cm的位置时,捕捉画面的实际尺寸大约为86 cm×48 cm。上位机电脑连接摄像头后,借助Python的OpenCV库,可以快速计算出画面内各个ArUco图案的ID和位姿。由于ArUco图案位于机器人顶部,且机器人的高度不可忽略,还需根据透视原理对机器人实际位置进行一定的校正。
此外,系统定制了低反光率、表面摩擦系数大、易于收纳的TPU垫作为CoCube机器人的移动平面,保证在实际光场情况下,不会干扰摄像头对ArUco图案的识别,也可以减少CoCube机器人驱动轮和移动平面之间的打滑。
系统使用一台路由器实现局域网的构建。为方便对数量众多的机器人管理,可登录路由器管理界面为各个CoCube机器人独立命名和编号,并绑定一个静态IP地址,以便节省机器人开机后获取IP的时间,大大缩短连接等待时间,方便上位机程序中通过IP地址直接对应某一个CoCube。为进一步保证通信质量、降低通信延迟,还应当用网线将电脑与路由器直接连接,并避免CoCube机器人和路由器之间距离过远。
如图 4所示双轮驱动的运动学模型[14],当机器人的两个驱动轮分别以vL和vR匀速转动时,有:
其中:
由于硬件差异,各个机器人的运动行为存在着一定的差异,需要对关键参数进行校准。如图 5所示,首先对机器人电机的最小转速占空比进行校准,使得机器人刚好能够克服摩擦力而运动;其次对电机的偏好速度占空比和电机之间的差异进行校准,以保证机器人能够以标称的7.5 cm/s的速度移动,且移动3 s产生的横向偏移不超过2 cm。
▲图4 双轮差速移动机器人运动学模型
▲图5 机器人运动行为校准
上位机程序识别机器人的位姿后,实时计算出目标点距机器人的偏差距离和相对偏移方向,将上述信息以及目标点指定方向打包成JSON格式,通过用户数据报协议(UDP)发送给机器人特定的IP地址和端口号。机器人接收到信息后,根据如图 6所示的基于有限状态机的位置控制策略,移动到目标位置。
▲图6 机器人位置控制策略
如图7,以多机器人系统中常用的队形控制为例,来说明本系统在多机器人控制上的方法。
▲图7 系统多机器人编队控制方法
(1) 目标追踪:通过机器视觉识别出各CoCube机器人顶部的ArUco图案的ID和位姿,经过校正得到各个机器人实时的位置和旋转方向。当系统中存在障碍物遮挡的情况下,可增加卡尔曼滤波对各机器人的目标位置进行预测。
(2) 队形生成:本项目使用基于加权Voronoi图的区域覆盖算法,根据所导入图片的灰度填充任意数量的点,作为多机器人的目标位置。该算法生成的目标点分布均匀、具有较强的视觉吸引力,适用于数量较多、形状复杂的队形生成场景。
(3) 角色分配:当机器人由一个队形变换至另一个队形时,需要合理为各个机器人分配目标点,避免路径过度混乱。在本项目中采用匈牙利算法,求解出机器人移动路径之和最短的分配方法。
(4) 路径规划:随着系统中机器人数量增多,上位机需要为各个机器人设计合理的运动轨迹,避免其在移动过程中相互碰撞。本文使用最佳相互碰撞避免算法(ORCA)规划出个机器人运动路径的关键点,分次序作为各机器人的目标点。
(5) 灯板显示:当所有机器人都移动到指定终点目标后,可以控制所有机器人的灯板整体呈现终点目标位置的颜色,或呈现呼吸灯、跑马灯等动态效果。
在集群机器人研究中,可以增加人机交互功能,本项目采用以下两种方法。
第一种方法可采用机器视觉。当人手抬起机器人时,摄像头画面中ArUco图案的尺寸会变大;当人移动或者旋转机器人时,摄像头也能够及时捕捉到机器人位姿的变化;此外还可以通过机器视觉实现对人手或者其他物品的识别,作为与多机器人系统交互的触发事件。
第二种方法可采用机器学习。利用机器人内置的MPU6050陀螺仪,借助TinyML和TensorFlow Lite,识别出抬起、旋转、晃动等动作,进而控制机器人做出灯光闪烁、变换颜色或者发出声响等交互效果。
本桌面级群控机器人系统的实际应用如图8所示,可将本系统应用于迷宫路径规划、自动跟车、队形变换、足球机器人等场景。
▲图8 系统实际应用图
本文进一步评估了CoCube桌面级群控机器人系统的技术能力,包括:
(1) 通过控制机器人在定位垫上移动固定时间并测量其移动距离,评估机器人的最大移动速度;
(2) 通过控制系统记录机器人与目标的距离和角度偏差,评估本系统视觉定位和控制方案下机器人的位置和方向精度;
(3) 通过控制上位机以50 Hz频率发送控制指令,控制机器人与路由器相距5 m,根据机器人单位时间收到控制指令的个数计算通信的丢包率,以评估通信鲁棒性;
(4) 通过比较上位机对每个机器人视觉跟踪、路径规划和发送UDP数据包的时间戳,以评估控制环的延迟。
对上述(1)-(3)开展实验,得到表1的技术参数表。
表1 系统技术参数表
对上述(4)开展实验,测得平均延迟为:视觉跟踪7 ms,为单个机器人路径规划并发送UDP数据包的总时间为0.65 ms。系统理论上能够以50 Hz的频率控制20个机器人。
本文针对高校多机器人集群控制研究的需求,设计开发了一款桌面级群控机器人系统,机器人小巧便携、成本可控,还可以通过机器视觉方法实现厘米级定位和运动控制。经实验测试,本系统具有较强的鲁棒性,在多机器人控制算法快速部署上具有一定的实际价值。