The Dancing robot
一、机器人设计创意及出发点
主题设计:
采用拟人化的方法,机器人代表的是一个正处在人生困境当中的年轻人。生活的压力让他苦不堪言,他也曾抱怨命运的不公。但他渐渐意识到自己所担负的责任,明白自己不能再颓废下去,决定向命运打出“致命一击”。物质上的贫穷并不可怕,可怕的是精神上的贫穷。一个自尊自强的人总会活出自己的风采。因为纵使身处逆境,贫困潦倒之时他还有勇气对别人说:我总有一天要大放异彩!就像歌词中所说,像一个战士,与命运斗争!
外形设计:
机器人设计灵感来源于日本特摄系列英雄故事《假面骑士》,躯干仿人形设计。为保证机器人整体美观,在四肢和躯干加以装甲和披风装饰。机器人动作依靠5组17台串行舵机配合完成,其中不乏高难度动作。
功能设计:
机器人是一台基于stm32单片机与树莓派微型电脑的多功能机器人,可实现行走避障、动作编程、视觉识别、语音识别等多种功能。此外,若搭配激光雷达,生命体征仪等检测设备,可参与危险或狭窄地形勘测,管道勘测,抢险救灾等工作。若为其装载故事库、题库等教育资源,还可作为益智启蒙机器人,进入普通家庭的生活。
二、机器人设计原理
2.1机械结构设计
机器人展开长度19cm,宽度20cm,高度50cm,机器人重量在2.5千克左右,大小及重量符合比赛规则要求,具体设计如下所示:
2.1.1舵机及其分配
人形机器人一共使用17个AX-12A串行总线舵机,其中4台串行舵机构成一只胳膊,共两只。每只胳膊长度在18cm左右。4台串行舵机构成一条腿,共两条。每条腿长度在28cm左右,1台串行舵机构成颈部以供头部转向。具体舵机安装位置,如图所示:
图 1 舵机分配图
2.1.2各传感器安装位置
机器人使用三个超声波模块进行定位。根据比赛规则,场地围挡高10cm,因此三个超声波全部安装在机器人足部。其中两个传感器分别安装在机器人左右足的前部,探测方向与机器人朝向一致。另外一个超声波安装在机器人左侧足的左侧,探测方向与机器人朝向垂直。
图 2传感器安装位置图
2.1.3电源安装位置
机器人表演过程中实际使用一只电池供电。但因电池本身具有一定重量,为保证机器人重心位于其中线,故在另一侧再加装一块电池。同时。为保证机器人整体重心较低,降低表演中途机器人摔倒的风险,故将两只电池全部置于机器人足后部。在机械结构设计时特意为电池预留了电池安装槽。具体放置方案如下图所示:
图 3 电池安装位置图
2.1.4机器人结构材料
机器人3D打印结构材料全部采用PLA塑料。聚乳酸(PLA)是一种新型的生物降解材料,使用可再生的植物资源(如玉米)所提取的淀粉原料经由发酵过程制成乳酸,再通过高分子合成转换成聚乳酸。聚乳酸也称为聚丙交酯,属于聚酯家族。聚乳酸是以乳酸为主要原料聚合得到的聚合物,原料来源充分而且可以再生。聚乳酸的生产过程无污染,而且产品可以生物降解,实现在自然界中的循环,因此是理想的绿色高分子材料。(PLA材料实物图见6.3)
聚乳酸(PLA)的优势:
1、聚乳酸具有优异的生物降解性,废弃后一年内能被土壤中的微生物100%完全降解,生成二氧化碳和水,对环境不产生污染。
世界二氧化碳排放量据新闻报道在2030年全球温度将升至60℃,普通塑料的处理方法依然是焚烧火化,造成大量温室气体排入空气中,而聚乳酸则是掩埋在土壤里降解,产生的二氧化碳直接进入土壤有机质或被植物吸收,不会排入空气中,不会造成温室效应。
2、PLA塑料可塑性较好,同时拥有良好的光泽性和透明度。另外,聚乳酸还具有最良好的抗拉强度及延展度,十分适合作为机器人的主体结构材料。
2.2系统硬件设计(实物图见点三)
2.2.1主控板
主控板由队员自主设计及焊制,其中主控芯片采用STM32F103C8T6,USB部分采用NC7WZ241非反转缓冲器和线路驱动器,使用2输入3输出,工作电压在1.65V-5.5V。电源模块部分采用LM1117 低压差稳压器、LMV32低电压单运算放大器及SN74LVC 8通道LVTTL输入输出逻辑变换器。
2.2.2摄像头模组
机器人采用500万像素摄像头(含CS1接口排线)作为拍照系统,该拍照模块与主控制板通过一条15芯的排线(CSI接口)进行连接。使用视频编码组件使用图像编码组件,由于raspistillYUV是直接将YUV或RGB从摄像组件输出到文件,所以不需要编码组件。使用OpenMAX的mmalAPI为所有程序进行编写且通过命令行的方式进行调用,本设计将通过调用OpenCV内部函数的方式进行拍照。
2.2.3树莓派微型电脑
本机器人搭载的是树莓派3B+系列。树莓派是一款基于ARM的微型电脑主板,以SD/MicroSD卡为内存硬盘,卡片主板周围有1/2/4个USB接口和一个10/100 以太网接口(A型没有网口),可连接键盘、鼠标和网线,同时拥有视频模拟信号的电视输出接口和HDMI高清视频输出接口,以上部件全部整合在一张仅比信用卡稍大的主板上。
与常见的51单片机和STM32等这类的嵌入式微控制器相比,不仅可以完成相同的IO引脚控制之外,还能运行有相应的操作系统,可以完成更复杂的任务管理与调度,能够支持更上层应用的开发,为了开发者提供了更广阔的应用空间。比如开发语言的选择不仅仅只限于C语言,连接底层硬件与上层应用,可以实现物联网的云控制和云管理,也可以忽略树莓派的IO控制,使用树莓派搭建小型的网络服务器,做一些小型的测试开发和服务。
与一般的PC计算机平台相比,树莓派可以提供的IO引脚,能够直接控制其他底层硬件的功能,这是一般PC计算机做不到的,当然,树莓派体积小,成本低,照常可以完成一些PC任务与应用。
2.2.4串行舵机
舵机均使用AX-12A串行总线舵机,共17个。
2.2.5电源
采用2200mah 12V 航模锂电池。
2.3程序设计
2.3.1踩圈设计
机器人采用三个超声波传感器,机器人左足侧面传感器,探测方向与机器人朝向垂直,与机器人前进方向一致,用于监测前方距场地的距离;左右足前部传感器相互配合,监测机身是否与墙壁平行。舞蹈结束后,前行直走,直到朝前的传感器监测距离小于阈值时,左转至机身与墙壁平行,从而保证机器人与场地边缘大致平行。
在走动过程中,若机器人距场地边缘过近,且呈靠近趋势,则机器人执行左转动作;相反,若机器人距场地边缘过远,且呈远离趋势,则机器人执行右转动作;若机器人前进方向传感器检测到距离小于一定阈值,则执行连续左转动作。
在踩圈过程中,程序对三个传感器的回传数据实现实时监测、闭环控制。
图 4 踩圈过程示意
2.3.2舞蹈设计
机器人行走的一个关键问题是腿部与跨部的配合,我们通过四个舵机的连接使用实现了单条腿的驱动,而且腿部的两个舵机可以使腿部的灵活性大大提高,腰轴部的舵机确保上下半身的转动及多动作的结合,关节的灵活性可以保证机器人舞蹈动作的更加协调以及机械结构的更加合理以及受力的均衡性大大提高。跨部可以由一个舵机控制腿部的转向以及使动作更加灵活,完美。
机器人在行走时,采用横向步态,这种方法保证了行走的平稳性及时效性,使得行走得以实现快速和稳定。实际上,这只需两腿上的四个个舵机相互贴合左往返运动即可。在模拟实际情况腰部、头部重量时,胯部的旋转动作要更为自然、流畅,不会出现因舵机力矩不足而步伐摆动不到位的情况。
在舞蹈动作程序编写部分首先要考虑机器人的动作连贯性,即胳膊和腿部的运动顺序,抬起高度;其次,要考虑动作次序对于整体连贯性的影响,例如,先进行上半身的舞蹈动作,然后进行下半身的姿势及动作,还是结合按照顺序依次结合的动作,这样的顺序不仅可以让动作更具连贯性,而且能够减少舵机所受力矩,最大限度地保护舵机不受损坏。其次,考虑了所搭配的背景音乐、节拍,使舞蹈的动作更加有韵律感,更加贴合音乐,更具有观赏性。
在舞蹈动作当中,时刻体现着设计主题。如俯卧撑、“闪电”等动作,表达的便是一种自强不息、不屈于命运的精神。
三、电路原理图、PCB板图及部分硬件实物图
3.1电路原理图
图 5 电路原理图(出于保密考虑,此处暂不给出原理图)
3.2 PCB设计图
图 6 PCB设计图
3.3 PCB实物图
图 7 PCB实物图及接口定义
15——舵机串行接口1到58——超声波通信接口1到3
6
9——树莓派通信接口
10——电源接口
11——复位按键
3.4 焊制电路板现场图
图 8 焊制电路板现场
3.5 摄像头模组
图 9 摄像头模组实物图
3.6 树莓派微型电脑
图 10 树莓派实物图
3.7 AX-12A串行舵机与电源
图 11串行舵机及电源实物图
四、软件调试界面及部分源代码
4.1 基于LabWindows/CVI测控软件的上位机界面
图 12 上位机软件界面
4.2 上位机底层代码(出于保密考虑,此处暂不展示代码。代码文件见本人Github仓库,查看密码请联系作者)
4.2.1 串口通信(发送)
4.2.2 串口通信(接收)
4.2.3 TXT文件存储
4.3 利用上位机调试现场
图 13 上位机调试
4.4 下位机代码(出于保密考虑,此处暂不展示代码。代码文件见本人Github仓库,查看密码请联系作者)
4.4.1 下位机主函数
4.4.2 下位机串口通信
4.5 动作执行程序(出于保密考虑,此处暂不展示代码。代码文件见本人Github仓库,查看密码请联系作者)
4.5.1 主函数
4.5.2 超声波与树莓派串口通信代码(部分)
4.5.3 动作执行程序(部分)
五、零件三维图
5.1 机器人整体装配三维图
图 14 机器人整体装配图
5.2 机器人整体装配三视图
图 15 机器人整体装配三视图
5.3 部分零件三维图
舵盘 | 肩甲 |
---|---|
舵机槽(小) | 舵机槽(大) |
头部 | 头部连接件 |
胸甲 | 躯体支撑甲 |
轴套 | 左(右)脚掌 |
左手掌 | 右手掌 |
装饰甲(1) | 装饰甲(2) |
脚部覆盖件 | |
5.4 部分零件实物图
图 16 部分零件实物图
六、零件加工及制作过程
6.1 3D打印机实物图
图 17 队伍所用3D打印机
6.2 打印零部件过程中
机器人零部件首先由队员在Solidworks建模软件上完成建模工作,并将文件保存为STL格式。之后使用JGreat切片软件对模型进行切片,生成xCode文件。将生成的文件导入打印机存储卡内。在打印机操作界面点击“开始”,开始打印工作。
图 18 打印零部件过程中
6.3 打印零件所使用的PLA材料实物图
图 19 PLA材料实物图
6.4 部分零件成品
图 20 部分零件成品图