历史上的今天
今天是:2025年03月15日(星期六)
2020年03月15日 | 两足仿人机器人的设计与实现
2020-03-15 来源:eefocus
简介:采用模块化的设计思想,设计了一个可靠的低价格双足机器人平台。首先简化机器人的空间运动和受力,通过分析和求解,得到与机器人平衡相关的各个关节的位移、角度等变量的关系;用C语言在CodeVsionAVR编译器下开发程序,选用1片ATmega128单片机来实时控制20个伺服舵机,并达到微秒级的控制精度。最终实现了两足仿人机器人的各个关节的协调平稳运动。
0 引言
机器人是一种典型的机电一体化产品,随着科学技术的进步,机器人的应用领域不断拓宽[1]。双足仿人机器人具有仿人的外形和步行方式,行走系统占地面积小,活动范围大[2],移动“盲区”小,对步行环境要求低且具有一定的逾越障碍的能力,这些特点受到了各方的广泛关注,成为机器人研究领域的热点。两足仿人机器人运动过程中的行走和对机器人的控制是研究的重点和难点。双足步行是生物界难度最大的步行动作,但其步行性能却是其他步行结构所无法比拟的,因此双足步行是双足仿人机器人研究的关键技术之一。稳定的步行是双足仿人机器人区别于其他机器人的主要标志。本文研制了一种双足仿人机器人,通过对机器人进行步态规划,使其能够在平地上实现稳定行走。
1 整体设计思想
双足机器人在行走过程中,其运动的平稳性受重力、运动机构的惯性、软硬件设计等综合因素的影响。为提高其稳定性,简化设计思路,双足机器人的设计采用了模块化的设计方法[3]。双足机器人的设计主要分为3个模块:结构运动模块、硬件电路模块、软件程序设计模块。整体设计思路如图1所示。
2 双足机器人结构设计
双足机器人的运动与人类的运动方式类似,是通过脚与地面接触来推动机体移动。一个步行周期基本上可以分为4个状态,如图2所示。
(1)两脚着地,机器人的重量平分在两条腿上。
(2)两脚着地,机器人的重心往一条腿上偏移,重量集中在一条腿上。
(3)单脚着地,机器人的一条腿空起,准备跨步。
(4)双脚落地,机器人的重心从一条腿偏移到两条腿中间,两条腿受力均匀。
式(1)和式(2)中,m1、m2、m3分别为L1、L2、L3的质量,L1、L2、L3、L4为已知条件,需要求出的关系。由于机器人运动过程中存在惯性,使计算复杂,需要依据以上理论关系结合实验,用软件进行调试。
左腿把重心前移的情况如图4所示。
LsinC1+2LcosB1=H(3)
A1=B1(4)
S1=2LsinA1(5)
其中,H和L已知,S1为重心前移的距离,由式(3)、式(4)、式(5)可以求出:
B1=A1(6)
C1=arccos(H-2LcosB1)×180°/π(7)
机器人右腿运动情况与左腿运动类似。
3 硬件电路设计
机器人采用ATmega128单片机[4]作为主控制芯片。ATmega128有64个引脚,53个可编程I/O口,具有处理速度快、功能齐全的特点。各执行部件采用伺服舵机实现,具有体积紧凑、输出力矩大、稳定性好等特点。其控制原理图如图5所示。
4 软件设计
在机器人动作的过程中,最为关键的是保持重心的位置。为保持机器人运动时的平衡,采用HENG1[60]、HENG2[100]、HENG3[60]、HENG4[60]、HENG5[20]、HENG6[20] 6个一维数组调整机器人在运动过程中的重心位置,控制程序的流程图如图6所示。
伺服舵机I/O控制口为PA口、PD口和PC口的低四位口,程序设计如下:
Void robot_duoji(unsigned char label,unsigned char anglex)
{switch(label)
{case 11:angle11=anglex;break;
case 12:angle12=anglex;break;
case 13:angle13=anglex;break;
…
}
}
通过ATmega128单片机的定时器1实时精确产生20个伺服舵机的10 s PWM波,单片机每10 s中断一次,每中断一次angle自加1,加到255后又从0开始自加1,如此循环。angle完成一次自加的周期是2.55 ms。用angle与angle(x)比较,如果angle interrupt[TIM1_OVF]void timer1(void) { TCNT1H=0xff; TCNT1L=0xec; angle++; if(angle PORTA|=0x01; else PORTA&=0xfe; … } 5 结束语 通过机构运动分析与电路的仿真设计,完成了双足机器人的设计。采用模块化的设计方法,以及合理的程序结构和机械部件,使系统结构简单,且具有较好的稳定性、可靠性,较好地实现了双足机器人的直线行走动作。
史海拾趣
|
本帖最后由 paulhyde 于 2014-9-15 08:53 编辑 就是评分标准! 正弦信号发生器(A题) 一、任务 设计制作一个正弦信号发生器。 二、要求 1、基本要求 (1)正弦波输出频率范围:1kHz~10MHz; (2)具有频率设置功能,频率步进:100Hz; ...… 查看全部问答> |
|
最新推出2.4G 车模高频头,可兼容两通,三通,250米不掉数据,发射功耗:+20DBm/55mA, 欢迎新老客户订购,量大价优,全程提供技术支持 我们致力于将先进的无线技术集成于您的产品中,使您的设计简单高效,并有效地降低 ...… 查看全部问答> |
|
如题。 常见的那种,一个手指头大小,绕线的,有金属叠片的。应用范围是audio band。 return loss=10*log(Pi/Pr) 问题是Pr应该怎么测?… 查看全部问答> |
|
听人劝吃饱饭,但有时,听人劝也可能受伤害。拿买车这件事来说,就是听别人的买了荣威550,在发生故事的瞬间,我除了气愤之外,还在想,这哥们是故意害我,还是有了荣威的股份?实在是太阳。 本来说好要带着老婆去北戴河玩的,于是满心欢喜的行 ...… 查看全部问答> |
|
这两天用JTAG调试时发现奇怪的问题:每次发生中断时就跑飞,在网上搜了一下,原来是发生中断时没有找到中断向量表。我用反汇编单步调试,中断发生时,PC并没有跳到0x30000000处的中断向量表处(我已经在ADS把RO Base设置成0x30000000,也在IRQ中断 ...… 查看全部问答> |
|
WinCE 菜鸟提问, 为什么我的WinCE6.0安装完之后只有 WinCE6.0 Test Kit 其他什么都没有啊, 我的WinCE6.0安装完之后在程序开始菜单里 只有 WinCE6.0 Test Kit 其他什么都没有,没有Platformbuilder6.0 我在VS2005的Tools里倒是发现了pb6,但是如何使用还是个问题,不会用。… 查看全部问答> |
|
我用tim2,初始化如下: RCC_APB1ENR |= (uint32)(1<<0) ; //timer2时钟使能 TIM2_ARR =1000; TIM2_PSC = 47999;//计数器时钟分频 TIM2_CR1 |= 1<<7;//自动重装允许 ...… 查看全部问答> |




