蒋 铄
(北京理工大学自动化系,北京,100081)
机器人既拥有人为可操控系统的产品化技术,同时也拥有可自动调节控制动作的重要功能,仿人机器人的诞生使得人与机器人的距离被逐渐拉近。对机器人舞蹈动作的研究重点在于对其本体特征的研究,本文在对多自由度舵机控制的人形机器人研究过程中,如何对舵机角度进行合理调制,如何规划音乐与机器人的相互配合,以及如何更快速地对双人舞蹈机器人的中心对称路径进行规划,成为本课题研究的重中之重。
本文选用优必选Alpha 1S仿人形舞蹈机器人作为设计和研究对象,如图1所示。该机器人由坚硬的外壳、16自由度舵机以及电池驱动盒构成,重量1.63kg,工作电压直流电 6.8V。笔者将写好的程序通过数据线烧录到机器人的驱动盒中,并进行掉电及回读操作,即可让机器人处于完成动作的预备状态。烧录的过程通过USB数据线将机器人驱动盒与电脑连接,从而进行拷贝烧录;利用Alpha机器人特有的掉电/回读功能,可以将机器人每个舵机的角度进行精确定位,从而使机器人呈现出更加稳定的状态。
硬件方面,Alpha 1S机器人主要由16自由度伺服电机和控制器构成。伺服电机通过操作对应的伺服舵机,可以控制机器人相应关节的转角和速度;控制器放置在机器人胸腔中,其操作按钮安装在机器人背部。控制器是Alpha系列机器人的大脑,可以同时控制机器人所有关节,使机器人运动保持协调一致,集成32位CPU与A/D、D/A转换模块是机器人接口芯片的重要部分。Alpha 1S机器人的核心舵机内置MCU系统,包含伺服控制、传感反馈系统以及直流驱动系统,加上其自主改进的PID算法,使机器人具有舵机扭矩大、体积小、控制精度高等特点。
Alpha 1S机器人的大脑来自意法半导体型号为STM32-F103RDT6的MCU,集成32位ARMCortex-M3CPU,计算能力达到1.2DMIPS/MHz,工作频率范围为15~72MHz,内含DMA控制器(12通道),A/D转换器(12位),以及51个I/O接口,可加强系统的运算处理速度。
图1 Alpha 1S机器人
针对Alpha 1S仿人形机器人,笔者采取与其相匹配的可视化图形化编程软件Alpha Robot1s_QT对机器人整个表演过程中的舞蹈动作进行编程,其编程软件界面如图2所示。该软件是优必选公司为Alpha 1S机器人推出的PC电脑端软件,可与Windows10、Windows7 等64位系统兼容,同时还可在与其相匹配的手机安卓或IOS系统的客户端App辅助使用。当用户在PC端完成机器人程序的基本调试后,Alpha 1S机器人便可以自动运行表演动作。在Wi-Fi环境下,用户可对机器人进行远程操控,相比原始的机器人控制方式,这种远程操控方式使用户的视角更加清晰。
该软件基本界面分为模板区、进度控制区、动作帧区、3D视图区、舵机调整区与机器人掉电/回读区域。不同区域对应不同的功能,除第一编辑界面以外,在动作库中可查看不同用户上传的动作并进行参考;同步界面中可以实现PC端与手机客户端的文件共享。用户通过新建后缀名为“aesx”的文件,可将机器人整个表演过程中的动作画面进行保存,用户便可随时实时查看机器人表演动作的历史记录。
图2 Alpha 1S机器人操作平台
Alpha 1S机器人的音频编辑采用无瑕音频变调变速器v1.6,该软件可以实现对音乐中音轨的编辑,对整体频率的压缩和释放、调式的升降以及音质的保存均具有非常显著的效果,其配合PC端口可视化编程软件中的时序序列可以精确地对每一帧进行反复调试,再加上音乐的配合,使得机器人舞蹈更加优美、舒缓、流畅。如图3所示,笔者在对Alpha 1S机器人进行音频编辑时,首先打开音频文件,然后设置参数,试听后即可导出最终音频文件。
图3 Alpha 1S机器人音频编辑软件界面
Alpha 1S机器人的16自由度舵机分布示意图如图4所示。从图中可以清晰地看出控制机器人手臂有2、3、5、6号舵机,控制机器人肩膀有1和4号舵机,7、8、12、13四个舵机控制机器人腰部,9、10、11、14、15、16六个舵机控制机器人两条腿的动作。其中1、4、7、8、12、13号舵机的角度调节具有一定的限制,1和4号舵机限制为单平面360°,7、8、12、13舵机限制单平面 150°~180°为安全区域,其他舵机均可在两个平面甚至三个平面内进行自由旋转。
图4 Alpha 1S机器人舵机分配示意图
如果想要机器人实现最基本的站立动作,只需将1号和4号舵机的角度调整到90°,保证手臂紧贴在其身体侧平面,然后尽可能地减小2、3、5、6这四个舵机的角度,如此便可以实现机器人站立的基本动作。需要注意的是,2、3两个舵机或5、6两个舵机在调节过程中始终处于关联状态,为了避免其打到腰部发生损坏舵机的情况,需要将2、3两个舵机角度的差值控制在30°以内,如此便能达到安全值。
如图5所示,机器人每个连贯的动作均由一个动作组完成,一个动作组可以包含多个基础动作和难度动作,且每个动作都有单独的运行时间,再加上机器人运行当前状态的时间,即为机器人运行的总时间。当总时间大于或者等于运行时间(两者皆以ms为单位),则运行时间应不小于200ms,如果机器人在很短的时间内完成一个动作,会大幅损耗舵机的工作寿命。
图5 Alpha 1S机器人动作组编辑界面
图6为Alpha 1S舞蹈机器人的建模结构示意图。假设Alpha 1S机器人的上半身和下半身由中枢连接器连接,根据该机器人的体表特征可将示意图构建为头部、大腿部关节以及两条小腿部关节,如果机器人做正常直立行走,其手部保持平衡状态时可忽略不计。对于图6所示的静态结构,我们可建立直角坐标系,对机器人的手臂、大小腿进行数学建模,得出手臂和腿的长度,以及其和地面的夹角,进而得到机器人手臂和腿部的重心坐标,这有利于对机器人进行受力分析。
图6 Alpha 1S舞蹈机器人建模结构
2.2.1 单脚站立
Alpha 1S机器人舵机参数:直流电压6.5V,约0.5kg,16自由度。假设每个舵机的重量均等,当机器人单脚站立时,我们使用PC端可视化编程软件调节出机器人所有舵机的角度,机器人单脚站立仿真效果如图7所示。由于我们是以机器人头部中轴线为竖直轴,所以机器人头部不能倾斜,将此情况做一数学简易坐标系,如图8所示。
图7 机器人单脚站立仿真
图8 机器人单脚站立建模
图8中,P为机器人右脚底部,也是整个力平衡中心;AB为机器人左手与右手的连线,OC为机器人的左腿,假设机器人做简单的伸直手臂、单脚站立的动作,以OP所在直线为纵轴,垂直OP且经过O的直线为横轴构造第二坐标系,根据测量参数,机器人手臂长度与腿长基本一致,每个舵机300g左右,OC=20cm。根据力系平衡原理,可计算出机器人在每一个侧腿状态下其侧腿角度的实际大小,经过理论的计算可防止机器人在做出高难度动作的过程中摔倒,手臂和侧腿的力需按照中点竖直线到OP轴的距离计算。
2.2.2 弯腰动作
Alpha 1S机器人弯腰动作和单脚站立虽然所处理的象限不同,但是本质上是相同的。机器人的弯腰动作虽然是从三维的角度来考虑,但是实际上机器人设计的高度对称性可从两部分来分解,即后背电池驱动盒和双臂后摆,其3D仿真效果和实际数学模型如图9、图10所示。
图9 机器人弯腰动作仿真
图10 机器人弯腰动作建模
图10中,G1为机器人头部(重量与单舵机相比不可忽略),G2为电池驱动盒侧视图,G3为手臂等效于中心线的力,其中包含一个在中心点上的力矩Mo。根据空间中坐标系力的平衡,可以判断出机器人是否处于稳定状态,如果不满足力系平衡方程,则需要重新调整舵机的角度并进行再次计算,从而逐渐接近机器人的最佳稳定状态。
当机器人处于稳定状态时,存在某一点使机器人所受的合力和惯性力关于该点的合力矩为零,这就是所谓的零力矩点。在对Alpha 1S机器人进行设计和调整过程中,可以利用安装在机器人脚部的特殊传感器对ZMP(Zero Moment Point,零力矩点) 的实际位置进行测量,当机器人做行走或者偏移运动时,便可采集相关力信息。ZMP是判定仿人机器人动态稳定运动的重要指标,需要综合机器人当前的位置信息和速度信息,从而对机器人的运动状态做出判断。显然,ZMP在机器人的步行运动是非常重要的。当机器人即将摔倒时,需要对机器人关节角度进行微调。
Alpha 1S机器人虽然在可视化编程、动作展示等方面都展现出极其优越的性能,但是在自身设计和部分功能上仍存在实质性的问题。首先,机器人舵机与舵机之间采用裸露的包装,在频繁使用舵机的情况下,这会严重消耗舵机的使用寿命,从而对机器人的动作连贯性、柔韧性产生影响。其次,机器人较为笨重的机械设计会对机器人腿部的关节造成过大压力,严重的话可能会损坏机器人关节。另外,耗电量快也是该机器人的缺陷之一。为了提升其性能,可以采用高性能的太阳能电池,分装在机器人的各个薄弱关节及头部,这种方式一方面可以有效地对舵机连接处进行电量补偿,另一方面也可以节省电力,更好地利用电能来调节由于电量消耗而产生偏移的舵机连接处。最后,可将机身的重心下移并去掉电池盒,这样机器人下身关节的力矩将大大减小,对机器人整体起到保护作用。
图11为Alpha 1S智能机器人的整体控制系统。该控制系统由外部移动控制端与内部自动控制端口组成,其中,外部移动控制端用于对机器人指令的输入控制,又分为PC 3D可视化编程软件外部控制端以及安卓/IOS系统串口通信外部蓝牙控制端。当计算机将机器人控制程序的指令写入该端口后,机器人可通过关节传感器感知ZMP及其他信息,对机器人控制程序进行筛选和执行,并将命令输入执行系统,以对机器人进行进一步控制。整个控制系统在内部形成闭环反馈系统,这大大提高了机器人操作系统的稳定性。
图11 Alpha 1S机器人整体控制系统
PC端外部控制系统主要实现机器人在线调试、编辑功能,又分为在线调试模块、下载模块和蓝牙模块。在线调试模块将串口数据传送至Alpha 1S机器人的主芯片,通过“姿态编辑区”实现对机器人舵机的单步调试和控制,理论计算出舵机的角度值并进行调试,之后下载模块将生成和编辑好的动作帧组合转化为串口数据,并下载到机器人的内存卡进行解析。最后,输出即执行模块将Alpha 1s机器人的16个舵机进行动作输出,并将上述模块编辑好的高难度舞蹈动作生动地演绎出来。
Alpha 1s机器人采用了目前在机器人领域相当高端的ARM控制器,内置该控制器的Alpha机器人的具体工作流程是:首先接收信号源的控制脉冲,由电脉冲驱动电机转动,同时齿轮将电机的速度成倍缩小,并将电机的输出扭矩等比例放大,使得电位器和齿轮组的末级一起转动,从而测量舵机轴转动角度。然后,电路板检测并根据电位器判断舵机转动角度,从而控制舵机转动到目标角度或保持在目标角度,以达到机器人控制动作连续输出的效果。
本文主要对Alpha 1S机器人的硬件构成和可视化编程软件进行了详细介绍,首先对仿人机器人的基础动作及难度动作进行建模分析,然后配合音频编辑软件对机器人舞蹈动作进行编辑,最后完成对舞蹈机器人动作的设计。在此基础上,笔者将系统理论与用户实际操作结合在一起,通过解析机器人内部控制系统,明确了机器人的自动控制方式。
Alpha 1S机器人虽然具有高性能,但在功能上仍存在一定的缺陷。如今,机器人的发展突飞猛进,机器人技术广泛应用于人类社会的各个领域,给传统的生产模式带来颠覆性影响和革命性变革。人们在不断提升机器人性能的同时,应考虑到其本身的成本,这样才能更好地促进机器人的推广使用。随着机器人技术水平的进一步发展,相信在不久的将来,机器人能够拥有和人类一样的情感,并将为人类社会做出更加卓越的贡献。