四足爬行机器人控制研究
2017-03-23韩飞吴宝春陈益王志远李志刚
韩飞 吴宝春 陈益 王志远 李志刚
摘要:本文介绍一种四足爬行机器人的组成结构及其控制系统的构成。控制系统主要由上位机控制界面和下位机控制单元组成。上位机通过java语言编写调试控制界面,与下位机通过串口进行通信,下位机采用STM32作为核心控制器,接收上位机的相关控制信息,通过控制舵机控制器,实现四足爬行机器人的行走控制。
关键词:四足爬行机器人;STM32;舵机控制器;Java
中图分类号:TP311 文献标识码:A
0 引言
随着现代科技与人工智能的快速发展,人类对机器人的研究与应用也日趋广泛。近年来,各类新型仿人机器人、仿生机器人已然陆续研发问世,并逐渐进入诸多领域。与众多款型机器人相比,四足仿生机器人是具备爬行动物外形、并可发挥强大行动能力的机器人,采用爬行的方式提供自主行走,通过自身内部协调处理实现一些简单的动作。与传统机器人相比,四足机器人具有独特鲜明优势,可通过多足的机械结构交互配合,从而完成以探索和采集作为主要设定目的的综合任务。因此,研究爬行机器人的结构组成及其控制方法具有至关重要的课题价值和现实意义。
本文首先系統分析四足爬行机器人结构组成以及设计行走控制方法,结合java语言编写上位机调试界面,通过串口与下位机STM32核心控制器进行通信,核心控制器采用串口通信方式将运动控制信号实时传递给舵机驱动器控制机器人舵机状态,从而实现对爬行机器人行走的简单控制。
1 四足爬行机器人简介
本文所研究的四足爬行机器人机械结构采用成品套件,具有12个舵机,每条腿上安装3个舵机,分布在爬行机器人的各个关节;在安装舵机前首先进行舵机状态复位,舵机复位后保证舵机左右或前后摆动的幅度均匀,避免舵机在调试过程一个方向无法摆动或者堵转而烧坏舵机。系统控制器采用STM32核心板安装在机器人背部,舵机控制器装在机器人身体下部,电池装在夹缝中。爬行机器人整体结构如图1所示。
2 控制系统设计
本文研究的爬行机器人控制系统主要由上位机控制界面和下位机控制单元组成,上位机控制界面采用java语言编写,通过串口与下位机通信。下位机控制单元采用STM32 作为核心控制器,这是由意法半导体公司重点生产的基于超低功耗的ARMCortex-M3处理器内核,因其配备一流的外设、低功耗、最大集成度的特点,满足了用户对高性能、低功耗、低成本和经济实用的要求。在此,给出控制系统结构框图如图2所示。
下位机控制单元主要由STM32核心控制器、舵机控制器和12个舵机而联合构建组成。其中,STM32核心控制系统在设计上可分解为主控芯片电路、时钟电路、下载电路、电源电路等但愿不见;舵机控制器则是通过串口方式与核心控制器进行通信,从而实现对舵机的控制。涉及舵机控制时,首先需展开舵机调试以及动作组的设定,本文则结合项目组前期研究的机器人调试系统来集成展现舵机状态调试。调试界面如图3所示。
通过对舵机的调试,保证了爬行机器人动作的协调性和连贯性,对机器人爬行控制具有决定性的重要意义。
3 软件程序设计
3.1 上位机控制界面
上位机控制界面是由java语言编写,可用于调试控制机器人具体动作状态。采用串口方式与下位机进行通信,当发送命令时,通过按键装监听的方法,来实现对应指令发送。上位机界面总体结构如图4所示。
进一步地,上位机界面则如图5所示。
在上位机中,CommPortIdentifier.getPortIdentifier(com)用来实现本地系统的硬件端口(RS-232)标准串口通信,通过安装应用RXTXcomm.jar包,从而管理本地机器的端口。
3.2 下位机软件程序设计
STM32核心控制系统中,软件编写的程序采用顺序控制,整体设计相对简单,但是不能满足嵌入式多任务要求,在工作时,需要等待当前命令执行完成后,才可以继续向下执行。软件流程如图6所示。
下位机控制系统在打开电源后,初始化相关函数,发送命令至舵机控制器,使得机器人保持爬行姿势,串口连接成功后,等待接受命令。当上位机发送动作命令时,爬行机器人执行由其指定的动作响应。
4 实验测试
在实现了上位机界面开发和下位机程序调试后,即需选取设定四足爬行机器人动作整体调试,对其进行前进、左移、右移、后退、左转、右转等基本功能测试,四足(1脚、2脚、3脚、4脚)排序采用逆时针方式,可得实验现象描述如下:
1)上位机发送前进命令时,四足爬行机器人通过1、3脚配合支持形成前移一步的动作,然后将2、4脚分别迈到1、3前,再将1、3脚分别还原,即恢复为初始设定的位置,完成一套爬行前进的动作;
2)上位机发送左移命令时,四足爬行机器人通过1、3脚配合逆时针旋转90度后,将2、4脚顺时针旋转90度,通过把类似的前进方式加入,完成左移动作;
3)上位机发送右移命令时,四足爬行机器人通过2、4脚配合顺时针旋转90度后,将1、3脚逆时针旋转90度,通过把类似的前进方式加入,完成右移动作;
4)上位机发送后退命令时,四足爬行机器人通过2、4脚配合支持形成后移一步的动作,然后将1、3脚分别迈到2、4后,再将2、4脚分别还原,即恢复为初始设定的位置,完成一套爬行后退的动作;
5)上位机发送左转命令时,将前进加入后,再加入左移,完成左转动作;
6)上位机发送右转命令时,将前进加入后,再加入右移,完成右转动作。
5 结束语
本文应用java语言开发了四足机器人调试界面,结合STM32最小系统与舵机控制器实现了四足爬行机器人行走状态的控制。同时给出了系统的软硬件设计,进而展开了实验调试,系统分析四足机器人的行走步态,为后续进行机器人步态分析及功能算法研究提供了坚实有益的技术基础。
参考文献:
[1]李贻斌,李杉,荣学文,等. 液压驱动四足仿生机器人的结构设计和步态规划[J].山东大学学报(工学版),2011,41(5):32-36,45.
[2]钱庆文. 基于STM32的类人机器人控制系统的研究[D]. 哈尔滨:哈尔滨工程大学,2014.
[3] 韩宝玲,张述玉,罗庆生,等. STM32的小型仿人机器人控制系统设计[J].单片机与嵌入式系统应用,2016(1):60-63.
[4]卢士林,李彩霞,张奎庆,等. 基于STM32双足竞步机器人的研究与设计[J].智能计算机与应用,2016,6(5):107-108.
[5]胡振旺,陈益民,李林.基于STM32的家庭服务机器人系统设计[J].电子产品世界,2015(9):55-57.
[6]华瑾,曹凯.基于STM32的六足机器人制作[J].电子世界,2014(14):110-111.
[7]伍立春,王茂森,黄顺斌.基于STM32的六足机器人控制系统设计[J].机械制造与自动化,2014(5):150-153,161.
[8]宋怡雯,郭鹏. 基于STM32的双足机器人运动控制系统设计[J].煤矿机电,2013(5):5-7,8.