你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【转载】基于STM32的小型仿人机器人控制系统设计

[复制链接]
Belight 发布时间:2017-6-6 13:35
人形机器人是具备人类的外形特征和行动能力的智能机器人,可以采用双腿行走,通过手臂和身体的协调完成一些简单的动作,以及通过简单的语言和人类进行交流。与传统的机器人相比,人形机器人具有很大的优势,广泛应用于工业、农业、军事、医疗等领域。随着机构学、控制学、传感技术、人工智能技术的发展,人形机器人技术的发展越来越快,除了具备了人工智能外,还可以根据人类的声音、手势等从事相应动作,并具有基本的记忆和辨识能力。本文采用STM32芯片设计出了一款小型仿人机器人控制系统,应用于自主开发的小型仿人机器人,能够实现机器人的平稳行走,自主避障,开发周期短,成本低。
" |9 L( h7 ]9 Q+ r7 s, l+ X; @
: R$ k! U6 }  R, J9 z4 }
1 小型仿人机器人的结构简介
小型仿人机器人虚拟样机模型如图1所示。该小型仿人机器人具有10个自由度,每条腿具有3个自由度,每条胳膊具有2个自由度。该小型仿人机器人实物如图2所示,小型仿人机器人高25厘米,重350g,小型仿人机器人的10个舵机分布在机器人的各个关节,控制板安装在机器人的背后,电池装在机器人胸部之内,红外测距传感器安装在机器人的胸部前方,无线模块NRF24L01和姿态传感器随控制板安装在机器人的背后。
11.png
图1 小型仿人机器人虚拟样机

- `2 H7 ]1 n5 a0 M5 a" `; K
12.png
. e' _) U, n) b3 w
图2 小型仿人机器人实物结构  
& q% T0 y) A, A/ h0 d2 F
为了给该小型仿人机器人提供足够的动力、有效的控制力矩和一定的续航能力,该小型仿人机器人各个部件选型如1表所示:
+ O6 Q& j5 ?/ O
表1 小型仿人机器人部件一览表
器件名称
型号
结构材料
3mmABS板
舵机
MG90S
姿态传感器
MPU6050
控制板芯片
STM32F103 RET6
控制板电池
遥控器芯片
3.7V聚合物锂电池
STM32F103C8T6
遥控器电池
3.7V聚合物锂电池
无线模块
NRF24L01

* N. R) j: S* }* d
2 小型仿人机器人控制系统设计
小型仿人机器人控制系统的硬件组成如图3所示,包括主控系统和遥控系统两大部分,它们通过遥控器通过NRF24L01发出的2.4GHZ无线信号进行通讯。

" f! K9 W0 k- }0 V/ _; @; B# P
总体来说,小型仿人机器人控制系统的硬件部分主要有8个模块,包括主控芯片模块、电源模块、通讯模块、PWM多路输出模块、红外传感器模块、姿态传感器模块、SD卡模块、遥控器等,其硬件系统模块如图3所示。主控芯片模块是机器人的大脑,控制机器人的运动和处理各种数据;姿态传感器用来检测机器人的姿态,以便实现其姿态测量;SD卡模块是记录姿态数据,以便后续处理。
# A! u3 g% i4 l$ p6 Q5 i
14.png
图3 小型仿人机器人控制系统硬件组成框图
; x9 A. }- x( `0 Y/ ^) y' U" t
2.1小型仿人机器人控制电路总体设计
控制系统硬件电路采用自顶向下的方式设计,总体设计图如4所示。
4 G7 ~. Z' Z6 W1 [0 w: o* U
15.png
图4 STM32总体电路

, J$ |: Z% m& e" e) C- o1 l0 t

: S  v8 e+ {' ], y0 y
2.2主控芯片外围电路设计
STM32作为整个控制系统的核心,具有十分重要的作用,为了保证系统稳定工作,必须设计好STM32外围电路,尽量减少或避免外界干扰[3]。主控芯片采用STM32F103RET6,封装为LQFP64,主频72MHz,具有ADC、DMA、SDIO等功能,其外围电路设计如图5。

/ I+ t% o  w) s3 P0 O6 g6 B; d
16.png
图5主控芯片STM32外围电路

3 C- n8 k6 l  _  E1 _  Y0 o. u0 ]
( h7 z$ V" d7 G; S+ U
2.3供电电路设计
控制系统由放电倍率大的航模电池供电,输出3.7V电压,一路直接给舵机、红外测距传感器供电,另一路通过降压芯片AMS1117-3.3把电压降到3.3V给STM32芯片、MPU6050、NRF24L01供电。为了保障电池充电方便,本电路板采用TP4056芯片通过USB接口给电池充电,充电时7管脚输出低电平,红灯D2亮,6管脚输出高阻,绿灯D1灭;充满时7管脚输出高阻,红灯灭D2,7管脚输出低电平,绿灯D1亮。控制器的电源部分如图6所示。

+ G' i% t: {  o' b
17.png
图6供电电路
& B- N# ^  E( @7 O9 Y( r* [5 L

* ^5 c0 X. e5 F) k6 L) p; v
2.4姿态传感器电路设计
    MPU6050是INVENSENCE公司推出的一款传感器,具有低成本、低能耗和高性能的特点。该芯片首次集成了三轴陀螺仪和三轴加速度计,拥有数字运动处理单元(DMP),可直接融合陀螺仪和加速度计数据。陀螺仪最大能检测±2000°/s,加速度计能最大检测±16g,最大能够承受10000g的外部冲击。MPU6050采用IIC协议与主控芯片STM32进行通讯,电路设计如下图7示。
6 }7 z" O0 ]  B" N/ o
18.png
图7 MPU6050电路
+ F$ C( V! ~3 [" Z: r

7 Q& s. ]# e1 t. r
2.5无线模块NRF24L01电路设计
   本控制系统和遥控器之间采取NRF24L01模块进行通讯,NRF24L01是一款工作在2.4~2.5GHz世界通用ISM频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型SchockBurstTM模式控制器、功率放大器、晶体振荡器、调制器、解调器。输出功率、频道选择和协议的设置可以通过SPI接口进行设置,电路图设计如图8。

8 ]2 E! J' ?' \7 P
19.png
图8 无线模块NRF24L01

# p8 a! M  a2 c2 y- k

  Y. ~$ t6 V; ~& _. @0 T
2.6 SD卡模块电路设计
    为了便于准确分析实验数据,我们设计了机器人控制系统的存储单元,主控单元可以将采集的姿态信息、遥控信息直接存储在SD卡中。SD卡的电路设计如图9所示,采用SDIO的通讯协议,速度高达10M/S。

# Y$ m6 Q: t  l* R6 Y/ S4 n; r$ j+ y" {8 k
20.png
图9 SD卡模块电路

$ z8 w  z4 k4 c/ T" v

6 s  k% ~- j' u. B2 L
2.7 PCB电路设计
    完成原理图设计后,进行了双层PCB电路板的设计,实物控制器的PCB板如下图10所示。整体PCB控制板尺寸为50mm×70mm,利用四个铜柱将控制器竖直安装在小型仿人机器人的背部,PCB实物如图10。

" m) ~' v  t. W4 Q7 O
21.png
图10 PCB板实物
$ U8 T& g: i, r9 ^) G5 g# q
2.8遥控器设计
本文设计的仿人机器人有两种运行模式,自动模式与手动模式。在自动模式下,机器人由编写的程序控制直接完成一连串预设的动作。而在手动模式下,可以通过遥控器实时控制机器人动作。因此为了实现远程操控机器人完成动作,同时设计了基于STM32F103C8T6芯片的遥控器手柄,原理图如图11。

2 i' K5 O  |8 L8 |1 v1 V
22.png
图11 遥控器原理图

9 X" X- J; g+ J
    该遥控器手柄通过NRF24L01无线模块与主控芯片进行通信,两个摇杆均可向前后左右下5个方向按动,可实现仿人机器人的前进、转弯、鞠躬和起立等动作。
* X4 G  k$ Z. }9 |

0 k" H1 M4 y3 Y3 _; Z
3 小型仿人机器人控制软件设计
3.1 整体设计流程
小型仿人机器人通电后,各个舵机进行初始化,让机器人保持站立。通过姿态传感器MPU6050读取机器人的姿态,若姿态偏移则进行校正,使之保持站立姿势,然后机器人通过接受指令工作,软件流程框图如图12。
23.png      
图12 软件流程框图

! ~/ o8 {. {3 a1 j+ i( X

* {6 _9 ^9 N4 G& n
3.2舵机控制的插补法
仿人机器人的控制算法主要包含两种,一种是速度控制算法,另一种是多个关节的联动控制算法[4-6]。本系统采用“插补法”速度控制算法控制机器人舵机运动。
舵机本身是不能进行速度控制的,我们必须要通过软件实现,想要实现速度控制,必须要给定舵机的初始位置和终点位置,然后给定从初始位置到终点位置的时间,把时间和角度分别细化,并一一对应。这样就可以从宏观上对舵机实现速度控制。时间细分的越密集,舵机的转动也越流畅,但是受舵机自身条件的限制,不可能无限的细分下去[7]。插补法过程如下。
采用定时器中断来实现时间的细化,一个周期为 T 的时间里,定时器中断 N 次,这样时间的细化单位如式(1)所示。
24.png
“差补法”的软件设计如图13所示。
0 G& V! q* b& j3 u7 z4 \+ _3 `
25.png
9 @2 ~. W8 B0 ]8 T$ g& o4 K
图13 差补法速度调节流程图

+ b* g& D+ j) n2 T

; t6 r2 T4 {+ [6 r0 {
4 小型仿人机器人试验
完成小型仿人机器人的编程后,对机器人进行了蹲下起立、摆臂、鞠躬、摆腿、步行前进、倒地后起立、避障等试验,结果如下。
0 o8 ]5 F$ X6 I" A. z9 R# [
4.1 蹲下起立
    通过踝关节和膝关节舵机的协调,再配合上肩部动作,机器人做出了上下起伏的蹲下起立动作。
26.png
* g) y6 _& T8 W
图14 蹲下起立图
/ k# V) F' V$ U
0 P  f: T# }( U# Z# D* M# {
4.2 摆腿
    将机器人头朝下放倒后,分别做出前后摆腿和左右摆腿的动作。

0 R  {  w* O; r" P+ k
27.png
图15 前后摆腿图(上)和左右摆腿图(下)
1 p! P" k5 K. q1 L! a0 ]
4.3步行前进
    通过髋关节与膝关节舵机的协调配合,机器人以小碎步的形式稳步前进,肩关节舵机的摆动则为机器人提供平衡作用。

0 B* k5 {5 m" ?3 i1 P1 J$ I* _
28.png
图16 步行前进图

, ?# U4 @* a3 O6 y! F4 L* @
4.4倒地后起立
    机器人在倒立的初始状态下,通过肩关节、肘关节、髋关节和膝关节舵机的联动,实现自行起立。
2 S* X4 Z% x# x! {$ L+ u
29.png
图17 倒地后起立图
( z. p; g) u' u3 C+ }
5 E. B* K' N' O, B' }5 a3 n- a

4.5 红外传感器智能避障
    机器人通过红外测距传感器检测到前方有障碍物时,通过腿部舵机的配合,自动向左转绕开障碍物。

+ @% C) x! K! Q, g
30.png
图18 智能避障图

7 B8 z  B+ g- [- I5 Y! k6 T$ ?, z  p
5 结论
本文基于STM32F103芯片设计了一款通用的小型仿人机器人控制系统,该系统能够控制10自由度(最多18自由度)的小型仿人机器人。经过试验,10自由度小型仿人机器人在该控制系统的控制下,能够实现稳定行走和自主避障,能够完成各种预期动作,并能通过姿态传感器MPU6050实现机器人的姿态测量。本文还重点研究了多路舵机的联合控制方法,实现了机器人各关节协调运动。本人研究的控制系统具有很强的通用性,为后续研究提供参考与借鉴。
1 X; Y, l( X+ K# t3 I* n& K
收藏 评论4 发布时间:2017-6-6 13:35

举报

4个回答
me浩 回答时间:2017-6-6 16:35:07
很强的动手能力和理论基础棒棒
黑皮男 回答时间:2017-6-7 08:56:21
很赞啊
asmhai 回答时间:2017-6-27 17:27:04
非常好的设计方案。
epochal 回答时间:2017-6-27 18:37:13
不错,谢谢分享!
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版