APP下载

基于STM32的六足机器人运动控制系统研究

2019-09-10李俊敏

河南科技 2019年25期
关键词:舵机

李俊敏

(南京理工大学紫金学院,江苏 南京 210023)

摘 要:本文主要研究基于STM32的六足机器人运动控制系统,通过建立六足机器人的运动学模型,对摆动腿和支撑腿进行运动学分析,并按照六足机器人典型步态,进行步态运动规划。同时,根据六足机器人的运动学和步态分析结果,设计了基于18个舵机协调运动的六足机器人运动控制系统,实现远程监控和机器人的直线路径、转弯步态的规划和控制等功能。

关键词:六足机器人;运动控制系统;步态行走;舵机

中图分类号:TP242 文献标识码:A 文章编号:1003-5168(2019)25-0032-03

Research on Motion Control System of Hexapod Robot Based on STM32

LI Junmin

(Nanjing University of Science and Technology Zijin College,Nanjing Jiangsu 210023)

Abstract: This paper mainly studied the hexapod robot motion control system based on STM32. By establishing the kinematics model of the hexapod robot, the kinematics analysis of the swing leg and the support leg was carried out, and the gait motion planning was carried out according to the typical gait of the hexapod robot. According to the kinematics analysis and gait analysis results of the hexapod robot, the hexapod robot motion control system based on the coordinated motion of 18 rudders was designed to realize the functions of remote monitoring and linear path and turning gait planning and control of the robot.

Keywords: hexapod robot;motion control system;gait walking;steering gear

隨着机器人技术及计算机科学的不断发展,新兴的特种机器人在生产生活中扮演着愈加重要的角色。然而,多足机器人在控制和制作方面都比轮式和履带式机器人要复杂很多。由于多足机器人的运动轨迹是不规则的,可以快速适应各种困难的环境,因此,其能代替履带式机器人和轮式机器人[1]。与其他种类的机器人相比,多足机器人对地形造成的破坏小很多,而且腿自由度相对较高,这极大地增强了机器人在各种地形下的运动能力。其可以通过多足自由快速地调整角度和长短来改变自身重心,适应地形,进而顺利前进。

1 六足机器人运动学分析

本文研究的机器人由6只足和6条腿组装而成。每个腿部关节处都有一个舵机,驱动舵机关节做旋转运动。机器人采用三角步态的方式行走,如图1所示。

将六足机器人的6只脚分为两组,每组都呈一个三角形的结构分布,将1、3、5脚分为一组,组成一个三角形,剩下的2、4、6为一组。六足机器人在执行直线步态动作指令时,两组三角步态交替执行支撑动作和前后摆动动作,可以控制六足机器人的前进或后退。

1.1 摆动腿运动学分析

根据连杆间坐标系建立原则,根关节、髋关节、膝关节及足端点建立坐标系[O0-x0-y0-z0]、[O1-x1-y1-z1]、[O2-x2-y2-z2]、[O3-x3-y3-z3]。为了方便计算,将坐标原点建立在特殊的点上,如舵机关节的中心或者是每条腿的端点上。[x]轴必须和向杆伸展的方向一致,[y]轴可以按照右手螺旋定则来判断,[z]轴需要和各关节旋转方向保持垂直。多足机器人单足坐标系如图2所示。

其中,[0Ri1]、[1Ri2]、和[2Ri3]代表相应根关节到髋关节、髋关节到膝关节、膝关节到足端坐标系的旋转矩阵方程。具体计算公式如式(1)至式(3)所示。在计算过程中,可以将公式中的[cosθ]当作[Cθ],[sinθ]当作[Sθ],其中[i]代表的是1至6足。

[0Ri1=Cθ1-Sθ20Sθ2Cθ20001]                        (1)

[1Ri2=Cθ2-Sθ20Sθ2Cθ20001]                        (2)

[2Ri3=Cθ3-Sθ30Sθ3Cθ30001]                          (3)

足端点在根关节坐标系中的旋转矩阵:

[0Ri3=0Ri11Ri22Ri3=Cθ1C(θ2+θ3)-Cθ1S(θ2+θ3)Sθ1Sθ1C(θ2+θ3)-Sθ1S(θ2+θ3)-Cθ1S(θ2+θ3)C(θ2+θ3)0](4)

六足机器人每条腿上各相邻坐标系间的D-H方程为:

[0Ti1=Cθ10Sθ1l1Cθ1Sθ10-Cθ1l1Sθ101000001]                   (5)

[1Ti2=Cθ2-Sθ20l2Cθ2Sθ2Cθ20l2sθ200100001]                   (6)

[2Ti3=Cθ3-Sθ30l3Cθ3Sθ3Cθ30l3sθ300100001]                    (7)

[0TI3=Cθ1C(θ2+θ3)-Cθ1S(θ2+θ3)Sθ1l1+l2Cθ2+l3C(θ2+θ3)Cθ1Sθ1C(θ2+θ3)-Sθ1(θ2+θ3)-Cθ1l1+l2Cθ2+l3C(θ2+θ3)Sθ1S(θ2+θ3)Cθ2+θ30l2Sθ2+l2Sθ2+θ30001](8)

六足机器人单腿足端点在根关节坐标系中的位置矢量为:

[0Pi3=0xi30yi30zi3=l1+l2Cθi2+l3C(θi2+θi3)Cθi1l1+l2Cθi2+l3C(θi2+θi3)Sθi1l2Sθi2+l3S(θi2+θi3)]              (9)

各腿足端點在机体坐标系中的变换矩阵为:

[cTi3=cTi00Ti3=C(β1+θ1)Cθ23-Cβ1+θ1Cθ23Sβ1+θ1Sβ1+θ1Cθ23-Sβ1+θ1Cϑ23-Cβ1+θ1cPi3Sθ23Cθ2300001]       (10)

1.2 支撑腿运动学分析

六足机器人运动时,必须同时有三条以上的腿着地作为支撑腿,这样才能保持机体稳定[6]。这时,支撑腿就和地面以及六足机器人主体之间处于一种可以随时改变的并联状态。

机体和支撑腿构成并联结构。为了方便,可以选择将地面作为支撑腿与机体运动的参考坐标系。如图3所示,将地面作为参考对象建立坐标轴。开始时,机体坐标系的位置与地面坐标系方向[OG-XGYGZG]一致,机体由支撑腿带动。首先,机体坐标系[OC-XCYCZC]绕[ZG]转动[α]°,然后绕[YG]转动[β]°,最后绕[XG]转动[γ]°,再平移到点[XC,YC,ZC]处,由此可得到矩阵[GTC]。

[GTc=cosαcosβcosαsinβsinγ-sinαcosγcosαsinβcosγ+sinαsinγGxcsinαcosβsinαsinβcosγ+cosαcosγsinαsinβcosγ-cosαsinγGyc-sinβcosβsinγcosβcosγGzc0001]  (11)

当式(11)中[α]、[β]、[γ]均为0时,机体中心的坐标为[GXC=0],[GYC=0],可以得到六足机器人支撑腿正运动学公式:

[Gxi3=cxi0-sβi(l1sθ1+l2sθ1cθ2+l3sθ1cθ23)+cβi(l1cθ1+l2cθ1cθ2+l3cθ1cθ23)Gyi3=cyi0+cβ(l1sθ1+l2sθ1cθ2+l3sθ1cθ23)+sβ(l1cθ1+l2cθ1cθ2+l3cθ1cθ23)Gzi3-48=l2sθ2+l3sθ23](12)

逆运动学分析主要就是通过机体的位姿和足端点在地面参考坐标系中的坐标来求解机器人支撑腿关节转角的角度。

2 六足机器人控制系统设计

2.1 硬件设计

六足机器人控制系统设计选择嵌入式作为主处理系统。硬件包括STM32VCT6单片机控制板、电源管理模块、驱动模块、外围传感器模块及六足机器人支撑架构和六足关节。硬件部分采用PCB板,制作出整个六足机器人。控制系统硬件部分的总体框架如图4所示。

六足机器人控制系统中通过使用18路舵机实现其正常运动,分成6组,每个定时器包含四个通道。四个通道相互独立,互不影响。由于定时器中能捕获的通道是定时器1、2、3、4、5、8,产生对应舵机的PWM信号,因此用作舵机驱动,TIM6用作时基,通用定时器可以选择不同的分频系数,最大值不超过65 535,其脉冲宽度可以进行调整,以满足不同项目的要求。脉冲宽度最小能达到微秒级别,最大可以调整为毫秒级别。

2.2 软件设计

六足机器人控制系统软件部分利用模块化编写程序的思想,将程序分为相应的功能模块进行编写。通过STM32实现六足机器人的三角步态行走,根据外围传感器调整姿态。图5是六足机器人控制系统主程序流程。

2.3 调试与试验

本文设计的六足机器人样机如图6所示。在安装机器人腿部关节时,需要调整舵机处于中位以保证机器人前后足不会发生碰撞,并调整机器人各舵机的偏差,减少机器人舵机安装时的误差,以保证后期机器人调试顺利进行。测试过程选择的动作为500、1000、1500、2000、2500,把这些动作都添加保存,选择一个适当的[T]值。设置完成后可以在线运行,就能看到舵机转动的相应效果,保存动作,可以让舵机重复运行。所设计的六足仿生机器人可实现12种仿生动作,3种仿生姿态,5种可调节速度。该仿生机器人既能通过PS2手柄和红外控制其在多种复杂环境下完成必要的动作,实现所需功能,又能自主脱机运行仿生避障、桌面防跌等附加功能。

3 结语

本文通过对六足机器人摆腿和支腿进行运动学分析,优化了机器人的机身结构,并使用STM32对六足机器人的控制系统进行软硬件设计,编写相应的软件程序,同时进行系统调试。该六足机器人可以较好地模仿并拓展六足机器人的运动方式,较轮式或履带式机器人而言适应性更强。

参考文献:

[1]Angeles J. Fundamentals of robotic mechanical systems: theory, methods, and algorithms[M].Berlin:Springer,2007.

[2]Collins C. Stiffness modeling and force distribution for the all-terrainhex-limbed extraterrestrialex[C]//ASME2007 enter national design engineering technical conferences & computers and information in engineer conference, September.2007.

[3]B.Iannotta.Creating Robots for Space Repairs[J]. Aerospace America,2005(5):36-40.

[4]李程.六足机器人控制系统设计[D].秦皇岛:燕山大学,2016.

[5]陈刚.六足步行机器人位姿控制及步态规划研究[D].杭州:浙江大学,2014.

[6]刘德高.六足机器人运动控制系统设计与实现[D].哈尔滨:哈尔滨工业大学,2013.

猜你喜欢

舵机
Arduino编程
基于STM32的24路舵机同步控制系统设计
创客们的DIY必备“法宝”:舵机
走进舵机世界
基于51单片机控制多路舵机的方法
Mixly开源项目设计12:用旋钮控制舵机
海太克HS—1100WP数字舵机
超音速模型直升机专用舵机
超音速舵机保护器
盘点"古董“遥控器[3]